matlab 非线性约束最优化问题,希望给出代码 先建立M文件fun.m定义目标函数:function f=fun(x)f=((x(1)+1)^2+4*(x(2)-1.5)^2)*((x(1)-1.2)^2+0.4*(x(2)-0.5)^2);再建立M文件mycon.m定义非线性约束:function[g,ceq]=mycon(x)g=[2*x(1)-x(1)*x(2)+5*x(2)-6;x(1)-x(2)+0.5;x(1)^2-4*x(2)^2+x(2)];ceq=0;主程序为:x0=[0;0];VLB=[0 0];VUB=[];[x,fval,exitflag,output]=fmincon('fun',x0,[],[],[],[],VLB,VUB,'mycon2')结果为:x=0.59251.0925fval=1.6306exitflag=1output=iterations:5funcCount:18lssteplength:1stepsize:8.6939e-007algorithm:'medium-scale:SQP,Quasi-Newton,line-search'firstorderopt:3.2838e-008constrviolation:1.6077e-011message:[1x144 char]
如何用matlab求解非线性约束优化问题,对于非线性约束的优化问题,matla有个很好的函数fmico可以很容易解决。之前一个经验已经详细介绍了fmico的用法,下面通过一个例子来。
MATLAB:特定约束条件下的最优化问题 写了一下,是下面的结果,应该是对的,呵呵!f=[25;30];A=[2 3;3 4];b=[69;48];lb=[4;2];[x,fval,exitflag,output]=linprog(f,[],[],A,b)Optimization terminated.x=132.0000111.0000fval=30.0000exitflag=1output=iterations:4algorithm:'large-scale:interior point'cgiterations:0message:'Optimization terminated.'constrviolation:6.7928e-011