1.蒙特卡洛方法
蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,是通过使用随机数(或更常见的伪随机数)来解决很多计算问题的方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。
蒙特卡罗算法的基本步骤
蒙特卡罗算法一般分为三个步骤,包括构造随机的概率的过程,从构造随机概率分布中抽样,求解估计量。
2.案例引入:π的计算
正方形内部有一个相切的圆,假设圆形的半径为r,那么正方形的边长则为2r,因此,圆形和正方形的面积之比为:
在正方形内部,随机产生一系列的点,计算他们与中心点的距离,从而判断是否落在圆的内部,从而:
3.计算
蒙特卡洛算法求解积分问题
对被积分函数的变量在某一区间内进行随机均匀抽样,然后对抽样点的函数值求平均,从而可以得到函数积分的近似值。此种方法的理论基础是概率论的中心极限定理,其不随积分维数的改变而改变。
实例:
思路分析:
(1)被积分函数表示的几何意义即函数在积分区域上的面积,带入x=0&x=1,可知函数的大致范围图像,根据被积分函数的图像可知:其图像面积小于1(可以看作在被积函数在面积为1的正方形内)
(2)构造随机的概率,设有足够多的随机点,即随机点将落在面积为1的正方形里(总点数)和被积函数的图像里(有随机性)
(3)求出估计量
代码
import numpy as np
import random
m = 100000
n = 0
#定义函数
def func(x):
return np.log(1+x)/(1+x**2)
for i in range(m): #产生随机点
x = random.random()
y = random.random()
if func(x)>y:#保证在积分区域内
n = n+1
ans = n/m #比值即为面积
print(ans)
代码运行结果