name: 数值积分 description: “数值方法中数值积分的问题解决策略” allowed-tools: [Bash, Read]
数值积分
何时使用
在数值方法中处理数值积分问题时使用此技能。
决策树
-
识别积分类型
- 有限区间上的定积分?
- 反常积分(无限边界或奇点)?
- 多维积分?
-
选择求积方法
- 光滑函数,有限区间:高斯积分
- 振荡被积函数:专门方法(Filon, Levin)
- 端点奇点:自适应方法
scipy.integrate.quad(f, a, b)用于一般一维积分
-
自适应积分
- 让算法在需要时细分
- 指定误差容限 (rtol, atol)
scipy.integrate.quad(f, a, b, epsabs=1e-8, epsrel=1e-8)
-
多维积分
scipy.integrate.dblquad用于二维scipy.integrate.tplquad用于三维- Monte Carlo 用于更高维度
-
验证准确性
- 与已知解析解比较
- 通过细化容差检查收敛性
sympy_compute.py integrate "f(x)" --var x --from a --to b
工具命令
Scipy_Quad
uv run python -c "from scipy.integrate import quad; import numpy as np; result, err = quad(lambda x: np.sin(x), 0, np.pi); print('Integral:', result, 'Error:', err)"
Scipy_Dblquad
uv run python -c "from scipy.integrate import dblquad; result, err = dblquad(lambda y, x: x*y, 0, 1, 0, 1); print('Integral:', result)"
Sympy_Integrate
uv run python -m runtime.harness scripts/sympy_compute.py integrate "sin(x)" --var x --from 0 --to "pi"
关键技术
来自索引教科书:
- [数值分析导论… (Z-Library)] 尽管数值积分是数值分析中最古老的主题之一,有大量文献,但新论文仍以相当高的速度出现。许多这些结果为特殊类别的问题提供了方法,例如振荡积分,其他则是对计算机变化的响应,例如向量流水线架构的使用。数值积分的最佳综述是Davis和Rabinowitz (1984) 的大而详细的工作。
- [数值分析导论… (Z-Library)] 自动计算有界或无界平面区域上的反常积分,Computing 27, 253-284。 多重积分的近似计算。 Prentice-Hall, Englewood Cliffs, N。
- [数值分析 (Burden R.L., Fair… (Z-Library)] 复合数值积分 4. 方法与软件综述 235 250 5 常微分方程初值问题 259 5. 初值问题的基本理论 5。
- [数值分析导论… (Z-Library)] 数值积分程序的比较,J. 基于Whittaker cardinal或sine Wahba的数值方法,G. 不适定问题:针对轻度、中度和重度不适定问题及噪声数据的数值和统计方法,Tech。
- [初等微分方程和… (Z-Library)] 2012年8月7日 21:05 c08 页号1 页码451 青色黑色 C H A P T E R 数值方法 到目前为止,我们已经讨论了使用解析技术如积分或级数展开来解决微分方程的方法。通常,重点是找到解的精确表达式。不幸的是,在工程和科学中有许多重要问题,尤其是非线性问题,这些方法要么不适用,要么非常复杂。