找回密码
 加入慢享
猜你喜欢
旅行常客论坛

模型 模拟模型08 蒙特卡洛模拟-定积分计算

[复制链接]
发表于 2022-6-21 07:00:00 | 显示全部楼层 |阅读模式

1  定积分的计算

定积分的计算是Monte Carlo方法引入计算数学的开端,在实际问题中,许多需要计算多重积分的复杂问题,用Monte Carlo方法一般都能够很有效地予以解决,尽管Monte Carlo方法计算结果的精度不很高,但它能很快提供出一个低精度的模拟结果也是很有价值的。而且,在多重积分中,由于Monte Carlo方法的计算误差与积分重数无关,因此它比常用的均匀网格求积公式要优越。


1.1  问题1

求二重积分  

1.2  求解

根据积分的几何意义, 它是以  为曲面顶, 以   为底的柱体    的体积。用下列简单思路求  的近似值,   被包含在长方体   的内部, 长方体   的体积为 4 。


而  是   所围成的区域。

若在    内产生均匀分布的  个点, 有   个点落 在  的内部。由频率近似于概率, 得到在   内任取一点, 落在   内的概率    所以   , 计算得   。


代码

from numpy.random import uniformimport numpy as npN=10000000; x=uniform(-1,1,size=N)y=uniform(-1,1,N); z=uniform(0,1,N)n=np.sum((x**2+y**2<=1) & (z>=0) & (z<=np.sqrt(1-x**2)))I=n/N*4; print("I的近似值为:",I)

I的近似值为:2.6670568


来源

  • 司守奎,孙玺菁. Python数学实验与建模(2020). 科学出版社

回复

使用道具 举报

快速回复 返回顶部 返回列表