图解法求解线性规划.doc
文本预览下载声明
实验1 图解法求解线性规划
成绩
专业班级 学号 姓名 报告日期 .
实验类型:●验证性实验 ○综合性实验 ○设计性实验
实验目的:进一步熟练掌握图解法求解线性规划。
实验内容:图解法求解线性规划4个(题目自选)
实验原理 线性规划图解法(线性规划解有四种情形,唯一最优解,无穷多个最解,无界解,无可行解)
实验步骤
1 要求上机实验前先编写出程序代码
2 编辑录入程序
3 调试程序并记录调试过程中出现的问题及修改程序的过程
4 经反复调试后,运行程序并验证程序运行是否正确。
5 记录运行时的输入和输出。
预习编写程序代码:
实验报告:根据实验情况和结果撰写并递交实验报告。
实验总结:
参考程序
第一题:
输入下面绘直线命令
line([6,0],[0,6]) ;
line([4,4],[0,6]) ;
line([0,6],[3,3]);
可得图形:
由上图可知,需要分别求出第一条直线与第三条直线交点,第二条直线与第三条直线交点。用求解线性方程组的左除命令
[2 2;0 5]\[12;15];
[4 0;0 5]\[12;16];
用填充命令
fill([3,4,4],[3,3,2],r);
得可行域图形。
计算出该直线在坐标轴上的截距,使用两点绘直线命令
line([17/2,0],[0,17/3])
得直线的图形如上图所示,直线与可行域多边形相切。切点正好是可行域的一个角点,该角点的坐标P(4,3)就是原问题的最优解。
第二题:
输入下面绘直线命令
line([0,300],[300,0])
line([0,200],[400,0])
line([0,250],[250,250])
hold on
[1 1;2 1]\[300;400]
ans =
100
200
[1 1;0 1]\[300;250]
ans =
50
250
[2 1;0 1]\[400;250]
ans =
75
250
用填充命令
fill([0,0,50,100,200],[0,250,250,200,0],b)
line([0,27500/100],[27500/100,0])
第三题:
max z = 5 x1 + 3 x2 s.t. 输入下面绘直线命令 line([3500,0],[0,3500]) line([1500,1500],[0,5000]) line([2000,0],[0,5000]) 可得图形
由上图可知,需要分别求出第一条直线与第三条直线交点,第二条直线与第三条直线交点。用求解线性方程组的左除命令 [1 1;5 2]\[3500;10000][1 0;5 2]\[1500;10000] 可得交点P13(1000,2500),P23(1500,1250),由此得可行域对应的多边形角点坐标如下 P0(0,0) P1(0,3500) P13(1000,2500) P23(1500,1250) P3(1500,0) 用填充命令 fill([0,0,1000,1500,1500],[0,3500,2500,1250,0],r), 得可行域图形:
将P13的坐标代入目标函数得 zmax=5×1000+3×2500=12500 使用两点绘直线命令 line([12500/5,0],[0,12500/3]) 得直线的图形上图所示,直线与可行域多边形相切。切点正好是可行域的一个角点,该角点的坐标P13(1000,2500)就是原问题的最优解。
第四题:
c=[1,1];
A=[-2 1;1 -1;-2 1];
b=[4 2 4];
Aeq=[];
beq=[];
lb=[0,0];
ub=[inf,inf];
[x,z]=linprog(-c,A,b,Aeq,beq,lb,ub)
x =
1.0e+008 *
2.5106
5.0204
z =
-7.5309e+008
line([0,1],[4,6])
line([4,2],[2,0])
[-2 1;1 -1]\[4;2]
ans =
-6
-8
fill([0,0,1,4,2],[0,6,6,2,0],b)
实验总结:
通过这一次的实验,我掌握了利用matlab编程实现图解法求解线性规划问题,对图解法求解线性规划有了更加深刻的理解,并且提高了编程的能力。在今后的学习中,我也会利用所学的求解线性规划问题的方法,得到更好的掌握。
显示全部