蒙特卡洛方法模擬小例子_第1頁
蒙特卡洛方法模擬小例子_第2頁
蒙特卡洛方法模擬小例子_第3頁
蒙特卡洛方法模擬小例子_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、例在我方某前沿防守地域,敵人以一個炮排(含兩門火炮)為單位對我方進行干擾和破壞.為躲避我方打擊,敵方對其陣地進行了偽裝并經(jīng)常變換射擊地點.經(jīng)過長期觀察發(fā)現(xiàn),我方指揮所對敵方目標的指示有50%是準確的,而我方火力單位,在指示正確時,有1/3的射擊效果能毀傷敵人一門火炮,有1/6的射擊效果能全部毀傷敵人火炮.現(xiàn)在希望能用某種方式把我方將要對敵人實施的20次打擊結果顯現(xiàn)出來,確定有效射擊的比率及毀傷敵方火炮的平均值。使用蒙特卡洛方法模擬50次打擊結果:functionoutlout2out3out4=Msc(N)%N開炮次數(shù)%out1射中概率%out2平均每次擊中次數(shù)%out3擊中敵人一門火炮的射擊

2、總數(shù)%out4擊中敵人2門火炮的射擊總數(shù)k1=0;k2=0;k3=0;fori=1:Nx0=randperm(2)-1;y0=x0;ify0=1fprintf('第次:指示正確|',i);x1=randperm(6);y1=x1(1);ify1=1|y1=2|y1=3fprintf('第d次:擊中0炮|',i);k1=k1+1;elseify1=4|y1=5fprintf('第次:擊中1炮|',i);k2=k2+1;elsefprintf('第d次:擊中2炮|',i);k3=k3+1;endelsefprintf(,第d次:指示錯

3、誤,擊中0炮|',i);k1+1;endfprintf('n');endout1=(k2+k3)/N;out2=(0*k1+k2+2*k3)/20;out3=k2/N;out4=k3/N;運行:1.out1out2out3out4=Msc(50)結果:1 .第1次:指示正確|第1次:擊中2炮|2 .第2次:指示錯誤,擊中0炮|3 .第3次:指示錯誤,擊中0炮|4 .第4次:指示正確|第4次:擊中0炮|5 .第5次:指示錯誤,擊中0炮|6 .第6次:指示正確|第6次:擊中1炮|7 .第7次:指示正確|第7次:擊中0炮|8 .第8次:指示錯誤,擊中0炮|9 .第9次:指示正

4、確|第9次:擊中2炮|10 .第10次:指示正確|第10次:擊中1炮|11 .第11次:指示正確|第11次:擊中1炮|12 .第12次:指示正確|第12次:擊中2炮|13 .第13次:指示錯誤,擊中0炮|14 .第14次:指示正確|第14次:擊中1炮|15 .第15次:指示錯誤,擊中0炮|16 .第16次:指示錯誤,擊中0炮|17 .第17次:指示正確|第17次:擊中0炮|18 .第18次:指示錯誤,擊中0炮|19 .第19次:指示正確|第19次:擊中1炮|20 .第20次:指示錯誤,擊中0炮|21 .第21次:指示正確|第21次:擊中0炮|22 .第22次:指示正確|第22次:擊中1炮|23

5、 .第23次:指示正確|第23次:擊中0炮|24 .第24次:指示錯誤,擊中0炮|25 .第25次:指示正確|第25次:擊中1炮|26 .第26次:指示錯誤,擊中0炮|27 .第27次:指示正確|第27次:擊中1炮|28 .第28次:指示正確|第28次:擊中0炮|29 .第29次:指示正確|第29次:擊中0炮|30 .第30次:指示正確|第30次:擊中0炮|31 .第31次:指示錯誤,擊中0炮|32 .第32次:指示錯誤,擊中0炮|33 .第33次:指示正確|第33次:擊中0炮|34 .第34次:指示錯誤,擊中0炮|35 .第35次:指示正確|第35次:擊中0炮|36 .第36次:指示正確|第

6、36次:擊中0炮|37 .第37次:指示錯誤,擊中0炮|38 .第38次:指示正確|第38次:擊中0炮|39 .第39次:指示錯誤,擊中0炮|40 .第40次:指示正確|第40次:擊中0炮|41 .第41次:指示正確|第41次:擊中1炮|42 .第42次:指示正確|第42次:擊中0炮|43 .第43次:指示錯誤,擊中0炮|44 .第44次:指示正確|第44次:擊中1炮|45 .第45次:指示正確|第45次:擊中0炮|46 .第46次:指示錯誤,擊中0炮|47 .第47次:指示錯誤,擊中0炮|48 .第48次:指示錯誤,擊中0炮|49 .第49次:指示正確|第49次:擊中0炮|50 .第50次:

7、指示正確|第50次:擊中1炮|51 .52 .out1=53 .54 .0.280055 .56 .57 .out2=58 .59 .0.850060 .61 .62 .out3=63 .64 .0.220065 .66 .67 .out4=68 .69 .0.0600一位朋友說要貼出MonteCarlo計算積分的源程序,我就隨便做一個簡單的吧,復雜的程序完全可以從這個來演化,我想MonteCarlo積分的最大優(yōu)勢就在于高維積分,以及不規(guī)則區(qū)域,可以節(jié)約很多計算機時。下面只是演示一個2重積分,可以擴展到20維的只要添加相應的loop項。被積函數(shù):exp(sqrt(xA2+yA2);x上下限:x

8、A2<sin(y)y上下限:yA2<cos(x)1. %MONTECARLOINT2. %bycaoer3. clearall4. N=100000;5.6. x=2*rand(N,1)-1;7. y=rand(N,1);8. f=0;9. fsq=0;10. n=0;11. fori=1:N12. ifx(i)A2<sin(y(i)&y(i)A2<cos(x(i)13. n=n+1;14. f=f+exp(sqrt(x(i)A2+y(i)A2);15. x_plot(n)=x(i);16. y_plot(n)=y(i);17. end18. end19. f=f/N;20. p=n/N;21. a=2*1;22. I1=f*a;%23. I2=a*p;%interestingarea24. I=I1/I225.26. plot(x_plot,y_plot,'o')復制代碼蒙特卡洛法用于求積分時,與積分重數(shù)無關,這點非常重要。雖然四維以下的積分用蒙特卡洛法效率可能不如傳統(tǒng)的一些數(shù)值積分方法,但是維數(shù)高的時候,蒙特卡洛法比傳統(tǒng)方法要有效的多,而且實現(xiàn)起來也非常容易??梢哉f,計算高維積分是蒙特卡洛方法最成功和典型的應用。基本的蒙特卡洛法具有計算不

溫馨提示

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

評論

0/150

提交評論