實(shí)驗(yàn)二:matlab編程單純形法求解

實(shí)驗(yàn)二:matlab編程單純形法求解

ID:23246974

大?。?81.82 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2018-11-06

實(shí)驗(yàn)二:matlab編程單純形法求解_第1頁(yè)
實(shí)驗(yàn)二:matlab編程單純形法求解_第2頁(yè)
實(shí)驗(yàn)二:matlab編程單純形法求解_第3頁(yè)
實(shí)驗(yàn)二:matlab編程單純形法求解_第4頁(yè)
實(shí)驗(yàn)二:matlab編程單純形法求解_第5頁(yè)
資源描述:

《實(shí)驗(yàn)二:matlab編程單純形法求解》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、北京聯(lián)合大學(xué)實(shí)驗(yàn)報(bào)告項(xiàng)目名稱(chēng):運(yùn)籌學(xué)專(zhuān)題實(shí)驗(yàn)報(bào)告學(xué)院:自動(dòng)化專(zhuān)業(yè):物流工程班級(jí):1201B學(xué)號(hào):2012100358081姓名:管水城成績(jī):2015年 5 月 6 日實(shí)驗(yàn)二:MATLAB編程單純形法求解一、實(shí)驗(yàn)?zāi)康模?1)使學(xué)生在程序設(shè)計(jì)方面得到進(jìn)一步的訓(xùn)練;,掌握Matlab(C或VB)語(yǔ)言進(jìn)行程序設(shè)計(jì)中一些常用方法。(2)使學(xué)生對(duì)線(xiàn)性規(guī)劃的單純形法有更深的理解.二、實(shí)驗(yàn)用儀器設(shè)備、器材或軟件環(huán)境計(jì)算機(jī),MatlabR2006三、算法步驟、計(jì)算框圖、計(jì)算程序等本實(shí)驗(yàn)主要編寫(xiě)如下線(xiàn)性規(guī)劃問(wèn)題的計(jì)算程序:其中

2、初始可行基為松弛變量對(duì)應(yīng)的列組成.對(duì)于一般標(biāo)準(zhǔn)線(xiàn)性規(guī)劃問(wèn)題:1.求解上述一般標(biāo)準(zhǔn)線(xiàn)性規(guī)劃的單純形算法(修正)步驟如下:對(duì)于一般的標(biāo)準(zhǔn)形式線(xiàn)性規(guī)劃問(wèn)題(求極小問(wèn)題),首先給定一個(gè)初始基本可行解。設(shè)初始基為B,然后執(zhí)行如下步驟:(1).解,求得,(2).計(jì)算單純形乘子w,,得到,對(duì)于非基變量,計(jì)算判別數(shù),可直接計(jì)算令,R為非基變量集合若判別數(shù),則得到一個(gè)最優(yōu)基本可行解,運(yùn)算結(jié)束;否則,轉(zhuǎn)到下一步(3).解,得到;若,即的每個(gè)分量均非正數(shù),則停止計(jì)算,問(wèn)題不存在有限最優(yōu)解,否則,進(jìn)行步驟(4).確定下標(biāo)r,使;2

3、、計(jì)算框圖為:開(kāi)始初始可行基B是否得到最優(yōu)是否不存在有限確定下標(biāo)r,使得圖13.計(jì)算程序(Matlab):A=input('A=');b=input('b=');c=input('c=');formatrat%可以讓結(jié)果用分?jǐn)?shù)輸出[m,n]=size(A);E=1:m;E=E';F=n-m+1:n;F=F';D=[E,F];%創(chuàng)建一個(gè)一一映射,為了結(jié)果能夠標(biāo)準(zhǔn)輸出X=zeros(1,n);%初始化Xif(n

4、1;B=A(:,n-m+1:n);%找基矩陣cB=c(n-m+1:n);%基矩陣對(duì)應(yīng)目標(biāo)值的cwhileflagw=cB/B;%計(jì)算單純形乘子,cB/B=cB*inv(B),用cB/B的目的是,為了提高運(yùn)行速度。。panbieshu=w*A-c%計(jì)算判別數(shù),后面沒(méi)有加分號(hào),就是為了計(jì)算后能夠顯示出來(lái)。。[z,k]=max(panbieshu);%k作為進(jìn)基變量下標(biāo)。。fprintf('b''./(B\A(:,%d))為',k);b'./(BA(:,k))if(z<0.000000001)flag=0;%

5、所有判別數(shù)都小于0時(shí)達(dá)到最優(yōu)解。。fprintf('已找到最優(yōu)解!');xB=(Bb')';f=cB*xB';fori=1:nmark=0;forj=1:mif(D(j,2)==i)mark=1;X(i)=xB(D(j,1));%利用D找出xB與X之間的關(guān)系。。endendifmark==0X(i)=0;%如果D中沒(méi)有X(i),則X(i)為非基變量,所以X(i)=0。。endendfprintf('基向量為:');Xfprintf('目標(biāo)函數(shù)值為:');felseif(BA(:,k)<=0)%如果B

6、A(;,k)中的每一個(gè)分量都小于零。。flag=0;fprintf('此問(wèn)題不存在最優(yōu)解!');%若BA(:,k)的第k列均不大于0,則該問(wèn)題不存在最優(yōu)解。。elseb1=Bb';temp=inf;fori=1:mif((A(i,k)>0)&&(b1(i)/(A(i,k)+eps))

7、r)=c(k);%確定進(jìn)基退基變量后,相應(yīng)的基矩陣及新基對(duì)應(yīng)的目標(biāo)值的c也相應(yīng)改變D(r,2)=k;%改變D中的映射關(guān)系endendendend程序保存為danchunxin.m 文件四.?dāng)?shù)值實(shí)驗(yàn)及其結(jié)果:打開(kāi)matlab軟件,點(diǎn)擊運(yùn)行danchunxin.m,出現(xiàn)命令符要求輸入相應(yīng)矩陣命令。1.求解:輸入數(shù)據(jù)矩陣如下:A=[94100;45010;310001]b=[360200300]c=[-7-12000]點(diǎn)擊運(yùn)行得如下圖:圖2由實(shí)驗(yàn)結(jié)果可知,該問(wèn)題的最優(yōu)解為:x1=100,x2=0,x3=540,x

8、4=200,x5=0,最大值為700。1.求解:輸入數(shù)據(jù)矩陣如下:A=[-3-2-1-6-1810;-1-0.5-0.2-2-0.501;0.510.220.800]b=[-700-30200]c=[2749500]點(diǎn)擊運(yùn)行得如下圖:圖3由實(shí)驗(yàn)結(jié)果可知,該問(wèn)題的最優(yōu)解為:x1=15200/33,x2=0,x3=0,x4=0,x5=1250/33,x6=0,最小值為:1235/3。1.求解:輸入數(shù)據(jù)矩陣如下:A=[

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。