SciPy中如何实现蒙特卡洛模拟

   2024-10-13 9980
核心提示:在SciPy中,可以使用numpy.random模块来实现蒙特卡洛模拟。下面是一个简单的示例,演示如何使用蒙特卡洛模拟来计算圆周率的近似

在SciPy中,可以使用numpy.random模块来实现蒙特卡洛模拟。下面是一个简单的示例,演示如何使用蒙特卡洛模拟来计算圆周率的近似值:

import numpy as np# 设置随机种子np.random.seed(0)# 模拟的次数n = 1000000# 在单位正方形内生成随机点points = np.random.rand(n, 2)# 计算点到原点的距离distances = np.linalg.norm(points, axis=1)# 统计落在单位圆内的点的数量inside_circle = np.sum(distances < 1)# 计算圆的面积area_square = 1area_circle = inside_circle / n * area_square# 估计圆周率pi_estimate = 4 * area_circleprint("估计的圆周率为:", pi_estimate)

上面的代码首先生成了1000000个在单位正方形内的随机点,然后计算每个点到原点的距离,统计落在单位圆内的点的数量,进而估计圆的面积和圆周率的近似值。

通过运行上面的代码,您可以得到一个估计的圆周率值。您也可以调整模拟的次数n来获得更精确的估计值。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号