极限与级数 · 无穷的符号化

极限和 Taylor 级数是分析学的两块基石,符号计算把它们也变成了机械操作。这一章看 SymPy 怎么精确求极限(包括 0/0、∞ 这些棘手情形)、怎么把函数展成幂级数,以及这些能力在近似、渐近分析里的用处。

作者 David更新于 第 11 篇(共 18 篇)

极限与级数 · 无穷的符号化

积分讲完,再看微积分符号版的另外两件利器——极限和级数。它们都和「无穷逼近」有关,是分析学的基石,而符号计算把它们也变成了能精确执行的操作。

极限:精确处理「趋近」

limit 求极限,连那些手算容易出错的 00\frac00、∞∞\frac\infty\infty、1∞1^\infty 型都能精确拿下:

from sympy import *
x = symbols('x')

print(limit(sin(x)/x, x, 0))        # 1     —— 经典的 0/0 型
print(limit((1 + 1/x)**x, x, oo))   # E     —— 1^∞ 型,极限是自然常数 e
print(limit(1/x, x, 0, '+'))        # oo    —— 单侧极限(从右趋近)

sin⁡xx\frac{\sin x}{x} 在 x→0x\to0 时是 00\frac00,极限却精确是 11;(1+1x)x(1+\frac1x)^x 在 x→∞x\to\infty 时精确趋于 ee。注意第三个的 '+'——它求单侧(从右)极限,得到 +∞+\infty;符号系统能精确区分左极限、右极限、双侧极限,以及 ±∞\pm\infty 这些「值」。

计算机怎么求极限?不是「代一个很接近的数进去看看」——那是数值的做法,会被误差和振荡骗。 现代 CAS(含 SymPy)多用 Gruntz 算法:它把函数按「趋于无穷的快慢」分层(所谓渐近尺度),从而精确判定极限——即使遇到 exx100\frac{e^x}{x^{100}} 这种「指数 vs 多项式」的较量,也能一眼看穿谁跑得快(exe^x 完胜,极限是 ∞\infty)。这是符号方法对数值方法的一个漂亮胜利:极限是关于「无穷」的精确断言,只有符号推理配得上它。

级数:把函数摊成幂级数

series 把函数在某点展成 Taylor(泰勒)级数——用多项式一项项逼近:

print(series(exp(x), x, 0, 5))      # 1 + x + x**2/2 + x**3/6 + x**4/24 + O(x**5)
print(sin(x).series(x, 0, 8))       # x - x**3/6 + x**5/120 - x**7/5040 + O(x**8)

exe^x 在 00 附近约等于 1+x+x22+x36+⋯1+x+\frac{x^2}{2}+\frac{x^3}{6}+\cdots,sin⁡x≈x−x36+x5120−⋯\sin x\approx x-\frac{x^3}{6}+\frac{x^5}{120}-\cdots。末尾那个 O(x5)O(x^5) 是大 O 记号,诚实地标注「剩下的都是 x5x^5 及更高阶的项,这里略去」——它精确记录了截断到几阶。

级数展开用处极广:

  • 近似计算:xx 很小时,用前几项就能高精度近似函数(计算器算 sin⁡\sin、exp⁡\exp 就靠它)。
  • 渐近分析:看函数在某点附近的主导行为(最低阶项说了算)。
  • 推导极限:很多极限,把分子分母各展成级数、比最低阶项,一眼就出来。
  • 数值方法的理论:孪生专栏里数值微分 / 积分的误差阶(O(h2)O(h^2)、O(h4)O(h^4)),正是从 Taylor 级数推出来的。

符号级数 vs 数值近似,是一对互补。 符号级数给你精确的系数和明确的误差阶(O(x5)O(x^5)),让你理解逼近的结构;而真要算某点的值,再把符号级数代入数值(lambdify)。「先符号推导出公式与阶、再数值求值」,是科学计算里极常见的高效套路。

小结与下一章

极限 limit 精确处理趋近(含 00\frac00、1∞1^\infty、单侧、±∞\pm\infty),靠的是 Gruntz 渐近算法而非数值代入——只有符号推理配得上「无穷」。级数 series 把函数摊成 Taylor 幂级数,O(xⁿ) 精确标注截断阶,用于近似、渐近分析、推极限,以及支撑数值方法的误差阶理论。符号与数值在这里互补:符号给公式与阶,数值给具体值。

微积分符号版还剩最后一块,也是应用最广的一块——微分方程。已知一个函数和它导数的关系,反求这个函数,能不能像解代数方程一样精确解出?下一章见分晓。👉 符号解微分方程。

参考文献

本页目录