单纯形法matlab程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

算法实现与分析算法1.单纯形法具体算例:minz=−3x1+x2+2x3{3x1+2x2−3x3=6x1−2x2+x3+x5=4x1,x2,x3≥0标准化后:minz=−3x1+x2+2x3+Mx4+Mx5{3x1+2x2−3x3+x4=6x1−2x2+x3+x5=4x1,x2,x3,x4,x5≥0用单纯形法求解,程序如下:clearclcM=1000000;A=[3,2,-3,1,0;1,-2,1,0,1];%系数矩阵C=[-3,1,2,M,M,0];%价值矩阵B=[6;4];Xt=[45];fori=1:length(C)-1D=0;forj=1:length(Xt)D=D+A(j,i)*C(Xt(j));endxi(i)=C(i)-D;ends=[];fori=1:length(xi)ifxi(i)0s=[s,i];endendf=length(s);h=1;while(f)fork=1:length(s)j=1;Ax=[];fori=1:length(Xt)ifA(i,s(k))0x(j)=i;j=j+1;endendxif(length(x)+1==1)break;endy=1xfori=1:length(x)ifB(x(i))/A(x(i),s(k))B(x(y))/A(x(y),s(k))y=i;endendy=x(y);endy1=Xt(y);%»»³ö±äÁ¿skaa=A(y,s(k))%s(k)Ϊ»»Èë±äÁ¿A(y,:)=A(y,:)./aa;B(y,:)=B(y,:)./aa;z=[];fori=1:length(Xt)z=[z,i];endzz(y)=[];zXtfori=1:length(z);yz=-A(z(i),s(k))A(z(i),:)=A(z(i),:)+A(y,:).*yzB(z(i))B(y)yzB(z(i))=B(z(i))+B(y).*yzendfori=1:length(Xt)ifXt(i)==y1Xt(i)=s(k);breakendendXtdisp('ת»»ºó')A=AB=BAB=[A,B];fori=1:length(C)D=0;forj=1:length(Xt)D=D+AB(j,i)*C(Xt(j));endxi(i)=C(i)-D;endxis=[];fori=1:length(xi)-1ifxi(i)0s=[s,i];endendsvpa([A,B;C]);f=length(s);h=h+1;ifh==5breakendend-xi(length(xi))

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功