首页 > 其他分享 >工程数学上机5

工程数学上机5

时间:2023-06-11 09:58:23浏览次数:41  
标签:quadprog 上机 工程 求解 种植 fval 线性规划 数学 beq

实验五:MATLAB最优化工具箱的使用

一、实验目的

通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟 悉线性规划的建模过程; 掌握 Matlab 优化工具箱中线性规划函数的调用。

 

二、实验内容

某村计划在 100 公顷的土地上种植 a 、b 、c 三种农作物。可以提供的劳力、粪肥和化肥等资源 的数量,种植每公顷农作物所需这三种资源的数量,以及能够获得的利润如表所示。

种植投入产出表

 

 

用  工

粪肥(吨)

化肥(千克)

利润(元)

a

450

35

350

1500

b

600

25

400

1200

c

900

30

300

1800

可提供资源

63000

3300

33000

 

其中一个劳动力干一天为 1 个工。现在要求为该村制定一个农作物的种植计划,确定每种农作 物的种植面积, 使得总利润最大。

 

  

 

三、算法步骤、代码、及结果

   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

 

 

四、心得体会

本次实验主要学习了MATLAB最优化工具箱在线性规划和二次规划问题中的应用。通过实例求解,掌握了利用函数linprog和quadprog求解线性规划、二次规划问题的方法。

实验中,我们需要先将问题转化为数学模型,定义目标函数和约束条件,并注意限制面积、非负等特殊条件的处理。然后,我们就可以使用工具箱中对应的函数进行求解,得到最优解和最优值。

标签:quadprog,上机,工程,求解,种植,fval,线性规划,数学,beq
From: https://www.cnblogs.com/zyzyzrp/p/17472526.html

相关文章

  • 工程数学上机1
    实验一:一维寻优法(0.618法)程序设计一、实验目的通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。  二、实验内容(1) 请用0.618法求解优化问题:min f (x)=x2 −sin(x)......
  • 工程数学上机2
    实验二:最速下降法程序设计一、实验目的通过最速下降法的程序设计,为今后的约束优化方法的学习和编程奠定基础;掌握负梯度方向的定义和最速下降法的迭代公式;通过此次实验,进一步巩固最速下降法的基本 原理和思想。 二、实验内容(1)求解无约束优化问题:;(2)终止准则取;(3)......
  • 工程数学上机3
    实验三:Newton法程序设计一、实验目的掌握Hesse 矩阵的计算方法和Newton法的基本思想及其迭代步骤;学会运用MATLAB编程实现 常用优化算法; 能够正确处理实验数据和分析实验结果及调试程序。  二、实验内容(1)求解无约束优化问题:;(2)终止准则取;(3)完成Newton 法......
  • 工程数学上机4
    实验四:共轭梯度法程序设计一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正 确处理实验数据和分析实验结果及调试程序。 二、实验内容(1)求解无约束优化问题:;(2)终止准则取,搜索方法采用非精确搜索 Armijo;(3)完成FR共......
  • 数学公式:点到直线的距离
    求点到直线的距离,点P(a,b),直线l为Ax+By+C=0过P点作垂直于l的直线m\[l的点斜式为\\y=-\frac{A}{B}x-\frac{C}{B}\\x=-\frac{B}{A}y-\frac{C}{A}\\求垂直斜率,通过斜率相乘得-1求得。k=\frac{B}{A}\\则m的点斜式方程为\\y=\frac{B}{A}(x-a)+b......
  • 现代软件工程--基础知识
    现代软件工程期末复习--基础知识1.软件工程师及软件团队讲解了一些软件工程师的规范和团队规范没啥看的,暂时忽略2.软件及其过程什么是软件?计算机软件指计算机系统中的程序、数据及其相关文档程序:按照特定顺序组织的计算机数据和指令的集合数据:使程序能正常执行的......
  • 数学考研高效率速通计划
    绝大多数院校的数学考研初试科目是数学分析和高等代数。根据院校的难度,数学分析和高等代数各选择一本合适的教辅书。按照考试大纲(各院校略有差异),把不需要的章节删去。第一轮复习的时候,数学分析安排两个月,高等代数安排一个月。数学分析把教材内容进行拆分成60天的任务,高等代数3......
  • 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...
    大概十五年前,曾经写过一个C语言版本的类似代码。核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过。这样的操作在Python中是没有必要的,因为Python中的数字没有大小限制。但在C语言或其他静态类型语言中,由于整型变量能够表示的范围有限,所以......
  • 数学 多元函数的微分
    <h4>一,二元函数的偏导数与全微分</h4>1.偏导数的定义和几何意义2.全微分的定义/性质 ......
  • 五.特征工程之特征降维
    1.什么是特征降维降低的对象为二维数组此处的降维为降低特征的个数降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程降维的效果就是使得特征和特征之间不相关如果相关的特征太多的话会造成数据的冗余的正是因为在进行训练的时候,我们都是使......