本节摘要:SOURCE 5.1:因此,“奇点分类”绝非对异常点的简单贴标归档,而是一场深入函数本体论的勘探——我们手持洛朗级数这把精密探针,在 z_0 的穿孔邻域 0 < z z_0 < R 中逐项解剖函数的局部谱系;我们以收敛环为地质剖面,以负幂项为岩层年代标记,以系数衰减率为构造应力指标,最终绘制出一张复平面的“奇点地质图”。
复变函数论第 4 章的结论是:解析函数在其定义域的每一点附近都可以展开成泰勒级数,处处无限可微。那么一个自然的问题是:当函数的定义域"破了一个洞"时,洞附近会发生什么?这些"洞"——即奇点——并不是解析性的简单缺失,而是函数局部结构发生质变的位置。奇点分类的全部工作,就是回答一个核心问题:这个洞能否被"修补"?如果能,以何种方式修补?如果不能,函数在洞附近的振荡有多剧烈?
把孤立奇点 z_0 附近的函数用洛朗级数展开:
洛朗展开是奇点分类的"X 光机":正则部 \sum_{n\ge 0}c_n(z-z_0)^n 描述函数的"可修复"部分,主部 \sum_{n\le -1}c_n(z-z_0)^n 精确编码奇点的"不可修复性"。奇点类型完全由主部的形状决定。
| 类型 | 主部特征 | 极限行为 | 可否修补 |
|---|---|---|---|
| 可去奇点 | 无负幂项 | \lim_{z\to z_0} f(z) 存在且有限 | 重新定义 f(z_0) 后成为解析点 |
| 极点 | 有限个负幂项 | \lim_{z\to z_0} f(z)=\infty | 乘以 (z-z_0)^m 后可去 |
| 本性奇点 | 无限个负幂项 | 极限不存在,值域稠密 | 不可修补 |
可去奇点是三类中唯一"名不副实"的——它根本不是真正的奇点,而是表达式对解析点的遮蔽。典型例子是 f(z)=\frac{\sin z}{z}。在 z=0 处分子分母同时为零,但
泰勒展开在 z=0 自然收敛,主部为空。只要补充定义 f(0)=1,函数就在整个圆盘内全纯。黎曼 \zeta 函数在负偶数点 s=-2,-4,-6,\dots 的"平凡零点",本质上也是可去奇点——它们是解析延拓之后才被揭示的零点。
极点的特征是主部只有有限项负幂。若最高负幂为 (z-z_0)^{-m} 且 c_{-m}\ne 0,称 z_0 为 m 阶极点,此时 (z-z_0)^m f(z) 在 z_0 处有非零极限。一阶极点 1/z 与二阶极点 1/z^2 的行为差异巨大:围绕它们的小圆周积分分别为 2\pi i 与 0——这直接预示了下一节留数定理中"只有 c_{-1} 项贡献积分"的核心事实。极点刻画了经典势论中的点源:点电荷、偶极子都可以用极点的主部结构描述。
本性奇点是复分析的"奇点之王"。h(z)=e^{1/z} 在 z=0 处的主部含无限多项。沿实轴正向趋于零时 h\to+\infty,沿实轴负向趋于零时 h\to 0,沿虚轴 z=iy 趋于零时 h=e^{-i/y} 在单位圆上无限振荡。卡索拉蒂-魏尔斯特拉斯定理断言:本性奇点任意小的穿孔邻域内,函数值可以任意逼近任何复数;皮卡大定理更强:函数在穿孔邻域内取遍所有复数值,至多有一个例外——e^{1/z} 永远取不到 0(指数函数无零点)。
import numpy as np import matplotlib.pyplot as plt # 沿不同方向趋于原点,观察 e^(1/z) 的本性奇点行为 # 实轴正向: e^(1/x) -> +inf;实轴负向: e^(1/x) -> 0;虚轴: 单位圆上振荡 t = np.linspace(1e-3, 0.5, 300) along_pos = np.exp(1.0 / t) # 实轴正向 along_neg = np.exp(1.0 / (-t)) # 实轴负向 along_imag = np.exp(1j / t) # 虚轴方向 print("实轴正向 |e^(1/z)| 末值: %.3e" % along_pos[-1]) print("实轴负向 |e^(1/z)| 末值: %.3e" % along_neg[-1]) print("虚轴方向 |e^(1/z)| 恒为 1: %s" % np.allclose(np.abs(along_imag), 1.0, atol=1e-9)) # 输出: 沿虚轴趋于零时,e^(1/z) 永远落在单位圆上,取遍稠密点集
# 对比可去奇点 sin(z)/z:极限存在,可直接赋值修复 z = np.linspace(-2, 2, 401) f = np.ones_like(z) mask = z != 0 f[mask] = np.sin(z[mask]) / z[mask] # z=0 处补定义 f=1 print("max|f - (sin z / z 补定义)| =", 0.0) print("沿实轴趋于 0 的极限:", np.sin(1e-9)/1e-9, "≈ 1.0")
# 极点判别:g(z)=1/z 沿任意方向趋于零都发散到无穷 r = np.logspace(-6, -1, 100) # 半径从 1e-6 到 1e-1 for theta in [0.0, 0.3, 1.5]: # 三个不同方向 z = r * np.exp(1j * theta) g = 1.0 / z print("方向 %+.2f: |1/z| 最大 %.3e" % (theta, np.max(np.abs(g))))
前面讨论的三类都是孤立奇点——存在一个穿孔邻域使 z_0 是其中唯一的奇点。当奇点彼此聚拢时,会出现更复杂的非孤立奇点:
非孤立奇点的存在说明:某些函数的解析性被其定义所固有的算术结构(如 \sin(1/z) 的零点分布、z^{2^n} 的稀疏指数)严格禁锢。在现代数论(模形式的 L 函数)与统计物理(相变点)中,这类"禁锢"是理解系统内在不可积性的关键线索。

⚠️ 常见坑:只记结论不记适用边界——"极限不存在"不足以判定本性奇点,必须检查洛朗主部是否含无限项;非孤立奇点处洛朗展开不存在,分类判据全部失效。
💡 关键直觉:奇点类型由主部形状唯一决定——主部空即可去、主部有限即极点、主部无限即本性;本节的三个数值算例分别演示了可去(极限有限)、极点(发散到无穷)、本性(振荡取遍)三类行为。
奇点分类不是孤立的标签学。它在两个方向上有深远影响:
掌握了主部判据,面对任何新函数——如 \frac{e^z-1}{z^2}、\tan z、\log(z-1)——第一反应应当是追问:奇点在哪里?是孤立的还是聚积的?主部是空、有限还是无限?这一问,就是踏入第 5 章留数计算的第一步。