日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蒙特卡洛随机椭圆投点

發布時間:2024/3/24 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蒙特卡洛随机椭圆投点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天做蒙特卡洛計算二重積分的時候遇見的問題
題目
利用蒙特卡洛方法求積分
?De?x2+y2dxdy\iint_D{e^{-x^2+y^2}d_xd_y}?D?e?x2+y2dx?dy?其中D表示橢圓4x2+9y2=364x^2+9y^2=364x2+9y2=36的內部。

由于二重積分的積分區域是一個橢圓x29+y24=1\frac{x^2}{9}+\frac{y^2}{4}=19x2?+4y2?=1 所以是想在一個橢圓柱內隨機投點 算出積分表示的體積占整個橢圓柱的體積的百分比 再乘以橢圓柱的體積 就可以求出積分表示的體積
然后就利用蒙特卡洛再橢圓面內隨機投點 比較z軸的值即可
但是再隨機投點的時候 想到了兩種不同的投點方式
1.先投出一個矩形,再利用橢圓的方程限制一下范圍,最后得到一個橢圓
2.以極坐標的形式投點但最后兩種方式答案不一樣 所以我畫出了兩種方式投點得到的散點圖

%先投出矩形,再通過限制得到橢圓 subplot(1,2,1) for i =1:10000x=6*rand-3; %得到隨機數Xi~U(0,3) y=4*rand-2; %得到隨機數Xi~U(0,3) while ~(4*x^2+9*y^2<=36) x=6*rand-3; %得到隨機數Xi~U(0,3) y=4*rand-2; %得到隨機數Xi~U(0,3) end plot(x,y,'.') hold on; end %極坐標方式得到橢圓 subplot(1,2,2); m = 10000 for i = 1:mtheta = unifrnd(0,2*pi);r=rand;x= 3*cos(theta)*r;y= 2*sin(theta)*r; plot(x,y,'.'); hold on end


上圖中,右邊是極坐標形式投點,左邊是先投矩形再限制。
可以看出,利用極坐標形式投點得到的散點圖明顯不是均勻分布,在中心部分明顯比邊緣部分更密集。而右圖則呈現均勻的投點。我認為原因是利用極坐標形式在投點時,對于每一個半徑,在橢圓上的投點是均勻的,而且對不同的半徑也是均勻投點的,但是問題在于,不同的半徑橢圓的周長不一樣,而在每一圈上的投點個數是相等的,因此,在內部,點會更加密集,最終也就導致投點不均勻。
因此,利用極坐標投點看似均勻分布,實則內部更加密集。

總結

以上是生活随笔為你收集整理的蒙特卡洛随机椭圆投点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。