numpy 定积分案例

定积分: 直观的说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为坐标平面上由曲线、直线以及轴围城的去边梯形的面积值(一个确定的实数值)

案例

求二次函数y = 2x^2 + 3x + 4在[-5,5]区间内的积分

import numpy as np
import matplotlib.pyplot as mp	#画图用
import matplotlib.patches as mc	#图像打补丁用
import scipy.integrate as si	#numpy求定积分用

#声明曲线函数
def f(x):
	return 2 * x ** 2 + 3 * 4 + 4

#1. 在区间[-5,5]间拆出1000个满足f(x)的点,画出该函数曲线
a, b = -5, 5
x1 = np.linspace(a, b, 1
### 使用蒙特卡罗方法计算定积分 为了展示如何使用蒙特卡罗方法计算定积分,在Python中可以通过生成大量随机样本并统计落在给定区域内的比例来进行估算。下面是一个具体的例子,该实例展示了如何估计函数 \( f(x) \) 在区间 [a, b] 上的定积分。 #### Python代码实现: ```python import numpy as np def monte_carlo_integration(func, a, b, num_samples=10000): """ 使用蒙特卡罗方法近似计算定积分 参数: func (callable): 被积函数. a (float): 积分区间的下限. b (float): 积分区间的上限. num_samples (int): 随机抽样的数量,默认为10000. 返回: float: 定积分的数值解. """ # 生成均匀分布在[a,b]之间的随机数 samples = np.random.uniform(a, b, num_samples) # 计算每个样本对应的函数值之和 sum_of_values = np.sum(func(samples)) # 根据公式得到最终结果 integral_value = (b - a) * sum_of_values / num_samples return integral_value # 测试案例计算sin(x)在[0, pi/2]上的定积分 if __name__ == "__main__": from math import sin, pi result = monte_carlo_integration(lambda x: sin(x), 0, pi / 2) print(f"Monte Carlo Integration Result: {result}") ``` 这段程序定义了一个名为`monte_carlo_integration` 的辅助函数用于执行蒙特卡罗积分操作[^1]。此函数接受四个参数——被积的目标函数 `func`, 积分区间的上下界 `a` 和 `b` ,以及可选参数 `num_samples` 表示要使用的随机样本数目。最后打印出了正弦曲线在指定范围内的面积作为测试用例的结果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值