ineqelim2.m
来自「线性M3网络及其示意图」· M 代码 · 共 54 行
M
54 行
function [Aout,bout]=IneqElim(A,b)
% A*x>b
n=size(A,1);
for i=1:2*n, % 2n times?
r=A(1,:);
r=r';
p=A(2:end,:);
p=p';
s=b(2:end);
q=p\r;% X = A\B is the solution to the equation AX = B
if rank(p)~=rank([p,r])
A(end+1,:)=A(1,:);
b(end+1)=b(1);
A(1,:)=[];
b(1)=[];
continue;
end
while (~isempty(find(q < 0)) & ~isempty(p))
ql=find(q<0);
p(:,ql)=[];
s(ql)=[];
if rank(p)~=rank([p,r])
q=zeros(size(r,1));
break;
end
q=p\r;
end
if ~isempty(p) & b(1) <= q'*s & ~isequal(q,zeros(size(r,1))),
A(1,:)=[];
b(1)=[];
else
%m=max(max(A));
%A(1,:)=A(1,:)*m;
%b(1)=b(1)*m;
A(end+1,:)=A(1,:);
b(end+1)=b(1);
A(1,:)=[];
b(1)=[];
end
end
Aout=A; %gcd can't be used to double.
bout=b;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?