用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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部