資源描述:
《單純形法matlab程序.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、算法實(shí)現(xiàn)與分析算法1.單純形法具體算例:minz=-3x1+x2+2x33x1+2x2-3x3=6x1-2x2+x3+x5=4x1,x2,x3≥0標(biāo)準(zhǔn)化后:minz=-3x1+x2+2x3+Mx4+Mx53x1+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];%系數(shù)矩陣C=[-3,1,2,M,M,0];%價(jià)值矩陣B=[6;4];Xt=[45];fori=1:length(C)-1D=0;forj=1:length(
2、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))
3、endy=x(y);endy1=Xt(y);%??3?±?á?skaa=A(y,s(k))%s(k)?a??è?±?á?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);b
4、reakendendXtdisp('×a??oó')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))