蒙特卡洛计算圆周率并绘图
时间: 2024-05-29 10:14:27 浏览: 64
蒙特卡洛方法是一种基于概率统计的数值计算方法,可以用来估算圆周率。下面是使用 Python 实现的代码:
```python
import random
import matplotlib.pyplot as plt
n = 1000000
count = 0
x_list = []
y_list = []
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x**2 + y**2 <= 1:
count += 1
x_list.append(x)
y_list.append(y)
pi = 4 * count / n
print('圆周率的估计值为:', pi)
plt.figure(figsize=(6, 6))
plt.scatter(x_list, y_list, s=1)
plt.xlim((-1, 1))
plt.ylim((-1, 1))
plt.title('Estimating Pi with Monte Carlo')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
```
代码中的 `n` 控制了随机点的数量,越大精度越高,但计算时间也会增加。 `count` 统计落在圆内的点的数量,通过 `4 * count / n` 计算圆周率的估计值。最后使用 `matplotlib` 绘制随机点分布的散点图,可以看到随着点数的增加,点的分布越来越接近于圆的形状。
运行代码得到的结果大概长这样:
![monte_carlo_pi.png](https://img-blog.csdnimg.cn/20210808132933789.png)
阅读全文