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/06/20 05:54:16
![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.提示](/uploads/image/z/3763819-19-9.jpg?t=matlab+fmincon+%E9%9D%9E%E7%BA%BF%E6%80%A7%E4%BC%98%E5%8C%96+clearclcxlb%3D%5B-1+-1+-1%5D%27%3Bxub%3D%5B1+1+1%5D%27%3Bx%3D0.5%2A%28xlb%2Bxub%29%3B%5Bx%2Cxfval%2Cxexitflag%2Cxoutput%2Cxlambda%5D%3Dfmincon%28%40%28x%29%28x%281%29-x%282%29%2Ax%283%29%29%2Cx%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2Cxlb%2Cxub%29%3B%E8%BF%99%E4%B8%AA%E4%BC%98%E5%8C%96%E5%BE%88%E5%AE%B9%E6%98%93%E7%9C%8B%E5%87%BA%E7%BB%93%E6%9E%9C%E6%98%AF-2%2C%E4%BD%86%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88matlab%E7%AE%97%E7%9A%84%E6%98%AF-1.%E6%8F%90%E7%A4%BA)
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)