[数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解

1.线性规划问题

如果目标函数和约束条件都是线性函数,则该模型称为线性规划。

[数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解_第1张图片

[x,f_opt,flag,c]=linprog(f,A,B,Aeq,Beq,xm,xM,x0,opt)

参数说明:

X: 解

f_opt: 最优值

Flag:大于零表示求解成功,否则求解出问题

C:求解信息

X0:搜索点的初值

Opt:最优化控制项

例子:

[数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解_第2张图片

 

MATLAB求解:

f=[-6,-4]'; A=[2 3;4 2];

B=[100;120]; Ae=[]; Be=[]; xm=[0,0];

ff=optimset;

ff.LargeScale='off'; % 不用大规模问题求解

ff.TolX=1e-15;

ff.TolFun=1e-20;

ff.TolCon=1e-20;

ff.Display='iter';

[x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,[],[],ff)

运行结果:

x =

   20.0000

   20.0000

f_opt =

  -200

key =

     1

c =

         iterations: 2

    constrviolation: 0

          algorithm: 'active-set'

       cgiterations: []

            message: 'Optimization terminated.'

      firstorderopt: 7.1054e-15

2. 二次规划问题

 [数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解_第3张图片

[x,f_opt,flag,c]=quadprog(H,f,A,B,Aeq,Beq,xm,xM,x0,opt)

例子:

 [数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解_第4张图片

MATLAB求解:

f=[-2,-4,-6,-8]; H=diag([2,2,2,2]);

OPT=optimset;

OPT.LargeScale='off';

A=[1,1,1,1; 3,3,2,1];

B=[5;10];

Aeq=[];

Beq=[];

LB=zeros(4,1);

[x,f_opt]=quadprog(H,f,A,B,Aeq,Beq,LB,[],[0 0 0 0],OPT)

运行结果:

x =

    0.0000

    0.6667

    1.6667

    2.6667

f_opt =

  -23.6667

3.非线性规划问题

目标函数或约束条件中至少有一个是非线性函数的最优化问题叫做非线性规划问题。

[x,f_opt,flag,c]=fmincon(F, x0, A,B,Aeq,Beq,xm,xM,CF,opt)

F;目标函数,inline函数或m函数

Cf;非线性约束条件对应的m函数

 [数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解_第5张图片

MATLAB求解:

1.目标函数:

function y=opt_fun1(x)

y=100-x(1)*x(1)-2*x(2)*x(2)-x(3)*x(3)-x(1)*x(2)-x(1)*x(3);

2.非线性约束条件的函数:

function [c,ceq]=opt_con1(x)

ceq=[x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25;8*x(1)+14*x(2)+7*x(3)-56];

c =[0 0 0 ];

3.求解:

ff=optimset;

ff.LargeScale='off';

ff.Display='iter';

ff.TolFun=1e-30;

ff.TolX=1e-15;

ff.TolCon=1e-20;

x0=[1;1;1];

xm=[0;0;0];

xM=[];A=[];B=[];Aeq=[]; Beq=[];

[x,f_opt,c,d]=fmincon('opt_fun1',x0,A,B,Aeq,Beq,xm,xM,'opt_con1',ff);

运行结果:

x =

    3.5121

    0.2170

    3.5522

f_opt =

   61.7152

c =

     2

d =

         iterations: 105

          funcCount: 569

    constrviolation: 0

           stepsize: 8.0563e-20

          algorithm: 'interior-point'

      firstorderopt: 1.2326e-07

       cgiterations: 26

            message: 'Local minimum possible. Constraints satisfied.…'

 

转载于:https://www.cnblogs.com/youngsea/p/7473946.html

你可能感兴趣的:([数学建模(五)]线性规划,二次规划和非线性规划的MATLAB求解)