python用蒙特卡洛法计算积分

题目:
在这里插入图片描述
思路:首先,自我学习蒙特卡洛法的原理;
用随机生成的点来计算比值,落到所求函数区域内的,就是我们需要的点。
python代码为:

import random 
import math 
N = 10000000 
C = 0 
for i in range(N): 
    x = random.uniform(2.0,3.0) 
    y = random.uniform(0.0,12.3) 
    
    if y <= x**2 + 4*x*math.sin(x): 
        C += 1 
I = C / N * 12.3
print(format(I,'.4f'))

(我假设最高点不超过12.3)
图像如下:
在这里插入图片描述
运行结果为(每次不一定一样):
在这里插入图片描述
结束

猜你喜欢

转载自blog.csdn.net/m0_51499597/article/details/120471542