使用蒙特卡罗技术进行数值积分的简单工具。
mcint的Python项目详细描述
一个可以用来计算多维积分的蒙特卡罗积分器。结果是数值逼近,即BR/>依赖于使用随机数产生。BR/>实例1<BR/>(X** 2)
BR/> DEF样本():描述Monte-Carlo样本是如何取而代之的:
产量。随机():BR/> BR/>结果,误差=McCIT.积分(整合式,SAMPPLER(),测度=1,n=100)
< BR/>打印“x** 2在0和1之间的积分近似为”,result
integrate()函数的第二个参数应该是iterable
表达式,在本例中,它是一个生成器。我们可以使用以下方法消除这个采样器:
result,error=mcint.integrate(integrand,iter(random.random,-1),measure=1.0,n=100)
这将从random.random()函数创建一个iterable对象,该函数将连续调用random.random(),直到返回-1(它永远不会返回介于0.0和1.0之间的值)。
dy`::
import random
import math
def integrand(x):
返回(x[0]**2+x[1]**2)
def sampler():
为真时:
y=random.random()
x=random.random()
如果x**2+y**2<;=1:
屈服(x,y)
result,error=mcint.integrate(integrand,sampler(),measure=math.pi/4)
BR/> DEF样本():描述Monte-Carlo样本是如何取而代之的:
产量。随机():BR/> BR/>结果,误差=McCIT.积分(整合式,SAMPPLER(),测度=1,n=100)
< BR/>打印“x** 2在0和1之间的积分近似为”,result
integrate()函数的第二个参数应该是iterable
表达式,在本例中,它是一个生成器。我们可以使用以下方法消除这个采样器:
result,error=mcint.integrate(integrand,iter(random.random,-1),measure=1.0,n=100)
这将从random.random()函数创建一个iterable对象,该函数将连续调用random.random(),直到返回-1(它永远不会返回介于0.0和1.0之间的值)。
dy`::
import math
def integrand(x):
返回(x[0]**2+x[1]**2)
def sampler():
为真时:
y=random.random()
x=random.random()
如果x**2+y**2<;=1:
屈服(x,y)
result,error=mcint.integrate(integrand,sampler(),measure=math.pi/4)