MATLAB 蒙特卡羅

2021-10-09 09:46:16 字數 872 閱讀 6355

p=rand(100000,2);%兩列數,第一列為x,第二列為y,相當於100000個點

%定義x y 的範圍

x=2*p(:,1)-1;%x範圍為-1到1

y=2*p(:,2);%y範圍為0到2

%找出在函式範圍的數

% k = find(x) 返回乙個包含陣列 x 中每個非零元素的線性索引的向量。

% 如果 x 為向量,則 find 返回方向與 x 相同的向量。

% 如果 x 為多維陣列,則 find 返回由結果的線性索引組成的列向量。

% 如果 x 包含非零元素或為空,則 find 返回乙個空陣列。

ii=find(y<=2-x.^2&y.^3>=x.^2);//找出100000個點中,在兩曲線之間的點,返回符合條件的點的序列

%計算符合條件的點的個數

m=length(ii);

%計算面積

s=4*m/100000;%正方形面積為4,m/100000為符合條件的點的個數佔總點的個數的比例,兩者乘積為面積

plot(x(ii),y(ii),'g.');%通過索引找到符合條件的點,並繪製。

程式來自:matlab-蒙特卡羅方法

n=100000;

x=rand(n,1);

y=rand(n,1);

count=0;

for i=1:n

if (x(i)^2+y(i)^2<=1)

count=count+1;

endendpi=4*count/n

matlab蒙特卡羅方法求體積 蒙特卡羅演算法

原創 袁恆 本文介紹了蒙特卡羅演算法,蒙特卡羅演算法是思想和技巧的藝術品,本文沒有演算法公式,共2000餘字,是領略演算法魅力的佳作。在介紹蒙特卡洛演算法之前,請大家先思考乙個問題 我們從小學就知道圓的面積 一 蒙特卡羅演算法簡介蒙特 卡羅方法 monte carlo method 也稱統計模擬方法...

蒙特卡羅演算法

蒙特卡羅演算法並不是一種演算法的名稱,而是對一類隨機演算法的特性的概括。說 蒙特卡羅演算法打敗武宮正樹 這個說法就好比說 我被乙隻脊椎動物咬了 是比較火星的。實際上是zen的演算法具有蒙特卡羅特性,或者說它的演算法屬於一種蒙特卡羅演算法。那麼 蒙特卡羅 是一種什麼特性呢?我們知道,既然是隨機演算法,...

蒙特卡羅模擬

最優化問題的計算方法是很重要的,因為很多最優化的問題難於解析地解出來,對於動態模擬,通常人們能夠解析地確定定常態的行為,但是關於瞬態行為的研究則需要計算機模擬,概率模型更加複雜,不具有時間動態特性的模擬有時能夠解析地求解出來,且對於簡單的隨機模型,定常態的結果通常是可用的,但是對於許多情況,概率模型...