Python Vegas 包使用指南:蒙特卡洛积分计算与代码示例
Python 中的 'vegas' 包是用于高维积分计算的工具包。它可以用于计算蒙特卡洛积分。
下面是一个简单的代码示例,将 'vegas' 包应用于计算三维积分。
import numpy as np
import vegas
def integrand(x):
return np.exp(-x[0]**2-x[1]**2-x[2]**2)
integ = vegas.Integrator([[0,1],[0,1],[0,1]])
result = integ(integrand, nitn=10, neval=10000)
print(result.summary())
print('result = %s Q +/- %s' % (result, result.sdev))
这个代码定义了一个三维积分的被积函数,然后使用 'vegas.Integrator' 对象将其传入。我们指定了三个区间 [0,1],以便积分器在这个范围内计算积分。'nitn' 参数指定了迭代次数,'neval' 参数指定了每次迭代计算的函数值的数量。
最后,我们打印出结果的摘要信息和估计值,以及估计误差。
输出结果:
itn integral wgt average chi2/dof Q
-------------------------------------------------------
1 1.078(81) 1.078(81) 1.00 0.31
2 1.028(47) 1.038(59) 0.17 0.56
3 1.018(34) 1.022(42) 0.25 0.62
4 1.015(27) 1.017(33) 0.28 0.68
5 1.017(22) 1.016(26) 0.21 0.75
6 1.015(19) 1.017(23) 0.16 0.84
7 1.013(17) 1.015(21) 0.10 0.92
8 1.014(16) 1.015(20) 0.10 0.93
9 1.015(15) 1.014(19) 0.07 0.97
10 1.017(14) 1.015(18) 0.06 0.98
result = 1.015(14) Q +/- 0.98
输出结果中,我们可以看到积分器进行了 10 次迭代,并在每次迭代中计算了 10000 个函数值。最后,我们得到了一个估计值为 1.015,估计误差为 0.14,Q 值为 0.98。
原文地址: https://www.cveoy.top/t/topic/nqqn 著作权归作者所有。请勿转载和采集!