港口系統(tǒng)仿真大作業(yè)_第1頁
港口系統(tǒng)仿真大作業(yè)_第2頁
港口系統(tǒng)仿真大作業(yè)_第3頁
港口系統(tǒng)仿真大作業(yè)_第4頁
港口系統(tǒng)仿真大作業(yè)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

港口系統(tǒng)仿真課程設(shè)計交運172王星宇2017106111581.在計算機上利用線性同余法或乘同余法產(chǎn)生[0,1]區(qū)間獨立均勻分布的隨機數(shù)序列。(A)要求產(chǎn)生2組隨機數(shù)序列,每組1000個。(B)計算每組隨機數(shù)的均值,并且以0.1為間隔,(0,0.1),(0.1,0.2),(0.2,0.3),...畫出隨機數(shù)落在每個子區(qū)間內(nèi)的頻率分布曲線。解:(1)用a=9,c=7,m=2^15,x0=7生成一個1000行1列的矩陣,用循環(huán)語句生成1000個0到1之間的隨機數(shù),用mean函數(shù)求平均值并用histfit進(jìn)行作圖,如圖1以及圖2。圖1圖2(2)以下是第二組隨機數(shù)的生成,流程與第一小組隨機數(shù)相同,如圖3和圖4。圖3圖42.為模擬船舶的裝卸過程,首先需要模擬船舶的到港過程,假設(shè)泊位充足,且船舶的到達(dá)服從每天平均3.6艘船的泊松分(A)以T1產(chǎn)生的第一組隨機數(shù)為基礎(chǔ),按照上述分布特點產(chǎn)生1000艘船舶的到港時間間隔(以min為單位),并計算你所產(chǎn)生的這1000個到達(dá)時間間隔的平均值。(B)以100min為劃分間隔,畫出產(chǎn)生到達(dá)時間間隔在各區(qū)間的頻率分布圖解:首先將每天3.6艘船的單位進(jìn)行轉(zhuǎn)換,然后建立循環(huán)語句,因為船舶達(dá)港服從泊松到達(dá)過程且符合指數(shù)分布,所以到達(dá)間隔時間可以用R=1-e^(a*x),然后求出平均數(shù)并作圖,如圖5和圖6。圖5圖63.為仿真船舶的裝卸過程,需模擬船舶的裝卸過程。為此,研究人員統(tǒng)計了200艘船舶的裝卸所需時間,如下表所示:區(qū)間(小時)2~44~66~88~1010~11頻數(shù)4050603020(A)根據(jù)該數(shù)據(jù)擬合出裝卸服務(wù)時間這個隨機變量的累積分布函數(shù)(B)以T1產(chǎn)生的第二組隨機數(shù)為基礎(chǔ),按照上述統(tǒng)計規(guī)律模擬產(chǎn)生1000艘船舶的裝卸服務(wù)時間(單位:min),并計算所產(chǎn)生的1000艘船舶裝卸服務(wù)時間的平均值。(C)以100min為區(qū)間間隔,畫出產(chǎn)生數(shù)據(jù)在各區(qū)間的頻率分布圖。解:可以套用累積分布函數(shù)得到函數(shù)tan(i)=(x(i+1)-x(i))/(y(i+1)-y(i))并利用switch語句生成裝卸時間。如圖7與圖8。圖7圖8利用histfit作圖可得出如下裝卸時間的分布,如圖9。圖94.采用T2產(chǎn)生的1000個船舶到港時間間隔數(shù)據(jù),T3產(chǎn)生的1000艘船舶裝卸服務(wù)時間,假設(shè)只有1臺橋吊,對1000艘船舶的裝卸排隊服務(wù)過程進(jìn)行仿真:統(tǒng)計橋吊利用率、每艘船舶平均在港總時間、每艘船舶平均等待時間解:吊橋利用率=總服務(wù)時間/總時間平均在港時間=(總服務(wù)時間+總裝卸時間)/船舶數(shù)量平均等待時間=總等待時間/船舶數(shù)量其中總的服務(wù)時間就是第一艘船開始到最后一艘船的結(jié)束,如圖10,11,12,13。圖10圖11圖12圖135.假設(shè)有2臺橋吊(橋吊A和橋吊B,在A和B均空閑時,選擇讓A服務(wù)),重復(fù)對1000艘船舶的裝卸過程進(jìn)行仿真,并統(tǒng)計相關(guān)統(tǒng)計量(橋吊利用率、每艘船舶平均在港總時間、每艘船舶平均等待時間)。解:根據(jù)題意,利用循環(huán)嵌套的語句進(jìn)行解答比較合適,A與B同時空閑就選擇A,A空閑B在忙就選擇A,B空閑A在忙就選擇B,如圖14,15,16,17,18。本題全代碼如下nextA=0nextB=0arrival=0sumstevedoreA=0sumstevedoreB=0sumawait=0sumstevedore=sum(stevedore)fori=1:1000ifarrival>=nextA&&arrival>=nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifarrival>=nextA&&arrival<nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifarrival<nextA&&arrival>=nextBnextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)elseifnextA<=nextBsumawait=sumawait+(nextA-arrival)nextA=nextA+(nextA-arrival)sumstevedoreA=sumstevedoreA+stevedore(i)elsesumawait=sumawait+(nextB-arrival)nextB=nextB+(nextB-arrival)sumstevedoreB=sumstevedoreB+stevedore(i)endendarrival=arrival+interval(i)endifnextA>=nextBzong=nextAelsezong=nextBend圖14圖15吊橋A利用率圖16吊橋B利用率圖17平均在港時間圖18平均等待時間6.如果上述服務(wù)規(guī)則改為:如果A和B均空閑,則以0.6的概率選擇B,重復(fù)上述仿真本題的思路與第五題大致相同,就是在判斷語句有所改變,代碼如下并如圖19,20,21,22。nextA=0nextB=0arrival=0sumstevedoreA=0sumstevedoreB=0sumawait=0a=9;c=7;m=2^15;x0=9;B=zeros(1000,1);n=1;whilen<=1000n=n+1;x=rem((a*x0+c),m);x0=x;s=x/m;B(n-1,1)=s;endfori=1:1000ifarrival>=nextA&&arrival>=nextBprobability=B(i,1);ifprobability>=0.6nextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elsenextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)endelseifarrival<nextA&&arrival>=nextBnextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)elseifarrival>=nextA&&arrival<nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifnextA>nextBsumawait=sumawait+(nextB-arrival)nextB=nextB+(nextB-arrival)sumstevedoreB=sumstevedoreB+stevedore(i)elseifnextA<nextBsumawait=sumawait+(nextA-arrival)nextA=nextA+(nextA-arrival)sumstevedoreA=sumstevedoreA+stevedore(i)elseprobability2=rand(1,1)ifprobability2>=0.6sumawait=sumawait+(nextA-arrival)nextA=nextA+(nextA-arrival)sumstevedoreA=sumstevedoreA+stevedore(i)elsesumawait=sumawait+(nextB-arrival)nextB=nextB+(nextB-arrival)sumstevedoreB=sumstevedoreB+stevedore(i)endendendarrival=arrival+interval(i)endifnextA>=nextBzong=nextAelsezong=nextBend圖19圖20吊橋A利用率圖21吊橋B利用率圖22平均在港時間圖23平均等待時間原代碼:1.a=9;c=7;m=2^15;x0=7;B=zeros(1000,1);n=1;whilen<=1000n=n+1;x=rem((a*x0+c),m);x0=x;s=x/m;B(n-1,1)=s;endmean(B)histfit(B,10)a=11;c=0;m=2^15;x0=7;D=zeros(1000,1);n=1;whilen<=1000n=n+1;x=rem((a*x0+c),m);x0=x;s=x/m;D(n-1,1)=s;endmean(D)histfit(D,10)2.pingju=3.6jiange=3.6/1440interval=zeros(1000,1);n=1;whilen<=1000n=n+1;interval(n-1,1)=-log(1-B(n-1,1))/jiange;endmean(interval)histfit(interval,30)3.x=[2,4,6,8,10,11];y=[0,0.2,0.45,0.75,0.9,1];tan=zeros(5,1);fori=1:5tan(i)=(x(i+1)-x(i))./(y(i+1)-y(i));endstevedore=zeros(1000,1).*60;fori=1:1000switchceil(D(i)*100)casenum2cell(0:20)stevedore(i)=tan(1).*D(i)+x(1);casenum2cell(21:45)stevedore(i)=tan(2).*(D(i)-0.2)+x(2);casenum2cell(46:75)stevedore(i)=tan(3).*(D(i)-0.45)+x(3);casenum2cell(76:90)stevedore(i)=tan(4).*(D(i)-0.75)+x(4);casenum2cell(91,100)stevedore(i)=tan(5).*(D(i)-0.9)+x(5);endend4.nextwork=0;arrival=0;sumstevedore=sum(stevedore)sumawait=0;fori=1:1000ifnextwork>arrivalsumawait=sumawait+(nextwork-arrival)nextwork=arrival+(nextwork-arrival)elsenextwork=arrival+stevedore(i)endarrival=arrival+interval(i)end5.nextA=0nextB=0arrival=0sumstevedoreA=0sumstevedoreB=0sumawait=0sumstevedore=sum(stevedore)fori=1:1000ifarrival>=nextA&&arrival>=nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifarrival>=nextA&&arrival<nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifarrival<nextA&&arrival>=nextBnextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)elseifnextA<=nextBsumawait=sumawait+(nextA-arrival)nextA=nextA+(nextA-arrival)sumstevedoreA=sumstevedoreA+stevedore(i)elsesumawait=sumawait+(nextB-arrival)nextB=nextB+(nextB-arrival)sumstevedoreB=sumstevedoreB+stevedore(i)endendarrival=arrival+interval(i)endifnextA>=nextBzong=nextAelsezong=nextBend6.nextA=0nextB=0arrival=0sumstevedoreA=0sumstevedoreB=0sumawait=0a=9;c=7;m=2^15;x0=9;B=zeros(1000,1);n=1;whilen<=1000n=n+1;x=rem((a*x0+c),m);x0=x;s=x/m;B(n-1,1)=s;endfori=1:1000ifarrival>=nextA&&arrival>=nextBprobability=B(i,1);ifprobability>=0.6nextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elsenextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)endelseifarrival<nextA&&arrival>=nextBnextB=arrival+stevedore(i)sumstevedoreB=sumstevedoreB+stevedore(i)elseifarrival>=nextA&&arrival<nextBnextA=arrival+stevedore(i)sumstevedoreA=sumstevedoreA+stevedore(i)elseifnextA>nextB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論