在 Python Monte Carlo 方法中使用 Gamma 函数估计 pi
Estimate pi with Gamma function in Python Monte Carlo method
我正在尝试使用 Monte Carlo 方法在 python 中编写代码来估计 pi(其中 pi = gamma(1/2)**2)。我应该写一段代码说 sqrt(pi) 是包含函数 gamma(x=1/2) 的正方形的面积乘以最终在函数内部生成的随机点总数,除以点总数产生。
只是为了说明我在说什么样的代码,这里我没有使用 Gamma 函数(仍然是 Monte Carlo 方法)。这里 Pi 的计算方法是 2x2 平方的面积乘以单元 1 圆中结束的点数除以生成的点总数。一个点在单位圆内的准则是毕达哥拉斯(np.sqrt(xx+yy)<=1)。
inside =0
n=100000
for i in range(0,n):
x=np.random.rand()
y=np.random.rand()
if np.sqrt(x*x+y*y)<=1:
inside = inside+1
pi = 4.0*inside/n
print pi
我不确定您将如何确定封闭 Gamma(1/2) 的区域以及点在函数内结束的标准是什么。
有人有想法吗?
谢谢!
从你的问题来看,我觉得你正在服用PHY324。 ;)
我对同一件事感到困惑。我设置了代码,我不是 python 专家,但也许这可能会有所帮助。
import random
from math import *
number_of_points = 10000
points_in = []
points_outside = []
for i in range(number_of_points):
rand_number1 = random.random()
rand_number2 = random.random()
if rand_number2 < (exp(-1*rand_number1))*(rand_number1**(-0.5)):
points_in.append(1)
else:
points_outside.append(1)
我正在尝试使用 Monte Carlo 方法在 python 中编写代码来估计 pi(其中 pi = gamma(1/2)**2)。我应该写一段代码说 sqrt(pi) 是包含函数 gamma(x=1/2) 的正方形的面积乘以最终在函数内部生成的随机点总数,除以点总数产生。
只是为了说明我在说什么样的代码,这里我没有使用 Gamma 函数(仍然是 Monte Carlo 方法)。这里 Pi 的计算方法是 2x2 平方的面积乘以单元 1 圆中结束的点数除以生成的点总数。一个点在单位圆内的准则是毕达哥拉斯(np.sqrt(xx+yy)<=1)。
inside =0
n=100000
for i in range(0,n):
x=np.random.rand()
y=np.random.rand()
if np.sqrt(x*x+y*y)<=1:
inside = inside+1
pi = 4.0*inside/n
print pi
我不确定您将如何确定封闭 Gamma(1/2) 的区域以及点在函数内结束的标准是什么。
有人有想法吗?
谢谢!
从你的问题来看,我觉得你正在服用PHY324。 ;) 我对同一件事感到困惑。我设置了代码,我不是 python 专家,但也许这可能会有所帮助。
import random
from math import *
number_of_points = 10000
points_in = []
points_outside = []
for i in range(number_of_points):
rand_number1 = random.random()
rand_number2 = random.random()
if rand_number2 < (exp(-1*rand_number1))*(rand_number1**(-0.5)):
points_in.append(1)
else:
points_outside.append(1)