图解法求解线性规划
发布时间:2024-11-21
发布时间:2024-11-21
实验1 图解法求解线性规划
专业班级学号 姓名报告日期 .
实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:进一步熟练掌握图解法求解线性规划。 实验内容:图解法求解线性规划4个(题目自选)
实验原理 线性规划图解法(线性规划解有四种情形,唯一最优解,无穷多个最解,无界解,无可行解)
实验步骤
1 要求上机实验前先编写出程序代码 2 编辑录入程序
3 调试程序并记录调试过程中出现的问题及修改程序的过程 4 经反复调试后,运行程序并验证程序运行是否正确。 5 记录运行时的输入和输出。 预习编写程序代码:
实验报告:根据实验情况和结果撰写并递交实验报告。 实验总结: 参考程序
第一题:
maxz 2x1 3x2 2x1 2x2 12 4x1 16
s.t
5x2 15 x1,x2 0
输入下面绘直线命令 line([6,0],[0,6]) ; line([4,4],[0,6]) ; line([0,6],[3,3]); 可得图形:
0123456
由上图可知,需要分别求出第一条直线与第三条直线交点,第二条直线与第三条直线交点。用求解线性方程组的左除命令 [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)就是原问题的最优解。 第二题:
maxZ 100x1 100x2
x1 x2 300 2x x 400 12s.t.
x 250 2 x1 0,x2 0
输入下面绘直线命令
>> 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]) 可得图形
5000
4500
4000
3500
3000
2500
2000
1500
1000
500
由上图可知,需要分别求出第一条直线与第三条直线交点,第二条直线与第三条直线交点。用求解线性方程组的左除命令 [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'), 得可行域图形:
45004000
3500300025002000150010005000
将P13的坐标代入目标函数得
zmax=5×1000+3×2500=12500 使用两点绘直线命令
line([12500/5,0],[0,12500/3])
得直线的图形上图所示,直线与可行域多边形相切。切点正好是可行域的一个角点,该角点的坐标P13(1000,2500)就是原问题的最优解。 第四题:
maxz x1 x2
2x1 x2 4 x x 2
s.t 12
2x x 412 x1,x2 0
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编程实现图解法求解线性规划问题,对图解法求解线性规划有了更加深刻的理解,并且提高了编程的能力。在今后的学习中,我也会利用所学的求解线性规划问题的方法,得到更好的掌握。
下一篇:不拖欠民工工资承诺书