蒙特卡洛方法

2021-09-26 19:09:45 字數 886 閱讀 7651

這個演算法是用來求解積分和一些運算的,主要就是通過概率模擬的方法,比如對於π或者積分

import random

def calpai():

n = 1000000

r = 1.0

a, b = (0.0, 0.0)

x_neg, x_pos = a - r, a + r

y_neg, y_pos = b - r, b + r

count = 0

for i in range(0, n):

x = random.uniform(x_neg, x_pos)

y = random.uniform(y_neg, y_pos)

if x*x + y*y <= 1.0:

count += 1

print (count / float(n)) * 4

這是求π。

def integral():

n = 1000000

x_min, x_max = 0.0, 1.0

y_min, y_max = 0.0, 1.0

count = 0

for i in range(0, n):

x = random.uniform(x_min, x_max)

y = random.uniform(y_min, y_max)

# x*x > y,表示該點位於曲線的下面。所求的積分值即為曲線下方的面積與正方形面積的比。

if x*x > y:

count += 1

integral_value = count / float(n)

print integral_value

蒙特卡洛方法

蒙特卡洛方法 monte carlo method,也有翻譯成 蒙特卡羅方法 是以概率和統計的理論 方法為基礎的一種數值計算方法,將所求解的問題同一定的概率模型相聯絡,用計算機實現統計模擬或抽樣,以獲得問題的近似解,故又稱隨機抽樣法或統計試驗法。上述就是蒙特卡洛方法的基本概念,比較抽象,下面結合實際...

蒙特卡洛方法 蒙特卡洛方法概率密度函式

簡介 為了更加清楚的讓同學們深刻的理解pbr裡面那些公式背後的東西,同學們務必先來擼一遍光線追蹤,畢竟我們這裡舉例的這些蒙特卡洛方法都是光線追蹤第三卷裡 ray tracing the rest of your life 的舉例,只不過可能對於有的同學來說,閱讀起來比較難,所以我們來更加詳盡的翻譯或...

蒙特卡洛理解

蒙特卡羅演算法並不是一種演算法的名稱,而是是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在 放棄隨機取樣,而採用類似全取樣這樣的確定性方法 獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。從特性特性來說,我...