本文主要是介绍用Monte Carlo方法计算定积分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
投点法
### 使用蒙特卡洛投点法计算定积分
import random
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
count=0
p=0
for i in range(10000):count+=1point_x=random.random()point_y=random.random()value=point_x/25+1/5if point_y<=value:p+=1
print('p is :',p/count)
p is : 0.2204
期望法(平均值法)
### 使用平均法求定积分
import numpy as np
point_list=np.linspace(0,1,10001)
value=0
for i in range(10000):x0=point_list[i]x1=point_list[i+1]v=0.5*(x1-x0)*(x0/25+0.2+x1/25+0.2)value+=v
print('p is :',value)
p is : 0.2200000000000001
reference:
https://zhuanlan.zhihu.com/p/67670033
这篇关于用Monte Carlo方法计算定积分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!