MATLAB如何完成非线性约束优化?很急很关键!! 方法/步骤 此题的问题描如下图。由于本经验主要是谈非线性约束下的最优化问题,对于其他线性约束就不再考虑。然后启动matlab。新建一个函数文件,用来写目标函数。在编辑器窗口中写入我们要求的目标函数,并保存,注意使函数名与文件名相同。
matlab优化非线性约束 将下面语句在matlab编辑器中保存为mycon.mfunction[c,ceq]=mycon(x)c=(300/210000*(1-x(1)/300))^3/x(2)^2-(300/210000*(1-x(1)/300))^3/(0.2+x(2))^2-0.000075;ceq=[];无等式约束在matlab窗口中输入:fun=’-x(1)*(0.02+x(2))/(2*(300-x(1)))+300/210000’;x0=[1 1];A=[];b=[];Aeq=[];beq=[];lb=[0 0];ub=[300 1];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)
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]