蒙特卡洛求定积分的python代码
时间: 2024-09-07 16:00:33 浏览: 67
python编程通过蒙特卡洛法计算定积分详解
5星 · 资源好评率100%
蒙特卡洛求定积分是一种基于随机抽样的数值积分方法。在Python中,我们可以利用`numpy`库来实现。下面是一个简单的例子,计算二维空间下函数$f(x, y) = e^{-x^2 - y^2}$在单位圆内的面积:
```python
import numpy as np
def function(x, y):
return np.exp(-x**2 - y**2)
def monte_carlo_integration(function, area, n_samples):
# 随机生成(n_samples, 2)形状的点在单位正方形内
points = np.random.uniform(0, 1, (n_samples, 2))
# 投影到圆上并应用函数
inside_circle = np.sqrt(points[:, 0]**2 + points[:, 1]**2) <= 1
function_values = function(points[inside_circle])
# 计算平均值乘以区域面积得到近似积分值
estimated_integral = function_values.sum() * area / n_samples
return estimated_integral
# 使用Monte Carlo方法估计π
estimated_pi = monte_carlo_integration(function, 1, 1000000)
print(f"Estimation of π using Monte Carlo integration: {estimated_pi}")
阅读全文