
1、蒙特卡洛计算定积分【投点法】:
以求解第一小题(一重积分)为例,如下图所示,蓝色曲线为被积函数f(x)在[0, π/2]区间上的图像,若要求其定积分,其实就是求曲线下方的面积。这时我们可以用一个比较容易算得面积的矩型罩在函数的积分区间上(假设其面积为S)。然后随机地向这个矩形框里面投点,统计出蓝色曲线下方的点的数量占所有点(红框内)数量的比例为R,那么就可以据此估算出被积函数从0到π/2的定积分为S×R。
2、计算第一小题【一重积分】:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Hren
#-------------------------------------------------#
# 一重积分计算结果约为1
# 一次实验:样本为100000时,蒙特卡洛计算结果约为0.99908(ratio=0.40264)
# 实验重复10次, 均方差约为0.0000134
#-------------------------------------------------#
import numpy as np
import math
import matplotlib.pyplot as plt
def first():
num = 1000
x = np.arange(0, math.pi/2, 1/num * math.pi/2)
y = x*np.sin(x)
plt.plot(x, y)
plt.plot(x, [max(y)]*num, 'r')
plt.plot([max(x)]*num, y, 'r')
plt.plot(x, [0]*num, 'r')
plt.plot([0]*num,

本文通过投点法介绍了如何使用Python进行蒙特卡洛计算定积分,包括一重积分和二重积分的求解过程。通过在积分区域上随机投点,统计落在函数图像下方的点比例来估算积分值。
计算定积分【Python】&spm=1001.2101.3001.5002&articleId=102494754&d=1&t=3&u=e5f91beaaf5e4cf2880c071f959222b2)
2837

被折叠的 条评论
为什么被折叠?



