自学内容网 自学内容网

南京邮电大学运筹学课程实验报告1 线性规划求解 指导

一、题目描述

实验     线性规划求解                 

实验属性: 验证性     

实验目的

1.理解线性规划解的基本概念;

2.掌握运筹学软件的使用方法;

3. 掌握线性规划的求解原理和方法。

实验内容

认真阅读下题,利用Excel求解产品I、II的决策变量数值,各资源的实际使用量,以及总获利,实验过程参考书本P52.

产品

资源

产品I

产品II

资源限额

实际资源使用

劳动力

8

4

360

设备

4

5

200

原材料A

3

10

250

原材料B

4

6

200

单位利润(元)

80

100

\

\

产品决策

\

\

总获利

1.记录实验步骤与结果

2.对结果作适当分析(与图解对比);

3.完成实验报告。

二、实验内容

步骤1:数据准备

根据实验内容,将给定的产品资源数据整理成Excel表格,包括劳动力、设备、原材料A、原材料B的单位需求,以及产品I和产品II的单位利润。将产品决策初始化为0,表示该线性规划问题的初始搜索方案,并将实际资源使用和总获利使用公式进行初始化填写。

Excel初始条件表

步骤2:加载规划求解项

通过加载Excel的规划求解加载项,可以方便定义线性规划问题的目标函数和约束条件,从而利用Excel的规划求解功能来解决问题。

Excel中加载规划求解功能

步骤3:定义单元格表达式

总利润单元格(C9)格式为:

C9= C7*C8+D7*D8

实际资源使用单元格(F3、F4、F5、F6)格式依次为:

F3= C3*C8+D3*D8

F4= C4*C8+D4*D8

F5= C5*C8+D5*D8

F6=C 6*C8+D6*D8

将单元格格式表达式填写完成后,结果如下图

步骤4:规划求解参数

完成所有单元格的表达式定义之后,单击“规划求解”菜单,而后完成相关参数的填写即可完成Excel的线性规划操作。

Excel规划求解参数设置

步骤5:结果展示

Excel进行规划求解,将线性规划问题进行计算,并将结果输出到表格中指定的单元格中,结果如图:

Excel求解结果表

 三、实验结果分析与实验总结:

可自行结合EXCEL求解与图解法进行比较(可使用MATLAB进行图形描述),说明各特点,并将图解法的步骤总结出来............

附有相关matlab代码(软件支持为matlab R2020a)

x1 = linspace(0, 100, 100); % 定义x1的取值范围
x2 = linspace(0, 100, 100); % 定义x2的取值范围
[X1, X2] = meshgrid(x1, x2); % 创建网格点
% 定义约束条件
constraint1 = 8*X1 + 4*X2 <= 360;
constraint2 = 4*X1 + 5*X2 <= 200;
constraint3 = 3*X1 + 10*X2 <= 250;
constraint4 = 4*X1 + 6*X2 <= 200;
constraint5 = X1 >= 0;
constraint6 = X2 >= 0;
figure;
hold on;
% 绘制约束条件
plot(x1, (360-8*x1)/4, 'r', 'LineWidth', 2);
plot(x1, (200-4*x1)/5, 'g', 'LineWidth', 2);
plot(x1, (250-3*x1)/10, 'b', 'LineWidth', 2);
plot(x1, (200-4*x1)/6, 'm', 'LineWidth', 2);
% 绘制坐标轴和标签
axis([0 100 0 100]);
xlabel('x1');
ylabel('x2');
title('运筹学实验1图解法');
% 添加图例
legend('8x1 + 4x2 <= 360', '4x1 + 5x2 <= 200', '3x1 + 10x2 <= 250', '4x1 + 6x2 <= 200');
hold off;
figure;
hold on;
% 绘制约束条件
plot(x1, (360-8*x1)/4, 'r', 'LineWidth', 2);
plot(x1, (200-4*x1)/5, 'g', 'LineWidth', 2);
plot(x1, (250-3*x1)/10, 'b', 'LineWidth', 2);
plot(x1, (200-4*x1)/6, 'm', 'LineWidth', 2);
% 填充可行域
fill([0, 0, 100, 100], [0, 100, 100, 0], 'y', 'FaceAlpha', 0.3);
% 绘制坐标轴和标签
axis([0 100 0 100]);
xlabel('x1');
ylabel('x2');
title('运筹学实验1图解法');
% 添加图例
legend('8x1 + 4x2 <= 360', '4x1 + 5x2 <= 200', '3x1 + 10x2 <= 250', '4x1 + 6x2 <= 200');
hold off;

 使用MATLAB进行画图指令可得:


原文地址:https://blog.csdn.net/qq_75185846/article/details/140327327

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!