蒙特卡洛积分例题
时间: 2023-07-05 09:05:59 浏览: 100
蒙特卡洛积分是一种通过随机采样来求解积分的方法。下面以求解圆的面积为例进行说明:
假设我们要求解单位圆的面积,即 $x^2 + y^2 \leq 1$,可以使用蒙特卡洛积分的方法,即随机采样一些点,然后计算出落在圆内的点的比例,再将其乘以正方形的面积 $4$,即可得到圆的面积。
具体实现方法如下:
1. 随机生成 $n$ 个坐标 $(x_i, y_i)$,其中 $x_i$ 和 $y_i$ 均服从 $[0,1]$ 上的均匀分布。
2. 统计有多少个点落在圆内,即满足 $x_i^2 + y_i^2 \leq 1$ 的点的个数 $m$。
3. 计算落在圆内的点的比例 $m/n$,并乘以正方形的面积 $4$,即可得到圆的面积的估计值。
下面是 Python 代码实现:
```python
import random
def monte_carlo_area(n):
m = 0
for i in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
if x**2 + y**2 <= 1:
m += 1
return 4 * m / n
print(monte_carlo_area(1000000)) # 输出圆的面积的估计值
```
在这个例子中,我们取 $n=1000000$,即随机生成 $1000000$ 个点进行估计,得到的结果大约在 $3.141$ 左右,非常接近圆周率 $\pi$,说明蒙特卡洛积分是一种有效的数值积分方法。
阅读全文