单纯形法matlab程序_单纯形法的matlab程序

2020-02-27 其他范文 下载本文

单纯形法matlab程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单纯形法的matlab程序”。

算法实现与分析

算法1.单纯形法 具体算例:

minz=−3x1+x2+2x3 3x1+2x2−3x3=6 x1−2x2+x3+x5=4

x1,x2,x3≥0标准化后:

min z=−3x1+x2+2x3+Mx4+Mx5

3x1+2x2−3x3+x4=6 x1−2x2+x3+x5=4

x1,x2,x3,x4,x5≥0用单纯形法求解,程序如下: clear clc

M=1000000;

A=[3,2,-3,1,0;1,-2,1,0,1];%系数矩阵 C=[-3,1,2,M,M,0];%价值矩阵 B=[6;4];Xt=[4 5];

for i=1:length(C)-1 D=0;

for j=1:length(Xt)

D=D+A(j,i)*C(Xt(j));

end

xi(i)=C(i)-D;end s=[];

for i=1:length(xi)

if xi(i)

end end

f=length(s);h=1;

while(f)

for k=1:length(s)j=1;A x=[];

for i=1:length(Xt)

if A(i,s(k))>0 x(j)=i;j=j+1;

end end x

if(length(x)+1==1)break;end y=1 x

for i=1:length(x)

if B(x(i))/A(x(i),s(k))

end end y=x(y);end

y1=Xt(y);%»»³ö±äÁ¿ s k

aa=A(y,s(k))%s(k)Ϊ»»Èë±äÁ¿ A(y,:)=A(y,:)./aa;B(y,:)=B(y,:)./aa;z=[];

for i=1:length(Xt)z=[z,i];end

z z(y)=[];z Xt

for i=1:length(z);yz=-A(z(i),s(k))

A(z(i),:)=A(z(i),:)+A(y,:).*yz B(z(i))B(y)yz

B(z(i))=B(z(i))+B(y).*yz end

for i=1:length(Xt)

if Xt(i)==y1 Xt(i)=s(k);break

end end Xt

disp('ת»»ºó')A=A B=B AB=[A,B];

for i=1:length(C)D=0;

for j=1:length(Xt)D=D+AB(j,i)*C(Xt(j));

end

xi(i)=C(i)-D;

end xi s=[];

for i=1:length(xi)-1

if xi(i)

end

end s

vpa([A,B;C]);f=length(s);h=h+1;

if h==5

break

end end

-xi(length(xi))

《单纯形法matlab程序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
单纯形法matlab程序
点击下载文档
相关专题 单纯形法的matlab程序 程序 matlab 单纯形法的matlab程序 程序 matlab
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文