資源簡介
單純形算法的matlab實(shí)現(xiàn),有詳細(xì)的注釋

代碼片段和文件信息
function?[xf]=danchunxing(Abcbase_index)
[mn]=size(A);
if(nargin==3)???????%若沒有指明基矩陣的坐標(biāo),則默認(rèn)為最后m列
????base_index=(n-m+1):n;
end
index=1:n;
[~non_base_index]=union(indexbase_index);
x=zeros(n1);
threshold=1e-5;
while(1)
%?for?i=1:20?
base=A(:base_index);???????%尋找基矩陣
B_inv=inv(base);????????
xb=B_inv*b;?????????????????%基本可行解
f=c(base_index)*xb;?????????%計(jì)算當(dāng)前目標(biāo)函數(shù)值
w=c(base_index)*B_inv;??????%
dis=w*A(:non_base_index)-c(non_base_index);%計(jì)算判別數(shù)
[dis_valdis_position]=max(dis);????????????%計(jì)算最大的判別數(shù)
if(dis_val<=threshold)
????break
end
y=B_inv*A(:dis_position);
if(max(y)<=0)
????fprintf(‘該問題不存在有限最優(yōu)解\n‘)
????break
end
temp=xb./y;?????????????%保證新的x的分量大于0
temp(temp<=0)=inf;
[r_valr]=min(temp);????%根據(jù)最小值確定進(jìn)基操作????
base_index(r)=non_base_index(dis_position);?%進(jìn)基操作
non_base_index(dis_position)=base_index(r);?%退基操作
end
x(base_index)=xb;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????984??2015-03-31?13:33??單純形\danchunxing.m
?????文件????????312??2015-03-31?12:25??單純形\test.m
?????目錄??????????0??2015-04-02?17:01??單純形
-----------?---------??----------?-----??----
?????????????????1296????????????????????3
評論
共有 條評論