matlab fmincon 非线性优化 clearclcxlb=[-1 -1 -1]';xub=[1 1 1]';x=0.5*(xlb+xub);[x,xfval,xexitflag,xoutput,xlambda]=fmincon(@(x)(x(1)-x(2)*x(3)),x,[],[],[],[],xlb,xub);这个优化很容易看出结果是-2,但是为什么matlab算的是-1.提示
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 00:53:44
matlab fmincon 非线性优化 clearclcxlb=[-1 -1 -1]';xub=[1 1 1]';x=0.5*(xlb+xub);[x,xfval,xexitflag,xoutput,xlambda]=fmincon(@(x)(x(1)-x(2)*x(3)),x,[],[],[],[],xlb,xub);这个优化很容易看出结果是-2,但是为什么matlab算的是-1.提示
matlab fmincon 非线性优化
clear
clc
xlb=[-1 -1 -1]';
xub=[1 1 1]';
x=0.5*(xlb+xub);
[x,xfval,xexitflag,xoutput,xlambda]=fmincon(@(x)(x(1)-x(2)*x(3)),x,[],[],[],[],xlb,xub);
这个优化很容易看出结果是-2,但是为什么matlab算的是-1.
提示:Warning:Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
到底哪里有问题,如何才能算出-2
matlab fmincon 非线性优化 clearclcxlb=[-1 -1 -1]';xub=[1 1 1]';x=0.5*(xlb+xub);[x,xfval,xexitflag,xoutput,xlambda]=fmincon(@(x)(x(1)-x(2)*x(3)),x,[],[],[],[],xlb,xub);这个优化很容易看出结果是-2,但是为什么matlab算的是-1.提示
clear
%调整一下初值即可
clc
lb=[-1 -1 -1]';
ub=[1 1 1]';
[x,fval,exitflag] = fmincon(@(x) x(1)-x(2)*x(3),[0.2,0.5,0.5]',[],[],[],[],lb,ub)