如果isnan采样间隔

时间:2019-05-05 16:00:57

标签: matlab optimization

我正在尝试运行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,我从示例中获取了代码。

0 个答案:

没有答案