作业帮 > 综合 > 作业

matlab fmincon 非线性优化

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 17:34:41
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
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)
再问: 初值选取有何要求?我这只是一个简单化的例子,实际程序比这复杂很多,实际优化结果明显不对。我想不仅仅是解决这个例子,我想知道fmincon函数如何才能获得正确的结果,或者说,它的适用情况和初值选取要求。
再答: 初值多数看经验,复杂问题可以考虑粒子群等智能算法