当前位置:文档之家› 单纯形法MATLAB程序

单纯形法MATLAB程序

单纯形法MATLAB程序
单纯形法MATLAB程序

单纯形法(Matlab 程序)

%%单纯形法( Matlab 程序)

a=input('input the major matrix A '); b=input('input the matrix b ');

n=input('input the judgement ');

%%为计数器(确定循环次数)

g=0;

while g<40

%%确定非负

alength=max(size(n));

blength=max(size(b));

m=0;

for i=1:alength

if n(i)>=0

m=m+1;

end

end;

if m==alength

x=b;

break

end;

%%找 K

s=min(n);

for i=1:alength

if n(i)==s

k=i;

break

end;

end;

%%a[i,k] 的非负性

m=0;

for i=1:blength

if a(i,k)<0

m=m+1;

end;

end;

if m==blength

disp('x does not exit');

judge=1;

break

end;

%%找 L 确定主元 cc=100000;

for i=1:blength

if a(i,k)>0

if

(b(i)/a(i,k))<

cc

cc=b(i)/a(i,k);

end

end end; for i=1:blength

if a(i,k)~=0

if (b(i)/a(i,k))==cc

l=i;

break

end

end end; %%计算 ,a 标准化 zu=a(l,k); aa=a; for i=1:l-1

for j=1:alength aa(i,j)=a(i,j)-

a(l,j)*a(i,k)/a(l,k);

end end; for i=l+1:blength

for j=1:alength aa(i,j)=a(i,j)-

a(l,j)*a(i,k)/a(l,k);

end end; for j=1:alength

aa(l,j)=a(l,j)/zu; end;

%%b勺判别 bb=b; bb(l)=b(l)/zu;

for i=1:l-1 bb(i)=b(i)-

b(l)*a(i,k)/a(l,k);

end;

for i=l+1:blength bb(i)=b(i)-

b(l)*a(i,k)/a(l,k);

end;

b=bb; %%确定判别数

相关主题
文本预览
相关文档 最新文档