?? mydcx.m
字號:
function [f,x]=mydcx(A,flag)
% 單純形法
%輸入A:增廣陣,要求已有初始可行解
%A= [A d
% c f]
%基本可行解指示向量flag=1:Ar-1,按“行”的順序存可行解“列”號
%-------------------------------------------------------------------
[Ar Ac]=size(A); %A-尺寸
for i=1:Ac-Ar
p=min(A(Ar,1:Ac-1));
if p<0
c=find(A(Ar,1:Ac-1)==p); %列號,目標行負的最大的
%-----------------------------------
Ad=A(1:Ar-1,Ac)./A(1:Ar-1,c); %行號,最小正數
for ii=1:Ar-1
if Ad(ii)<=0
Ad(ii)=inf;
end
end
q=min(Ad);
r=find(Ad==q);
%-------------------------------------
flag(r)=c; %指示向量
A=mygaussx(A,r,c); %以A(r,c)為軸高斯消去
elseif p>=0
break
end
end
f=-A(Ar,Ac); %取目標值
x=zeros(1,Ac-1);
for i=1:Ar-1
fp=flag(i);
x(fp)=A(i,Ac); %可行解
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -