資源描述:
《化實驗報告(單純形法的matlab程序_lingo程序)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告實驗一:線性規(guī)劃單純形算法一、實驗?zāi)康耐ㄟ^實驗熟悉單純形法的原理,掌握Matlab循環(huán)語句的應(yīng)用,提高編程的能力和技巧。二、實驗用儀器設(shè)備、器材或軟件環(huán)境WindowsXp操作系統(tǒng),Matlab6.5,計算機三、算法對于一般的標(biāo)準(zhǔn)形式線性規(guī)劃問題(求極小問題),首先給定一個初始基本可行解。設(shè)初始基為B,然后執(zhí)行如下步驟:(1).解,求得,(2).計算單純形乘子,,得到,對于非基變量,計算判別數(shù),令,R為非基變量集合若判別數(shù),則得到一個最優(yōu)基本可行解,運算結(jié)束;否則,轉(zhuǎn)到下一步(3).解,得到;若,即的每個分量均非正數(shù),則停止計算,問題不存在有限最優(yōu)解,否則
2、,進行步驟(4).(4).確定下標(biāo)r,使為離基變量。為進基變量,用替換,得到新的基矩陣,返回步驟(1)。對于極大化問題,可以給出完全類似的步驟,只是確定進基變量的準(zhǔn)則不同。對于極大化問題,應(yīng)令四、計算框圖第7頁南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告開始初始可行解令計算單純形乘子,計算判別數(shù)(非基變量)令是得到最優(yōu)解解方程,得到。否是不存在有限最優(yōu)解確定下標(biāo),是否為進基變量,用替換,得到新的基矩陣五、計算程序第7頁南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告function[x,f]=zuiyouhua(A,b,c)size(A)=[m,n];i=n+1:n+m;%基變量集合,后面m個松弛變量為初始基
3、變量;N=1:n;%初始非基變量;B=eye(m,m);xb=b';xn=zeros(m,1);f1=0;w=zeros(1,m);z=-c;%初始判別數(shù);flag=1;while(1)[a,k]=max(z);%x(k)為進基變量;ifa<=0flag=0;breakelsey=inv(B)*A(:,k)ify<=0flag=0;fprintf('不存在最優(yōu)解')breakend第7頁南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告t=find(y>0);[a,r1]=min(b1(t)./y(t))r=t(r1);%基變量中第r個變量為退基變量;i(:,r)=kB(:,r)=A(:,k);%換基,即
4、將原基中第r個變量換成第k個變量;cb=c(:,i);%新的價值系數(shù);xb=inv(B)*b;b0=xb;x=zeros(1,n+m)x(:,i)=xb'f=cb*xbz=cb*inv(B)*A-c;%可用z=cb*(BA)-c,判別數(shù).endend六、數(shù)值實驗及結(jié)果分析求解線性規(guī)劃問題:在工作區(qū)輸入:A=[3,3,1,0;-4,-4,0,1;2,-1,0,0];b=[30,16,12]';第7頁南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告c=[-3,1,0,0];[x,f]=zuiyouhua(A,b,c)x=7.33332.666700056.00000f=-19.3333檢驗結(jié)果正確七、心得
5、體會通過這次試驗,使我對單純形法的計算有了更進一步的了解。但是在編程過程中由于對matlab不是很熟悉還是遇到了很多麻煩,所以我覺得老師在讓我們編程的時候不能只是簡單的介紹一下算法,更要著重說明一下軟件的使用方法。這樣我們在編程的時候就能更加的得心應(yīng)手。本次完全仿照老師給的程序,沒有能夠形成自己的東西。自己編程的能力還是很差的,對于這種已經(jīng)給出算法的程序也不能正確的編寫出來。所以在今后要加強這方面的學(xué)習(xí)。實驗二:Lingo求解動態(tài)規(guī)劃問題第7頁南昌航空大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院實驗報告一、實驗?zāi)康耐ㄟ^本實驗熟悉動態(tài)規(guī)劃的原理,了解動態(tài)規(guī)劃的應(yīng)用,并能利用數(shù)學(xué)軟件(Lingo)求解動態(tài)規(guī)劃模型。二、
6、問題重述某公司打算向他的營業(yè)區(qū)增設(shè)4個銷售點,各區(qū)賺取的利潤與增設(shè)的銷售點個數(shù)有關(guān),其數(shù)據(jù)為:銷售店增加數(shù)第一區(qū)利潤(萬元)第二區(qū)利潤(萬元)第三區(qū)利潤(萬元)第四區(qū)利潤(萬元)01601902002501310225298308254144539948736005176016554705632721674試求各區(qū)應(yīng)分配幾個增設(shè)的銷售書店,才能使利潤最大?其值是多少?三、數(shù)學(xué)模型設(shè)為第區(qū)增設(shè)銷售點的個數(shù),為增設(shè)第個點所得到的盈利。故問題模型為:四、計算編程model:sets:quyu/1..4/;zl/0..4/;lirun(quyu,zl):g,c;endsets第7頁南昌航空大學(xué)數(shù)學(xué)與信
7、息科學(xué)學(xué)院實驗報告data:g=160310541600705,190225445517632,200298399601721,250308487655674;enddatamax=@sum(lirun(i,j):g(i,j)*c(i,j));@for(quyu(i):@sum(lirun(i,j):c(i,j))<=1);@for(lirun:@bin(c));@sum(lirun(i,j):(