問題:乙個三維區域,它由不等式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時函式值的期望值。基於蒙特卡洛方法的數值積分正好是這種方法的逆推。如果我們需要計算某個定積分的值,只要將其變換為某一隨機變數的期望的形式,再借用蒙特卡洛方法即可。例如,如果需...