最优化问题matlab求解.pptVIP

  • 19
  • 0
  • 约6.38千字
  • 约 46页
  • 2019-11-23 发布于湖北
  • 举报
1、写成标准形式: s.t. 2x1+3x2 6 s.t x1+4x2 5 x1,x2 0 例 2、先建立M-文件 fun3.m: function f=fun3(x); f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2 3、再建立主程序youh2.m: x0=[1;1]; A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[]; [x,fval]=fmincon(fun3,x0,A,b,Aeq,beq,VLB,VUB) 4、运算结果为: x = 0.7647 1.0588 fval = -2.0294 1.先建立M文件 fun4.m,定义目标函数: function f=fun4(x); f=exp(x(1)) *(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); x1+x2=0 s.t. 1.5+x1x2 - x1 - x2 0 -x1x2 –10 0 例 2.再建立M文件mycon.m定义非线性约束: function [g,ceq]=mycon(x) g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10]; ceq=[]; 3.主程序为: x0=[-1;1]; A=[];b=[]; Aeq=[1 1];beq=0; vlb=[];vub=[]; [x,fval]=fmincon(fun4,x0,A,b,Aeq,beq,vlb,vub,mycon) 3. 运算结果为: x = -1.2250 1.2250 fval = 1.8951 非负条件下线性最小二乘 lsqnonneg 适合如下模型: 注意:约束只有非负约束 语法: x =lsqnonneg(c,d) x =lsqnonneg(c,d,x0) x =lsqnonneg(c,d,x0,options) 语法: x = lsqlin(C,d,A,b) x = lsqlin(C,d,A,b,Aeq,beq) x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) [x,resnorm] = lsqlin(...) [x,resnorm,residual] = lsqlin(...) [x,resnorm,residual,exitflag] = lsqlin(...) [x,resnorm,residual,exitflag,output] = lsqlin(...) [x,resnorm,residual,exitflag,output,lambda] = lsqlin(...) 非线性最小二乘lsqnonlin 适合模型: 语法: x = lsqnonlin(fun,x0) x = lsqnonlin(fun,x0,lb,ub) x = lsqnonlin(fun,x0,lb,ub,options) x = lsqnonlin(fun,x0,options,P1,P2, ... ) [x,resnorm] = lsqnonlin(...) [x,resnorm,residual] = lsqnonlin(...) [x,resnorm,residual,exitflag] = lsqnonlin(...) [x,resnorm,residual,exitflag,output] = lsqnonlin(...) [x,resnorm,residual,exitflag,output,lambda] = lsqnonlin(...) [x,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(...) 例:求解x,使得下式最小 resnorm 等于 norm(C*x-d)^2 residual

文档评论(0)

1亿VIP精品文档

相关文档