pivottableau.m

来自「压缩文件中是Error Correction Coding - Mathemat」· M 代码 · 共 46 行

M
46
字号
function [tableau,basicptr] = pivottableau(intableau,inbasicptr)% % Perform pivoting on an augmented tableau until % there are no negative entries on the last row%% function [tableau,basicptr] = pivottableau(intableau,inbasicptr)%% intableau = input tableau tableau,% inbasicptr = a list of the basic variables, such as [1 3 4]%% tableau = pivoted tableau % basicptr = new list of basic variables% Copyright 1999 by Todd K. Moontableau = intableau; basicptr = inbasicptr;[mp1,np1] = size(tableau);n = np1-1;  m = mp1-1;[rmin,q] = min(tableau(end,1:n));while(rmin < 0)  p = 0;  minratio = realmax;  for i=1:m    if(tableau(i,q) > 0)      r = tableau(i,np1)/tableau(i,q);      if(r < minratio)        minratio = r;        p = i;      end    end  end  if(p == 0)    error('unbounded solution');  end  % update which are the basic variables in the list  oldb = basicptr(p); basicptr(p) = q;  % perform the pivot  tableau(p,:) = tableau(p,:) / tableau(p,q);  for i=1:mp1    if(i ~= p)      tableau(i,:) = tableau(i,:) - tableau(p,:) .* tableau(i,q);    end  end  [rmin,q] = min(tableau(end,1:n));end

⌨️ 快捷键说明

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