蒙特卡洛積分的乙個例子

2021-08-07 06:01:19 字數 894 閱讀 3843

問題:乙個三維區域,它由不等式xyz≤1和-5≤x≤5,-5≤y≤5,-5≤z≤5確定.γ(x,y,z)是給定密度.假設密度γ(x,y,z)=e0.5z.求出該物體的體積和質量.

解析這樣乙個積分將很困難或者是不可能的,但是用蒙特卡洛積分進行近似是很容易的.

n = input('enter number of sample points: ');

gamma = inline('exp(0.5 * z)');

volumeofbox = 10 * 10 * 10;

vol = 0;

mass = 0;

volsq = 0;

masssq = 0;

fori = 1: n

x = -5 + 10 * rand;

y = -5 + 10 * rand;

z = -5 + 10 * rand;

if x * y * z <= 1

vol = vol + 1;

mass = mass + gamma(z);

volsq = volsq + 1;

masssq = masssq + gamma(z) ^ 2;

endendvolumeofobject = (vol / n) * volumeofbox

volvar = (1 / n) * ((volsq / n) - (vol / n) ^ 2)

volstd = sqrt(volvar)

massofobject = (mass / n) * volumeofbox

massvar = (1 / n) * ((masssq / n) - (mass / n) ^ 2)

massstd = sqrt(massvar)

python蒙特卡洛求定積分 蒙特卡洛定積分(一)

一 蒙特卡洛模擬法分類 蒙特卡洛法模擬法從其應用方面來劃分,可以分成以下三種形式 1 直接蒙特卡洛模擬。採用隨機數學咧來模擬複雜隨機過程的效應。2 蒙特卡洛定積分 間接蒙特卡洛模擬 利用隨機數序列計算積分的方法。積分維數越高,該方法的積分效率就越高。3 metropolis蒙特卡洛模擬。以 馬爾可夫...

蒙特卡洛方法 玩具例子 2 定積分

蒙特卡洛方法可以計算任意乙個積分的值。下面以求 1 0x2d x 的定積分,定義域為 0,1 x2 的值域為 0,1 在座標區域0 x 1 0 y 1 內撒點,用縱座標j小於等於i2 的所有點 i j 佔總點數的比例近似估計定積分的值。coding utf8 import numpy as np i...

基於蒙特卡洛方法求解數值積分的乙個小例子

對隨機變數x的概率密度函式f x 做積分運算,我們就可以通過 e g x int dx 這樣的積分形式來表示指定函式g在引數x時函式值的期望值。基於蒙特卡洛方法的數值積分正好是這種方法的逆推。如果我們需要計算某個定積分的值,只要將其變換為某一隨機變數的期望的形式,再借用蒙特卡洛方法即可。例如,如果需...