2301_77400814 2023-05-30 09:33 采纳率: 50%
浏览 24

第一关:蒙特卡洛求定积分一

求问如何解得!can't做,希望有人可以给我指点指点,非常非常感谢

img

  • 写回答

1条回答 默认 最新

  • 阳光宅男xxb 2023-05-30 09:51
    关注
    
    def f(x):
        # 被积函数
        return x /25 + 1/5
    
    
    def Monte_Carlo_Methond(a, b):
        # (a,b)是积分区间
        sum = 0
        y1 = f(a)
        y2 = f(b)
        # y1,y2是函数的上下界
        for i in range(1000000):
            x = random.uniform(a, b)
            y = random.uniform(0, y2)
            if y <= f(x):
                sum += 1
        return (sum / 1000000) * (abs(b - a)) * (abs(max(y1, y2)))
    
    
    result = Monte_Carlo_Methond(0,1)
    print('%.5f'%result)
    

    运行结果:

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 5月30日