Matlab課程設(shè)計報告_第1頁
Matlab課程設(shè)計報告_第2頁
Matlab課程設(shè)計報告_第3頁
Matlab課程設(shè)計報告_第4頁
Matlab課程設(shè)計報告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Matlab課程設(shè)計報告課程名稱:MATLAB通信工程仿真設(shè)計題目:基于蒙特卡洛下的正三角形面積算法姓名:專業(yè)班級:所在學(xué)院:學(xué)校:時間:1 蒙特卡洛計算圖形面積的原理設(shè)想有一袋豆子,把豆子均勻地朝圖形上撒(假定豆子都在一個平面上,相互之間沒有重疊),然后數(shù)這個圖形之中有多少顆豆子,得出豆子數(shù)目就是圖形面積。當豆子越小,散得越多、越均勻的時候,結(jié)果就越精確。以數(shù)學(xué)語言來描述就是:對于求平面上一個邊長為1的正方形的內(nèi)部一個形狀不規(guī)則的“圖形”面積,Monte Carlo方法為:向該正方形均勻地隨機投擲M個點,如果其中有N個點落于“圖形”內(nèi),則該“圖形”的面積近似為N/M。投擲的點數(shù)越多,結(jié)果越準

2、確。2 數(shù)學(xué)模型如圖一所示,可以很容易得到一個邊長為1的正三角形的面積: 圖一 正三角形面積求解 圖二 用Monte Carlo方法求正三角形面積設(shè)有兩個相互獨立的隨機變量,服從上均勻分布。那么,由它們所確定的坐標點是均勻分布于半徑為的一個圓區(qū)域中,又該圓內(nèi)的正三角形的邊長為1,如圖二所示。顯然,坐標點落入正三角形中的概率等于該正三角形的面積與圓的面積的比,即: 因此,只要通過隨機試驗統(tǒng)計出落入正三角形中的頻度,即可計算出正三角形的近似面積來。當隨機試驗的次數(shù)充分大的時候,計算結(jié)果就趨近于理論真值。3 仿真試驗其實現(xiàn)的MATLAB程序代碼如下:clear all;s=0:0.01:2*pi;x

3、=sin(s);y=cos(s);n=3;r=sqrt(3)/3;theta = (0:1/n:1)*2*pi;x,y=pol2cart(theta,r); m=0;x1=2*r*rand(999,1)-r;y1=2*r*rand(999,1)-r;index=find(x1.2+y1.2>r.2);x1(index)=;y1(index)=;N=999;for n=1:Np1=x1(1:n);q1=y1(1:n);if (y1(n)<(-sqrt(3)/3).*x1(n)+1/3)&&(y1(n)>(sqrt(3)/3).*x1(n)-1/3)&&a

4、mp;-sqrt(3)/6<y1(n)<sqrt(3)/3m=m+1;endplot(p1,q1,'.',x,y);axis equal;axis(-1 1 -1 1);text(-0.5,-0.6,'試驗總次數(shù)n=',num2str(n);text(-0.5,-0.7,'落入正三角形的數(shù)目m=',num2str(m);text(-0.5,-0.8,'近似正三角形面積S=',num2str(m/n);set(gcf,'DoubleBuffer','on');drawnow;End 圖三

5、Monte Carlo方法隨機試驗計算正三角形面積的過程 程序執(zhí)行中,將動態(tài)顯示隨機落點情況和當前的統(tǒng)計計算結(jié)果。圖三為重復(fù)落點999次的計算結(jié)果。隨著試驗次數(shù)增加,計算結(jié)果將趨近于邊長為1的正三角形的面積0.4330127。動畫模式適合于原理演示。但是,如果要提高程序效率,就應(yīng)該取消仿真過程中的可視化顯示,并利用MATLAB的矩陣運算機制來改造程序。下面的程序?qū)㈦S機試驗次數(shù)提高到了1000萬次,計算得到的結(jié)果精度提高到了小數(shù)點后大約2位。程序中同時使用了矩陣運算機制和循環(huán)結(jié)構(gòu)來負責完成重復(fù)隨機試驗,其目的是為了兼顧計算速度和程序內(nèi)存占用量。矩陣運算是一種并行計算機制,計算速度快,但是矩陣越大

6、,內(nèi)存占用就越多;而循環(huán)結(jié)構(gòu)則可重復(fù)使用相同的內(nèi)存區(qū)域,盡管速度較慢。這是MATLAB語言固有的特點,在編程中因當就具體問題作出權(quán)衡。ticn=10000;r=sqrt(3)/3for k=1:1000 x1=2*r*rand(999,1)-r;y1=2*r*rand(999,1)-r;index=find(x1.2+y1.2>r.2);x1(index)=;y1(index)=; m(k)=sum(y1<(-sqrt(3)/3).*x1+1/3)&(y1>(sqrt(3)/3).*x1-1/3)&(-sqrt(3)/6<x1<sqrt(3)/3);e

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論