6.10

完成工程数学实验五MATLAB 最优化工具箱的使用

1. 算法步骤

设x1,x2,x3分别表示农作物A,B,C的种植面积

问题模型:

max z = 1500x1 + 1200x2 + 1800x3

s.t.  

x1 + x2 + x3 = 100

450x1 + 600x2 + 900x3 <=63000

35x1 + 25x2 + 30x3 <=3300

350x1 + 400x2 + 300x3 <=33000

x1, x2, x3 >= 0

 

 

2. 代码

>>f=[1500 1200 1800]';

>> f=-f;

>> a=[450 600 900;35 25 30;350 400 300];

>> b=[63000 3300 33000]';

>> acq=[1 1 1];

>> aeq=[1 1 1];

>> beq=[100];

>> lb=zeros(3,1);

>> [x,fval,exitflag,output,lamdba]=linprog(f,a,b,aeq,beq,lb)

 

3. 结果

x =

   60.0000

    0.0000

   40.0000

 

fval =

 

  -1.6200e+05

 

 exitflag =

 

     1

  

output =

 

         iterations: 5

          algorithm: 'interior-point-legacy'

       cgiterations: 0

            message: 'Optimization terminated.'

    constrviolation: 1.8917e-10

      firstorderopt: 1.6385e-08

 

lamdba =

 

    ineqlin: [3x1 double]

      eqlin: -1.1927e+05

      upper: [3x1 double]

      lower: [3x1 double]

最优种植方案为种植A作物60公顷,B作物0公顷,C作物40公顷,总利润16200元 

 

 

 

问题二:   

  1. 算法步骤:

该问题可以用二次规划来求解。首先,我们需要确定这个问题的数学模型。
设点( Xi , X , Xy )到超平面 Ax = b 的最短距离为 d .则该问题的目标是求最短距离 d ,即:

 min 

而约束条件为点(,,)在超平面 Ax = b 上,因此有:
 Ax = b 

同时, d 表示所求的距离,可以表示为:
 df =

将 of 表示成决策变量的形式,得到:
 d = xTx 
其中 X =[ X ],为,为 g ] T ,为决策变量。因此,我们可以列出如下的二次规划模型:

 min XX 
 s . t . Ax = b 
 xERs 

接下来,使用 MATLAB 的二次规划函数 quadprog 求解该模型:

  1. 代码:

% 构造二次规划模型

H = 2 * eye(3);

f = zeros(3,1);

Aeq = [1 1 0; 1 0 1];

beq = [1;0];

x0 = [0; 0; 0];

% 调用quadprog函数求解

[x,fval] = quadprog(H, f, [], [], Aeq, beq, [], [], x0);

 

 

 

  1. 结果:

x =

 

    0.3333

    0.3333

   -0.6667

 

fval =

 

    0.6667

 

 

posted @ 2024-06-19 17:25  jais  阅读(4)  评论(0编辑  收藏  举报