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

📄 y.m

📁 matlab 关于对偶纯形法的最优化程序的实例编程
💻 M
字号:
%对偶单纯形法
function result=y(A,B,C)
a=-1*A;
[row line]=size(A);
a=[a eye(row,row)];
b=-1*B;
c=[C zeros(1,row)];
dex=c;                                                %dex为判别数                          
basic=line+1:1;line+row;                              %basic为基可行解
X=zeros(1,line);
X1=zeros(1,line+row);
b1=sort(b);
while(b1(1)<0)
    m=0;   
    for i=1:length(b)
        if(b(i)<m)
            m=b(i);   j=i;                            %求出最小的b
        end
    end;    
   n=a(j,:);
   count=0;
   for i=1:length(n)
       if(n(i)>=0)   
           count=count+1;
       end
   end;
   if(count==length(n))    
       error('无最优解');
   end
   seta=dex./n;
   seta1=-Inf;
   for i=1:length(seta)
      if(seta(i)>=seta1&n(i)<0)                    %求出最大且为负的seta
             seta1=seta(i);   k=i;
      end
   end;    
   basic(j)=k;
   b(j)=b(j)/a(j,k);
   a(j,:)=a(j,:)/a(j,k);
   for i=1:length(b)
       if(i~=j)
           b(i)=b(i)-b(j)*a(i,k);
           a(i,:)=a(i,:)-a(j,:)*a(i,k);
       end    
   end;
  q=dex(k);
  dex=dex-q*a(j,:);
  b1=sort(b);
end;
for i=1:length(basic)
    temp=basic(i);
    X1(temp)=b(i);
end;
for i=1:length(X)
    X(i)=X1(i);
end;
X=X'
X1=X1';
result=c*X1;


   

⌨️ 快捷键说明

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