实验1图解法求解线性规划Word文档格式.docx
《实验1图解法求解线性规划Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验1图解法求解线性规划Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
2编辑录入程序
3调试程序并记录调试过程中出现的问题及修改程序的过程
4经反复调试后,运行程序并验证程序运行是否正确。
5记录运行时的输入和输出。
预习编写程序代码:
实验报告:
根据实验情况和结果撰写并递交实验报告。
实验总结:
参考程序
一、实验内容
图解法求解线性规划4个
1、无可行解
maxz=3x1+4x2
2x1+x2<
=40
x1+1.5x2<
=30
x1+x2>
=50
在matlab的命令窗口中输入:
>
line([30,0],[0,20])
line([20,0],[0,40])
line([50,0],[0,50])
得到图像:
由图像知,需要分别求出第一条直线与第二条直线交点,用求解线性方程组的左除命令
在matlab命令窗口中执行以下命令得到:
[21;
11.5]\[40;
30]
ans=
15.0000
10.0000
可行域的各顶点为:
(0,0)、(20,0)、(15,10)、(0,20)、(50,0)、(0,50)
由可行域和目标函数可以看出原线性规划问题无可行解。
2、有唯一最优解:
Maxz=50*x1+100*x2
x1+x2<
=300
=400
x2<
=250
x1>
=0,x2>
=0
现在MATLAB中做出P1,P2,P3三条直线的图,根据三条直线上点,在MATLAB命令窗口输入:
line([0,300],[300,0])
line([200,0],[0,400])
line([0,250],[250,0])
得到的图像如下:
由图像知,需要分别求出第一条直线与第二条直线交点,第一条直线与第三条直线交点。
用求解线性方程组的左除命令
[11;
21]\[300;
400]
100
200
01]\[300;
250]
50
250
得到P12=(100,200),P13=(50,250)由此得可行域对应的多边形角点坐标如下
P0(0,0)
P1(0,250)
P13(50,250)
P12(100,200)
P2(200,0)
用填充命令
fill([0,0,50,100,200],[0,250,250,200,0],'
b'
)
将P13的坐标带入目标函数:
MaxZ=50*50+100*250=27500
为了在可行域图上画出直线
50x1+100x2=27500
的图形。
首先计算出该直线在坐标轴上的截距分别为:
27500/5027500/100使用两点绘直线命令
line([27500/50,0],[0,27500/100])
得直线的图形如图3所示,直线与可行域多边形相切。
切点正好是可行域的一个角点,该角点的坐标P13(50,250)就是原问题的最优解
3、有无穷多最优解:
MaxZ=50x1+50x2
X2<
Xj>
=0,j=1,2
在MATLAB中做P1,P2,P3三条直线
line([0,250],[250,250])
MaxZ=50*50+50*250=15000
50x1+50x2=15000
15000/5015000/50使用两点绘直线命令
line([15000/50,0],[0,15000/50])
由图可得,直线与可行域多边形相切,但可以看出该问题有无穷多最优解
4、有无界解:
MaxZ=x1+x2
-2x1+x2<
=4
x1-x2<
=2
x1,x2>
在MATLAB中做P1,P2,两条直线
line([-2,0],[0,4])
line([2,0],[0,-2])
做目标函数的等值线,并沿等值线的法线方向移动等值线
line([3,0],[0,3])
line([2,0],[0,2])
line([1.5,0],[0,1.5])
由图像知将等值线向右上方移动时,目标函数值逐渐增大,但是永远也找不到目标函数的最大值,此时,我们就说,该线性问题无有限最优解,或者说具有无界解。
实验总结:
:
通过这次试验,我学会了在matlab中编写程序解线性规划问题的四种接的情况,唯一解,无穷最优解,无界解,无可行解。