蒙特卡洛python求定积分的具体代码
时间: 2024-09-07 14:00:34 浏览: 56
蒙特卡洛法是一种基于随机抽样的数值积分方法,可以用来计算函数在某一区间内的定积分。在Python中,我们可以使用`numpy`库和简单的循环来实现这个过程。下面是一个简单的例子:
```python
import numpy as np
def monte_carlo_integration(f, a, b, n_samples):
"""
使用蒙特卡洛方法计算函数f在[a, b]区间的定积分
参数:
f (callable): 需要积分的函数,接受单个浮点数作为输入
a, b (float): 积分区间的下限和上限
n_samples (int): 抽样次数
返回:
float: 经过n_samples次抽样估计得到的积分值
"""
# 生成均匀分布在[0, 1]区间内的随机样本
samples = np.random.rand(n_samples)
# 将这些随机样本映射到原定积分区间
mapped_samples = a + (b - a) * samples
# 计算函数值,并取平均值作为近似积分结果
function_values = f(mapped_samples)
integral_estimate = np.mean(function_values)
return (b - a) * integral_estimate
# 示例:计算sin(x)在[0, π]上的积分
def integrand(x):
return np.sin(x)
integral_approximation = monte_carlo_integration(integrand, 0, np.pi, int(1e6)) # 100万次抽样
print(f"∫_0^π sin(x) dx ≈ {integral_approximation}")
阅读全文