一、实验目的及要求

  1. 练习用excel画图:凸函数、正太分布
  2. 用图解法和编程计算求解教材P28例子
  3. 练习excel公式与函数用法,用Solver解教材P28例子

附加练习:

用matlab画图、调用函数,求解教材P28例子

 

 

二、实验设备(环境)及要求

Microsoft Excel2016、matlab2017

 

三、实验内容

练习用excel画图:凸函数、正太分布

凸函数步骤:

①先在A列填充上一组X数据,从A2向下,是等差数列。

②在B2单元格输入公式=3000-A2^2,回车,然后在B列拖动填充柄,向下复制。求出整个A列X数值在B列Y所对应的函数值。

③选中A、B两列数值,执行插入-图表-XY散点图操作。

 

正态分布图步骤:

①给定一组数据,例如:1~51,共50个数据。

②选择一列,点击插入函数NORM.DIST,输入对应数值。

③选择B列,点击插入,散点图

用图解法和编程计算求解教材P28例子

图解法:

max S=2x1+5x2 

         x1 ≤4

         x2≤3

s.t.     x1+ 2x2≤8

          x1≥0

          x2≥0

 

 

 

编程计算:

代码如下:

#include<iostream>

using namespace std;

 

int main()

{

    int x1,x2,S,max=0;

    for(x1=0;x1<=4;x1++)

    {

       for(x2=0;x2<=3;x2++)

       {

           if(x1+2*x2<=8)

           {

              S=2*x1+5*x2;

              if(S>max)

              {

                  max=S;

              }

           }

       }

    }

    cout<<"最大值为"<<max<<endl;

    return 0;

}

输出结果:

练习excel公式与函数用法,用Solver解教材P28例子

Solver步骤:

①加载宏—规划求解加载项

②根据分析题目填写约束条件、目标函数

D2=B5

D3=C5

D4=B5+2*C5

F6= =2*B5+5*C5

③添加线性求解

④求解结果

用matlab画图、调用函数,求解教材P28例子

max S=2x1+5x2 

          x1 ≤4

          x2≤3

s.t.     x1+ 2x2≤8

           x1≥0

           x2≥0

将目标函数转化为求函数-S的最小值,根据目标函数和约束条件,可以得出目标函数系数矩阵f=[2;5],不等式约束系数矩阵A =[1  0;0  1;1  2 ],不等式约束常向量b=[4; 3; 8], 调用MATLAB中lingprog函数求出-S的最小值,其相反数就是MaxS

如下图所示:

>> f=[2;5];

A =[1  0;0  1;1  2 ];

b=[4; 3; 8];

[x,fmin]=linprog(-f,A,b)

 

Optimal solution found.

 

 

x =

 

    2.0000

    3.0000

 

 

fmin =

 

   -19

MaxS=19

 

四、实验结果

凸函数图:

 

 

正态分布图:

 

图解结果图:

 

编程计算结果图:

 

Solver求解结果图:

附加练习: 用matlab画图、调用函数结果

五、分析与讨论

通过这次实验,学会了Excel画正态分布图、凸函数图、熟悉了Excel的公式;初步掌握了线性规划的原理和解法,学会用图解法、编程法去求解,并利用计算机软件工具Excel的Solver线性规划求解,使计算过程大大简化,另外调用MATLAB中lingprog函数亦可求解。

 

更多推荐

运筹与决策(二)excel画图、公式与函数用法