純形法:simplemth

純形法:simplemth

ID:29960099

大?。?5.93 KB

頁數(shù):6頁

時(shí)間:2018-12-25

純形法:simplemth_第1頁
純形法:simplemth_第2頁
純形法:simplemth_第3頁
純形法:simplemth_第4頁
純形法:simplemth_第5頁
資源描述:

《純形法:simplemth》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、單純形法函數(shù):SimpleMthd用單純形算法解如下線性規(guī)劃問題的步驟如下:(1)確定初始基變量矩陣;求解方程;(2)令,計(jì)算;其中和分別代表基變量和非基變量的值,表示基變量在目標(biāo)函數(shù)中的系數(shù);(3)求解方程,對(duì)于所有非基變量計(jì)數(shù)判別數(shù),其中為非基變量在約束系數(shù)矩陣中相對(duì)應(yīng)的列,令,如果,則停止計(jì)算,輸出最優(yōu)解,否則轉(zhuǎn)步驟4;(4)求解方程,若的每個(gè)分量均大于0,則問題不存在最優(yōu)解,否則轉(zhuǎn)步驟5;(5)令,其中,用代替,得到新的基變量矩陣再轉(zhuǎn)步驟2計(jì)算。調(diào)用格式:其中,:約束矩陣;:目標(biāo)函數(shù)系數(shù)向量;:約束右端向量;:初始向量,basic;:目標(biāo)函數(shù)取最小值時(shí)自由變量值

2、;:目標(biāo)函數(shù)的最小值;單純形法函數(shù)的MATLAB程序代碼如下:function[x,minf]=SimpleMthd(A,c,b,baseVector)%約束矩陣:A;%目標(biāo)函數(shù)系數(shù)向量:c;%約束右端向量:b;%初始基向量:baseVector;%目標(biāo)函數(shù)取最小值時(shí)的自變量值:x;%目標(biāo)函數(shù)最小值:minf;sz=size(A);nVia=sz(2);n=sz(1);xx=1:nVia;nobase=zeros(1,1);m=1;fori=1:nViaif(isempty(find(baseVector==xx(i),1)))nobase(m)=i;m=m+1;els

3、e;endendbCon=1;M=0;whilebConnB=A(:,nobase);%非基變量矩陣ncb=c(nobase);%非基變量系數(shù)B=A(:,baseVector);%基變量矩陣cb=c(baseVector);%基變量系數(shù)xb=inv(B)*b;f=cb*xb;w=cb*inv(B);fori=1:length(nobase)sigma(i)=w*nB(:,i)-ncb(i);end[maxs,ind]=max(sigma);%ind為進(jìn)基變量下標(biāo)ifmaxs<=0%最大值小于零,輸出最優(yōu)解minf=cb*xb;vr=find(c~=0,1,'last')

4、;forl=1:vrele=find(baseVector==l,1);if(isempty(ele))x(l)=0;elsex(l)=xb(ele);endendbCon=0;elsey=inv(B)*A(:,nobase(ind));ify<=0%不存在最優(yōu)解disp('不存在最優(yōu)解!');x=NaN;minf=NaN;return;else%尋找出基變量minb=inf;chagB=0;forj=1:length(y)ify(j)>0bz=xb(j)/y(j);ifbz

5、gB);%更新基矩陣和非基矩陣baseVector(chagB)=nobase(ind);noase(ind)=tmp;endendM=M+1;if(M==1000000)%迭代步數(shù)限制disp('找不到最優(yōu)解');x=NaN;minf=NaN;return;endend當(dāng)目標(biāo)函數(shù)的自變量系數(shù)全都大于0時(shí),一定要小心。為解決這個(gè)問題,可以在代碼中加入如下語句:ifc>=0vr=find(c~=0,1,'last');rgv=inv(A(:,(nVia-n+1):nVia))*b;ifrgv>=0elsedisp('不存在最優(yōu)解!');x=NaN;minf=NaN;ret

6、urn;endend因此完整的單純形的MATLAB程序如下:function[x,minf]=CmpSimpleMthd(A,c,b,baseVector)%約束矩陣:A;%目標(biāo)函數(shù)系數(shù)向量:c;%約束右端向量:b;%初始基向量:baseVector;%目標(biāo)函數(shù)取最小值時(shí)的自變量值:x;%目標(biāo)函數(shù)最小值:minf;sz=size(A);nVia=sz(2);n=sz(1);xx=1:nVia;nobase=zeros(1,1);m=1;ifc>=0vr=find(c~=0,1,'last');rgv=inv(A(:,(nVia-n+1):nVia))*b;ifrgv>=

7、0elsedisp('不存在最優(yōu)解!');x=NaN;minf=NaN;return;endendfori=1:nViaif(isempty(find(baseVector==xx(i),1)))nobase(m)=i;m=m+1;else;endendbCon=1;M=0;whilebConnB=A(:,nobase);%非基變量矩陣ncb=c(nobase);%非基變量系數(shù)B=A(:,baseVector);%基變量矩陣cb=c(baseVector);%基變量系數(shù)xb=inv(B)*b;f=cb*xb;w=cb*inv(B);for

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。