dcx.m

来自「对偶单纯形法matlab的实现,是我的一个作业.看看好用不.」· M 代码 · 共 29 行

M
29
字号
function [T,b]=dcx(T,n,b)    %b是基变量的下标集,n是所有变量的下标集,T对应初始单纯形表
[hang,lie]=size(T);
l=min(T(1,1:lie-1));  
while l<0  %判断-f那一行最小值是否为负值,如果是负值则进入循环
    [in,j]=min(T(1,1:lie-1));%确定入基变量的下标
  for p=2:hang
     if T(p,j)<=0
       f(p-1)=inf;
        else
            f(p-1)=T(p,hang)./T(p,j);%求右端项和对应的入基变量所对应列的响应元素的比值
        end
    end
 [out,i]=min(f);%确定出基变量的下标
  b(i)=n(j);   %入基
  i=i+1;
    T(i,:)=T(i,:)./T(i,j); %将基矩阵化为单位矩阵
    for w=1:hang
        if w~=i
            T(w,:)=T(w,:)+(-T(w,j)).*T(i,:);
        end
    end
   l=min(T(1,1:lie-1))
   if l>0  
    break;%停止跌代
   end
end
 T
 b

⌨️ 快捷键说明

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