线性规划什么的应该是运筹学的内容,虽然数学建模比赛不会考这个,但大家日常学习还是会遇到相关的问题。除了用单纯型法,也可以用传统的画图法,画出可行域,再寻求可行解。可行域一般手画更快,但要放在论文中还是应该用电脑画。下面以一个例题,来看如何在matlab中画可行域(我只是业余画一下,代码仅供参考,大家多多指导)。
code:
%% 直线
L1=[7,0;7,7];
plot(L1(:,1),L1(:,2));hold on %x1最大值为7
text(6.8,4,'x_1=7','color','b');
L2=[0 3;8 3];
plot(L2(:,1),L2(:,2));hold on %x2最大值为3
text(0.8,3.1,'x_2=3','color','b');
L3=[0 9;9 0];
plot(L3(:,1),L3(:,2));hold on
text(2,7,'x_1+x_2=9','color','b')
L4=[0,6;7,0.4];
plot(L4(:,1),L4(:,2));
text(0.5,5,'48x_1+30x_2=360','color','b')
L5=[0,9;7,-0.3];
plot(L5(:,1),L5(:,2));
text(6.5,0,'40x_1+30x_2=270','color','b')
grid on
%% 填充
[X1,X2]=meshgrid(0:0.01:7,0:0.01:3);
idX1=(X1+X2<=9)&(48*X1+60*X2>=360)&(40*X1+30*X2>=270);
X1=X1(idX1);
X2=X2(idX1);
k=convhull(X1,X2);
h=fill(X1(k),X2(k),'g'); %绿色填充
set(h,'edgealpha',0,'facealpha',0.3) %边界,透明度
效果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)