前阵子整理复变函数习题,重新做了 2.3 节的一道老题:习题2.3-5,标题写着“柯西积分计算-第一类零阶修正贝塞尔函数的特殊值”。刚看到这种表述,我以为是那种一眼套公式就能出结果的题,真正动手才发现,它把柯西积分公式和特殊函数串在了一起,绕了一个很有意思的弯。
先说结论:这道题的核心对象是积分
[
\int_0^{2\pi}e^{x\cos\theta},d\theta,
]
它算出来以后正好是 (2\pi I_0(x)),其中 (I_0) 是第一类零阶修正贝塞尔函数。以前只会在数学物理方法里见到这种积分,但用柯西积分公式推一遍,会发现比死记“特殊函数积分公式表”有用得多。这篇文章就当作一次习题复盘来写,把每一步怎么想到的、哪里容易踩坑、最后又能推出哪些特殊值,都展开聊聊,适合正在学复变函数、或者工作中需要查特殊函数的人。
1. 这道题到底在算什么?先看清题目背后的逻辑
1.1 柯西积分公式在这里不是“直接代公式”
柯西积分公式的常见形式是
[
f(a)=\frac{1}{2\pi i}\oint_{C}\frac{f(z)}{z-a},dz,
]
它说明一个区域内的解析函数值,可以由边界上的值完全确定。这是复分析里最反直觉也最漂亮的性质之一:局部信息被整体信息锁死。
但习题2.3-5不是那种让你算 (f(0)) 的送分题。它真正想让你体会的是:怎么把一个看起来完全没有“除法结构”的实积分,改写成具有 (\frac{\text{解析函数}}{z-a}) 形式的围道积分,然后再通过展开、逐项取积分把这个“潜在的 (f(a))”找出来。
很多初学者看到柯西积分公式,只会找“分母一次幂、分子解析”的固定模式。一旦被积函数变成 (e^{x\cos\theta}),就觉得这不是柯西积分公式能染指的东西。实际上,处理这类问题的常规套路是变量替换到单位圆上:令 (z=e^{i\theta}),把 (\cos\theta) 改写成 (\frac{z+z^{-1}}2),把 (d\theta) 改写成 (\frac{dz}{iz})。这么一换,被积函数就从三角形式变成一个包含 (z^{-1}) 的围道积分。
这里已经埋了一个隐患:换完以后,被积函数在单位圆内部会出现 (z^{-1}),也就是原点处不再是“解析点”,而是本性奇点或者至少是一个高阶极点。这也是很多人推到最后卡住的地方:柯西积分公式要求被积函数在围道内部解析,可这里原点明明有问题。怎么办?答案是不要对整体套公式,而是先把函数展开,再逐项用柯西积分公式的高阶形式。
1.2 修正贝塞尔函数为什么会突然出现
说一下修正贝塞尔函数。第一类修正贝塞尔函数 (I_n(x)) 的常见级数定义是
[
I_n(x)=\sum_{k=0}^{\infty}\frac{(x/2)^{n+2k}}{k!(n+k)!},
]
当 (n=0) 时就是
[
I_0(x)=\sum_{k=0}^{\infty}\frac{(x/2)^{2k}}{(k!)^2}.
]
从级数能看到它和普通贝塞尔函数 (J_0(x)) 很相似,差别只在有没有 ((-1)^k) 这一项。正因为缺了正负交替,(I_0(x)) 在实轴上不振荡,而是从 (I_0(0)=1) 开始单调增长。
这个函数在现实中的出场率很高。比如柱坐标系下的热传导方程、扩散方程,分离变量后常出现修正贝塞尔方程;又比如方向统计里的 von Mises 分布,归一化常数分母就是 (2\pi I_0(\kappa))。积分 (\int_0^{2\pi}e^{\kappa\cos\theta},d\theta) 恰好就是它的归一化积分。换句话说,题目里那个看似抽象的柯西积分,背后是能直接用到统计和物理问题里的真实表达式。
所以这道题并不只是考试题,它是在示范:柯西积分公式除了能算有理函数围道积分,还能用来给特殊函数的积分表示做推导。这一点对工程数学特别重要,因为很多特殊函数的积分定义,本质上都能和某个复积分对应起来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心推导:三步把积分算出来
2.1 第一步:把实积分翻译成单位圆上的围道积分
设参数 (x) 是实数(最终可以延拓到复数),记
[
K(x)=\int_0^{2\pi}e^{x\cos\theta},d\theta.
]
目标不是直接背公式,而是重新推出它与 (I_0(x)) 的关系。
受柯西积分公式的启发,做代换
[
z=e^{i\theta},\qquad \theta\in[0,2\pi).
]
于是
[
d\theta=\frac{dz}{iz},
]
并且
[
\cos\theta=\frac{e^{i\theta}+e^{-i\theta}}2=\frac{z+z^{-1}}2.
]
代入之后有
[
K(x)=\oint_{|z|=1}e^{\frac{x}{2}(z+z^{-1})}\frac{dz}{iz}.
]
这条式子右边就是标准的单位圆围道积分,方向是逆时针。
这里有个细节值得强调:为什么用 (z=e^{i\theta}) 而不用 (z=e^{-i\theta})?因为 (\theta) 从 (0) 到 (2\pi) 时,前者方向是逆时针,正好是复积分默认的正方向。你如果图省事没有盯方向,后面很可能差一个负号。而且 (d\theta=\frac{dz}{iz}) 这步容易漏掉 (i),一旦漏掉,最后积分值会多一个虚数单位,整个推导就废了。验算方向有个笨办法:取一小段弧来验证,比如 (\theta) 增加时,(z=e^{i\theta}) 确实沿逆时针移动,(dz=ie^{i\theta}d\theta),所以代换成立。
2.2 第二步:展开被积函数,把“不能直接用公式”的障碍拆掉
现在的问题是
[
\oint_{|z|=1}e^{\frac{x}{2}(z+z^{-1})}\frac{dz}{iz}
]
里还有一个 (z^{-1}) 在指数上,所以 (z=0) 是这个函数的本性奇点,不能直接对完整函数套柯西积分公式。
处理本性奇点的常规思路就是展开。把指数分成两块:
[
e^{\frac{x}{2}(z+z^{-1})}
=e^{\frac{x}{2}z}\cdot e^{\frac{x}{2z}}.
]
两边分别做泰勒展开:
[
e^{\frac{x}{2}z}=\sum_{m=0}^{\infty}\frac{(x/2)^m}{m!}z^m,
]
[
e^{\frac{x}{2z}}=\sum_{n=0}^{\infty}\frac{(x/2)^n}{n!}z^{-n}.
]
乘起来以后,每一项都是 (\frac{(x/2)^{m+n}}{m!n!}z^{m-n}) 的形式。对单位圆上的一致收敛级数,积分与求和可以交换顺序,于是原积分变成对所有 ((m,n)) 逐项求积分。
看到这里你应该能意识到:真正能在单位圆上围道积分里存活的项,只有 (z^{-1}) 这一项。换句话说,对任意 (m,n),只有当 (m-n-1=-1),也就是 (m=n) 时,该项的围道积分才不为零。这正是后面能把无限级数一下子缩成一个级数的根本原因。
很多教材喜欢直接用“洛朗展开后取 (z^{-1}) 项系数”来说这件事,这在精神上完全没错,但用的是留数定理的思考方式。柯西积分公式那一章还没引入留数,所以更合适的说法是:把负幂级数部分固定下来,再逐项用高阶柯西积分公式去算。
2.3 第三步:逐项用高阶柯西积分公式,拼出 (I_0(x))
重新整理一下:将 (e^{\frac{x}{2z}}) 展开后,
[
K(x)=\frac1i\oint_{|z|=1}
e^{\frac{x}{2}z}\left(\sum_{n=0}^{\infty}\frac{(x/2)^n}{n!}z^{-n}\right)
\frac{dz}{z}
]
把求和号提出来:
[
K(x)=\frac1i\sum_{n=0}^{\infty}\frac{(x/2)^n}{n!}
\oint_{|z|=1}
\frac{e^{\frac{x}{2}z}}{z^{n+1}},dz.
]
现在每一个围道积分里,分子 (e^{\frac{x}{2}z}) 在整个单位圆内部都是解析函数,分母是 (z^{n+1})。这正是高阶柯西积分公式的标准形式:
[
\oint_{|z|=1}\frac{f(z)}{z^{n+1}},dz
=\frac{2\pi i}{n!}f^{(n)}(0).
]
这里 (f(z)=e^{\frac{x}{2}z}),所以
[
f^{(n)}(0)=\left(\frac{x}{2}\right)^n.
]
于是
[
\oint_{|z|=1}\frac{e^{\frac{x}{2}z}}{z^{n+1}},dz
=\frac{2\pi i}{n!}\left(\frac{x}{2}\right)^n.
]
代回去:
[
K(x)=\frac1i\sum_{n=0}^{\infty}\frac{(x/2)^n}{n!}
\cdot\frac{2\pi i}{n!}\left(\frac{x}{2}\right)^n
=2\pi\sum_{n=0}^{\infty}\frac{(x/2)^{2n}}{(n!)^2}.
]
右边那个级数就是 (I_0(x))。所以最终得到
[
\int_0^{2\pi}e^{x\cos\theta},d\theta=2\pi I_0(x).
]
这组推导最妙的地方在于:柯西积分公式不是直接用在整个有本性奇点的函数上,而是用在了展开后“每一层的解析部分”上。负幂部分则由 (\frac1{n!}f^{(n)}(0)) 这个高阶导数项来吸收。整个过程等于把洛朗展开的思想和柯西积分公式做了一个结合,非常典型。
3. 特殊值怎么来?从公式里挖出几个常用结论
3.1 零点和原点附近的特殊值
有了
[
K(x)=2\pi I_0(x)
]
这条关系,很多特殊值是白送的。先看 (x=0):
左边是
[
\int_0^{2\pi}e^0,d\theta=2\pi,
]
右边是 (2\pi I_0(0)),因此 (I_0(0)=1)。这个结论直接看级数也成立,因为 (I_0(x)=1+\frac{x^2}{4}+\frac{x^4}{64}+\cdots)。
再看小参数展开。把 (I_0(x)) 的级数前几项写出来:
[
I_0(x)=1+\frac{x^2}{4}+\frac{x^4}{64}+O(x^6).
]
如果题目要求 (I_0'(0)),一眼就知道是 (0),因为级数里没有 (x) 一次项。对应的积分视角也很有意思:把左边 (e^{x\cos\theta}) 对 (x) 求导再令 (x=0),会得到
[
\int_0^{2\pi}\cos\theta,d\theta=0,
]
两边完全对得上。这就是为什么特殊函数级数里的“缺项”往往对应某个积分为零的三角函数恒等式。
3.2 纯虚参数:连接 (I_0) 和普通贝塞尔函数 (J_0)
修正贝塞尔函数和普通贝塞尔函数有一个基本关系
[
I_0(x)=J_0(ix),
]
其中 (J_0) 是第一类零阶贝塞尔函数。如果把上面推导中的 (x) 换成 (it),就得到
[
\int_0^{2\pi}e^{it\cos\theta},d\theta=2\pi I_0(it)=2\pi J_0(t).
]
这是工程数学里非常经典的一个积分公式,经常出现在波动问题、天线辐射和信号处理中。取实部还能得到更常见的写法:
[
\int_0^{2\pi}\cos(t\cos\theta),d\theta=2\pi J_0(t),
]
并且虚部自动为零:
[
\int_0^{2\pi}\sin(t\cos\theta),d\theta=0.
]
注意不要和另一类长得像的积分混淆:
[
\int_0^{2\pi}e^{\cos\theta}\cos(\sin\theta),d\theta=2\pi.
]
这个积分是直接把 (e^{e^{i\theta}}) 在单位圆上围道积分得到的,结果和参数 (1) 没有关系,看起来像一个“偶然的恒等式”。它虽然也涉及柯西积分公式,但并不是修正贝塞尔函数 (I_0) 的积分表示,两者之间的区别做题时一定要分清。
3.3 大参数渐近形式和数值验证
特殊值不只包括 (x=0) 或纯虚数,还可以包括渐近行为。用拉普拉斯方法可以知道实参数很大时
[
I_0(x)\sim \frac{e^x}{\sqrt{2\pi x}},\qquad x\to+\infty,
]
于是
[
\int_0^{2\pi}e^{x\cos\theta},d\theta
\sim \sqrt{\frac{2\pi}{x}},e^x.
]
这个近似可以用来检验数值积分结果。我自己做习题时会取 (x=1) 验证:
(I_0(1)\approx 1.2660658777520084),于是
[
\int_0^{2\pi}e^{\cos\theta},d\theta\approx 7.954926521012845.
]
你可以把它和高斯勒让德数值积分结果对一下,通常能对上七八位小数。这种小技巧很实用,尤其当你不确定自己有没有漏掉 (2\pi) 时,凑一个具体的 (x) 用数值积分一验,立刻就知道公式对不对。
4. 做题时的常见错误与排查技巧
4.1 见到 (z^{-1}) 就慌,或者强行套柯西积分公式
这是我在这个题上见过最多的错误。很多同学把积分化成
[
\oint_{|z|=1}e^{\frac{x}{2}(z+z^{-1})}\frac{dz}{iz}
]
以后,觉得形式接近柯西积分公式,于是直接声称它等于某个东西,完全忽略了 (z=0) 是本性奇点。还有一些同学反过来,看到 (z^{-1}) 就认为题目超纲,宁可去背答案也不肯展开。
正确心态是:本性奇点并不可怕,函数在孤立奇点附近不能展开成纯泰勒级数,但一定可以展开成洛朗级数。只要展开后逐项积分,每一项都能回到柯西积分公式的适用范围。如果你所在章节还没讲洛朗级数,可以用我上一节那种办法:把负幂部分单独展开,其他部分保留为解析函数 (f(z)),然后用高阶导数公式处理。这样做的好处是每一步都能和当前学过的柯西积分公式对上。
4.2 漏掉 (i)、方向搞反、(2\pi) 丢失
参数化的常见错误有三种:
第一,(d\theta=\frac{dz}{iz}) 写成 (d\theta=\frac{dz}{z})。这一步漏了 (i),整个积分结果就差一个虚数单位。第二,路径方向用反,比如把 (z=e^{-i\theta}) 当作正向,最后会差一个负号。第三,把 (2\pi) 和 (2\pi i) 搞混。柯西积分公式自带 (2\pi i),但是代换时已经有 (\frac1i),所以最后出现的是 (2\pi) 而不是 (2\pi i)。
要避免这类问题,建议每推出一个中间结果就做一次单位检查或极限检查。比如令 (x=0),如果公式变成
[
\int_0^{2\pi}1,d\theta=2\pi I_0(0)=2\pi,
]
说明前面的系数没问题。这是最廉价的自检手段,不需要任何额外工具。
4.3 混淆 (I_0)、(J_0)、(K_0) 的积分形式
很多特殊函数在积分表示上长得太像,整理一张对照表会很有帮助:
| 函数 | 常用积分/级数表示 | 主要特点 |
|---|---|---|
| (J_0(x)) | (\displaystyle \frac1{2\pi}\int_0^{2\pi} e^{ix\cos\theta},d\theta) | 实轴上振荡衰减 |
| (I_0(x)) | (\displaystyle \frac1{2\pi}\int_0^{2\pi} e^{x\cos\theta},d\theta) | 实轴上单调增长,(I_0(0)=1) |
| (K_0(x)) | 常见表示 (\displaystyle \int_0^{\infty} e^{-x\cosh t},dt) | 第二类修正贝塞尔函数,在无穷远指数衰减 |
其中 (I_0(x)=J_0(ix)),而 (K_0(x)) 是另一类独立解,和 (I_0) 是修正贝塞尔方程的两个线性无关解。解题时如果题目要的是 (K_0),套 (I_0) 的积分表示会错得离谱。
一个更稳的做法是从微分方程出发记忆:普通贝塞尔方程是 (x^2y''+xy'+(x^2-n^2)y=0),修正贝塞尔方程是 (x^2y''+xy'-(x^2+n^2)y=0)。一个是 (x^2) 前是加号,一个是减号,所以修正贝塞尔函数在实轴上呈现指数型行为。理解了方程,再看到积分表示时就不会搞混“该收敛还是该增长”了。
4.4 一个直接可用的排查清单
按我自己的习惯,做这类题最后会检查以下几点:
- 变量替换是否正确,特别是有没有多一个 (\frac1i)。
- 围道方向是否逆时针,代换后的路径闭合性是否成立。
- 被积函数在围道内是否存在奇点,如果存在,是否通过展开处理了。
- 最终结果是否满足某个特殊值,比如 (x=0) 时为单位圆周长 (2\pi)。
- 能否用数值积分在小参数下验证,比如 (x=1) 时对比 (2\pi I_0(1))。
把这几条走一遍,基本上能把低级错误全部拦下来。
5. 几个值得延伸的思考方向
5.1 把实参数换成复参数,公式是否还成立
前面推导时默认 (x) 是
