SciPy 与 SymPy:数值算结果,符号推公式,各管各的
做科学计算的时候,你经常会遇到两种需求:
- 算一个具体的数:比如
∫₀¹ sin(x) dx = 0.4596... - 推一个数学公式:比如
∫ x·sin(x) dx = -x·cos(x) + sin(x)
前者是数值计算(SciPy 的活),后者是符号运算(SymPy 的活)。数值给结果,符号给表达式。 两套工具,解决两类问题。
数值积分:函数没原函数,或者数据来自实验
很多工程问题需要算积分,但被积函数可能没有初等原函数,或者数据是测量来的(离散点,没有表达式)。这时候用数值积分。
一维定积分:quad(最常用)
1 | from scipy.integrate import quad |
quad 返回两个值:积分结果和误差估计。误差估计别看小,它告诉你结果可不可信。 如果误差比结果还大,说明积分没收敛。
带参数的积分:
1 | def integrand(x, a, b): |
二重积分:dblquad(注意积分顺序)
1 | from scipy.integrate import dblquad |