⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 purematlab.txt

📁 用matlab编写的单纯形法程序希望对大家有帮助
💻 TXT
字号:

%% 单纯形法(Matlab程序) 

a=input('input the major matrix A  ');
b=input('input the matrix b  ');
n=input('input the judgement  ');
%%g为计数器(确定循环次数)
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;
   %%确定判别数
   tt=n;
   for j=1:alength
      tt(j)=n(j)-a(l,j)*n(k)/a(l,k);
   end;
   n=tt;
   a=aa;
   %%显示单纯形表sa
   sa=[b' aa;
      0 n];
   disp('单纯表示例');
   disp(g+1);
   disp(sa);
   g=g+1;
   judge=2;    
end;
if judge==2
   q=0;
   result=zeros(alength,2);
   for j=1+q:alength
      if n(j)==0
         t=a(:,j);
         zu=find(t);
         result(j,1)=j;
         result(j,2)=x(zu);
         q=q+1;
      end
      if n(j)>0
         result(j,1)=q+1;
         q=q+1;
      end   
   end;
   disp('最优解');
   disp(result);
   disp('循环次数');
   g
 end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -