我正在尝试运行fseminf函数
f = @(x) (x(1)-2).^2 + (x(2)-0.2).^2;
g = @(x,s) 5*x(1).^2*sin(pi*sqrt(s))/(1+s.^2) - x(2);
lb = [-1,0];
ub = [1 ,0.2];
S = [0,1];
A = [];
b = [];
Aeq = [];
beq = [];
x0 = [0,0];
x = fseminf(f,x0,1,@seminfcon1,A,b,Aeq,beq,lb,ub);
位置:
function [c, ceq, K1, s] = seminfcon1(x,s)
global S g
% No finite nonlinear inequality and equality constraints
c = [];
ceq = [];
% Sample set
if isnan(s)
% Initial sampling interval
s = [0.0001 0];
end
t = S(1):s(1):S(2);
% Evaluate the semi-infinite constraint
K1 = g(x,t);
这是我用于从S创建有限集的代码,S是一个间隔。我不明白它是如何工作的,为什么我们使用isnan函数而不是仅仅声明s = [0.0001](顺便说这是行不通的)。它用于fseminf alghoritm,我从示例中获取了代码。