费曼积分法 (Feynman's Trick)

Table of Contents

1. 费曼积分法 (Feynman's Trick)

又名: 积分符号内取微分 (Differentiation under the Integral Sign) & 莱布尼茨积分法则

在众多的积分技巧和方法中, 费曼积分法(Feynman's trick)是我热爱计算积分的一个重要原因. 虽然这项技术本身可以追溯到莱布尼茨, 通常被称为 莱布尼茨积分法则, 但正是理查德·费曼(Richard Feynman)使其广为人知, 因此它也被称为费曼积分法. 以下是他的著作<别闹了, 费曼先生! (Surely You're Joking, Mr. Feynman)>中的一段节选:

"有一件事我一直没学会, 那就是围道积分(contour integration). 我在高中物理老师巴德先生(Mr. Bader)给我的一本书里学会了各种积分方法.

有一天, 他让我课后留下来. "费曼," 他说, "你话太多了, 太吵了. 我知道原因, 你是因为太无聊了. 所以我给你一本书. 你坐到后面那个角落去研究这本书, 等你把这本书里的东西都学会了, 你就可以再次说话."

所以每一节物理课, 我都不理会帕斯卡定律或其他他们在讲的东西. 我躲在后面看那本书: 伍兹(Woods)写的<高等微积分>(Advanced Calculus). 巴德知道我学过一点<给实用主义者的微积分>, 所以他给了我这本真家伙–这是大学大三或大四的课程教材. 里面有傅里叶级数, 贝塞尔函数, 行列式, 椭圆函数–各种我不懂的奇妙东西.

那本书还展示了如何 在积分符号内对参数求导 –这是一种特定的运算. 事实证明, 大学里并不怎么教这个; 他们不强调它. 但我学会了如何使用这种方法, 并一次又一次地使用这个该死的工具. 因为我是用那本书自学的, 所以我做积分的方法很古怪.

结果就是, 当麻省理工学院或普林斯顿大学的人在做某个积分遇到困难时, 那是因为他们用学校里学到的标准方法做不出来. 如果是围道积分, 他们早就做出来了; 如果是简单的级数展开, 他们也早就做出来了. 然后我来了, 试着在积分符号内求导, 通常这招就灵了. 所以我因为做积分很厉害而名声大噪, 但这只是因为我的工具箱和别人的不同, 而他们在把问题交给我之前已经试过了他们所有的工具."

对我来说, 使用这个技巧感觉就像是用作弊码来处理积分. 同时, 它激发了大量的创造力和大胆的猜想, 把积分变成了谜题. 不幸的是, 这也意味着关于如何以及何时使用这种技术并没有清晰的路径. 此外, 费曼所写的关于这种方法在大学里很少(甚至根本不)教授的情况, 今天依然适用. 因此, 对于初学者来说, 这个技巧可能显得晦涩难懂.

在接下来的部分中, 我们将踏上一段旅程, 开发一些在使用费曼积分法时可以参考的 经验法则. 这些仅仅是我倾向于使用的启发式方法, 所以偏离它们也是完全可以接受的. 然而, 我希望当某人试图使用这个技巧却没有任何明显的直觉时, 这些法则能提供一条路径, 或者更好的是, 它们能激励某人开始使用这种方法.

2. Hello, World! (入门)

费曼在提到"在积分符号内取微分"时已经给出了关于这个技巧的重要提示, 这也是该技术的另一个名称.

更明确地说, 如果 \(I(b)\) 和 \(f(x, b)\) 在 \([a, c]\) 区间上对两个变量都是连续的, 那么以下等式成立:

\[ \frac{d}{db} \int_a^c f(x, b) \, dx = \int_a^c \frac{\partial}{\partial b} f(x, b) \, dx \]

这很好, 但仅凭它本身并不是很有用, 因为它没有说明如何以及何时应用它. 此外, 学习不是一项旁观者的运动, 人们必须亲自动手, 因为没有捷径可走.

以国际象棋为例, 大多数人可以在几分钟内阅读并理解规则, 然而, 如果他们去下棋, 很可能会被更有经验的棋手击败. 这是因为另一位棋手通过练习, 学到了在比赛时使用的策略.

因此, 为了在这里也开发一些策略, 我们将直接通过实际例子来探讨费曼积分法. 作为一个 "Hello, World!" 式的介绍, 让我们看看下面这个积分:

\[ \int_0^1 \frac{x^2 - 1}{\ln x} \, dx \]

我们鼓励你尝试使用基本方法来计算这个积分, 但分母中的 对数 使得这个积分相当棘手. 费曼积分法的目的是通过对参数在积分符号下求导来解决这个问题, 从而获得一个更容易计算的积分.

不幸的是, 在上面的积分中我们缺少一个参数, 因此第一步是 参数化积分, 这甚至可能意味着引入整个函数, 但对于这个例子, 我们将简单地考虑:

\[ I(b) = \int_0^1 \frac{x^b - 1}{\ln x} \, dx \]

请记住, 我们要算的原始积分只是 \(I(2)\). 当然, 我们本可以将参数放在许多不同的地方, 例如:

\[ I(b) = \int_0^1 \frac{x^2 - 1}{\ln(x+b)} \, dx \quad \text{或} \quad I(b) = \int_0^b \frac{x^2 - 1}{\ln x} \, dx \]

然而, 这个技巧背后的主要思想是在对新参数求导后获得一个更容易计算的积分. 让我们付诸行动, 看看 \(I(b)\) 会发生什么.

\[ I'(b) = \frac{d}{db} \int_0^1 \frac{x^b - 1}{\ln x} \, dx = \int_0^1 \frac{\partial}{\partial b} \left( \frac{x^b - 1}{\ln x} \right) \, dx \]

由于 \(\frac{\partial}{\partial b} (x^b) = x^b \ln x\), 我们有:

\[ I'(b) = \int_0^1 \frac{x^b \ln x}{\ln x} \, dx = \int_0^1 x^b \, dx = \left[ \frac{x^{b+1}}{b+1} \right]_0^1 = \frac{1}{b+1} \]

注意上面的积分 \(I'(b)\) 计算起来是多么容易. 如果我们保留了 \(I(2)\), \(x^2\) 或 \(\ln(x+b)\), 在求导后事情根本不会简化, 最重要的是分母中仍然会有 \(\ln x\), 这正是最初让积分难以处理的原因.

我们已经可以感觉到, 以下问题在未来可能至关重要: 在使用费曼积分法时, 如何对积分进行参数化?

稍后我们会担心这个问题, 现在让我们完成这个积分, 因为我们要找的是 \(I(2)\), 而我们只找到了 \(I'(b)\). 我们需要将 \(I'(b)\) 积分回去并设置 \(b=2\) 才能到达那里. 这里回顾一下很有用:

\[ I(b) = \int I'(b) \, db \]

对我们来说, \(I'(b)\) 只是上式中的 \(\frac{1}{b+1}\). 幸运的是 \(I(0) = \int_0^1 0 \, dx = 0\), 因为我们要找的是 \(I(2)\), 我们有:

\[ I(b) = \ln(b+1) + C \implies I(b) = \ln(b+1) \quad (\text{因为 } I(0)=0 \implies C=0) \]

\[ \therefore \int_0^1 \frac{x^2 - 1}{\ln x} \, dx = I(2) = \ln(3) \]

这就是费曼积分法的大致图景–我们有一个原形式难以计算的积分, 因此通过在积分符号下求导, 我们试图转换积分使其更容易积出, 最后我们再通过积分"撤销"求导步骤.

3. 参数的选择 (The Parameter)

如上所述, 该技术的主要目标是在对参数求导后获得一个更容易计算的积分, 一个问题是并不总是显而易见如何参数化积分. 为了使事情更直观, 我们将摆弄下面的积分:

\[ \int_0^1 \frac{x-1}{\ln x} \, dx \]

最烦人的东西是对数, 所以如果我们摆脱它, 一切都会很直接. 有几个参数化的可能性值得考虑, 即:

  1. \(I(b) = \int_0^1 \frac{x-b}{\ln x} \, dx\)
  2. \(I(b) = \int_0^1 \frac{x^b-1}{\ln x} \, dx\)

对于第一个, 我们运气不佳, 因为对 \(b\) 求导给出: \[ I'(b) = \int_0^1 -\frac{1}{\ln x} \, dx \] 因此, 如果我们试图回到我们要找的 \(I(1)\), 我们会得到 \(\int -1/\ln x\), 这并没有抵消 \(\ln x\), 我们也无法恢复它. 不幸的是, 没有神奇公式能先验地告诉我们在特定位置放置参数是否会成功计算积分–有时我们只是运气不好.

相比之下, 第二个选择效果很好(这实际上与 Hello World 示例相同, 只是 \(b=1\)).

\[ I'(b) = \int_0^1 x^b \, dx = \frac{1}{b+1} \implies I(b) = \ln(b+1) \]

这也是我在使用此技术时总是首先尝试寻找的东西–即, 简化被积函数中与求导参数无关的部分. 当然, 对于当前的积分, 我们摆脱了对数, 但分母保持完好.

简而言之, 这将是我们的第一条经验法则: 如果可能的话, 放置参数使得积分中与参数无关的部分得到简化.

为了用我们的积分实现这一点, 我们需要摆脱 \(x\), 通过利用 \(\frac{\partial}{\partial b} \arctan(bx) = \frac{x}{1+(bx)^2}\) 我们可以重写积分. 考虑下一个例子:

\[ \int_0^\infty \frac{\arctan(\pi x) - \arctan(x)}{x} \, dx \]

最后, 这种形式更自然地放置参数, 以便在对 \(b\) 求导时简化 \(x\), 即我们可以考虑:

\[ I(b) = \int_0^\infty \frac{\arctan(bx) - \arctan(x)}{x} \, dx \]

就像 \(\int_0^1 \frac{x-1}{\ln x} dx\) 一样, 我们希望找到 \(I(\pi)\), 但这里 \(I(1)\) 等于 \(0\) 而不是 \(I(0)\).

\[ I'(b) = \int_0^\infty \frac{1}{x} \cdot \frac{x}{1+b^2x^2} \, dx = \int_0^\infty \frac{1}{1+b^2x^2} \, dx \] \[ I'(b) = \left[ \frac{1}{b} \arctan(bx) \right]_0^\infty = \frac{\pi}{2b} \]

\[ I(b) = \int \frac{\pi}{2b} \, db = \frac{\pi}{2} \ln(b) + C \] 由于 \(I(1) = 0 \implies C = 0\). \[ \therefore I(\pi) = \frac{\pi}{2} \ln(\pi) \]

对于这个特定的积分, 我们只是避免了执行部分分式, 所以通过简化分母并没有真正的巨大改进. 然而我想强调这一点的重性, 因为在决定在哪里放置参数时, 它会让事情变得更自然. 当然, 如果没有适当或直接的方法来实现这一点, 将参数放在其他地方也是完全可以的.

4. 加速版费曼技巧 (Accelerated Feynman's trick)

上一章强调了对积分进行参数化, 以便在求导时简化积分中与参数无关的部分(如果可能). 然而, 有些时候即使我们可以引入参数来实现这一点, 也不足以完成积分.

在本章中, 我们将通过一种不同的方式来获得这种简化. 让我们从看一个之前作为练习给出的积分的修改版本开始.

\[ \int_0^\infty \frac{\sin x}{x} \, dx \quad (\text{迪利克雷积分}) \]

对于 \(\int \frac{x^b-1}{\ln x} dx\), 参数化为 \(x^b\) 很直接, 因为它简化了分母, 然而对于我们的积分, 类似的 \(\frac{\sin(bx)}{x}\) 似乎不起作用, 因为它让事情变得有点太复杂.

然而, 有一种方法可以简化分母, 同时在之后获得一个像样的积分. 不深入太多细节, 我将把积分参数化为:

\[ I(b) = \int_0^\infty \frac{\sin x}{x} e^{-bx} \, dx \]

这看起来可能很晦涩, 但不要害怕, 因为我们再也不会使用这种方法了. 重点是简化 \(1/x\), 上面的函数是为了明确实现这一点而创建的, 因为 \(\int_b^\infty e^{-xy} dy\) 是 \(e^{-bx}/x\). 注意, 即使我们引入了其他几个项, 那些并不碍事.

这里我们要找的是 \(I(0)\), 而且我们也有 \(I(\infty) = 0\), 因此:

\[ I'(b) = -\int_0^\infty \sin x e^{-bx} \, dx = -\frac{1}{1+b^2} \quad (\text{利用拉普拉斯变换或分部积分}) \] \[ I(b) = -\arctan(b) + C \] 当 \(b \to \infty, I(b) \to 0 \implies C = \pi/2\). \[ I(0) = \frac{\pi}{2} \]

我们可以通过直接使用 \(\frac{1}{x} = \int_0^\infty e^{-xy} \, dy\) 来避免上面的参数化, 然后切换到二重积分, 换句话说: **采用加速版费曼技巧**(在其中我们跳过通常的参数化步骤).

\[ \int_0^\infty \frac{\sin x}{x} \, dx = \int_0^\infty \sin x \left( \int_0^\infty e^{-xy} \, dy \right) \, dx \] \[ = \int_0^\infty \left( \int_0^\infty e^{-xy} \sin x \, dx \right) \, dy = \int_0^\infty \frac{1}{1+y^2} \, dy = \frac{\pi}{2} \]

剩下的部分与前一种方法完全一样, 因为我们在这里所做的只是跳过求导步骤, 转而使用二重积分.

这里产生的一个自然问题是 \(\frac{1}{x} = \int_0^\infty e^{-xy} \, dy\) 是怎么出现的? 或者更好的是, 人们如何为其他积分想出类似的结果? 在上面的例子中, 只是使用了正弦函数的拉普拉斯变换, 但在一般情况下, 拥有这类恒等式的列表很有用. 可以使用积分结果表–例如: Gradshteyn 和 Ryzhik 的<积分, 级数和乘积表>–但另外, 人们也可以建立自己的结果列表, 这些结果在计算其他积分时经常出现.

5. 更多费曼技巧的变体 (More Feynman's trick variants)

我们已经在上一章熟悉了费曼技巧的一个流行版本. 同样, 现在我们将看看其他有趣的费曼技巧变体, 虽然它们可能出现得较少, 但它们仍然有助于扩该技术的适用性.

1. 积分符号内取微分 (仅求导) 我们将从看一个更简单的费曼技巧案例开始, 即只需要在积分符号下求导而无需执行" 撤销" 步骤来积回去的情况. 作为一个小注记, 确实" 在积分符号内取微分" 倾向于用作费曼技巧的替代名称, 但我更喜欢将其保留给仅参与求导过程的变体, 或者如上所述, 当不需要积回结果时.

让我们通过看下面的积分让这一点更清楚: \[ \int_0^1 x^n \ln x \, dx \] 如果我们将原积分视为参数 \(n\) 的函数 \(I(n) = \int_0^1 x^n dx = \frac{1}{n+1}\), 那么对 \(n\) 求导: \[ I'(n) = \int_0^1 x^n \ln x \, dx = \frac{d}{dn} \left( \frac{1}{n+1} \right) = -\frac{1}{(n+1)^2} \] 这告诉我们, 有时候知道一个通用的积分结果可以通过对其求导提供更多有用的积分.

2. 费曼技巧与不定积分 接下来, 我们将看看费曼技巧如何应用于不定积分. 让我们考虑: \[ \int e^{x^2} \, dx \quad (\text{误差函数相关}) \] 这通常需要引入临时边界来处理, 例如高斯积分的技巧. \[ \int_{-\infty}^\infty e^{-x^2} \, dx = \sqrt{\pi} \] 这部分通常涉及将 \(I^2\) 写成二重积分并转换为极坐标.

3. 费曼技巧与幂级数 接下来, 我们将看看如何将费曼技巧与幂级数结合起来. 为此我们将看: \[ \int_0^1 \frac{\ln(1-x)}{x} \, dx \] 我们已经熟悉了当分母中有对数时该怎么做, 但这里出现了 \(1-x\) 项. 为了解决这个问题, 我们将利用几何级数 \(\frac{1}{1-x} = \sum x^k\). \[ \int_0^1 \frac{\ln(1-x)}{x} \, dx = -\sum_{k=1}^\infty \frac{1}{k^2} = -\frac{\pi^2}{6} \]

4. 费曼技巧与微分方程 在接下来的内容中, 我们将看看费曼技巧与微分方程之间的结合. \[ I(b) = \int_0^\infty e^{-x^2} \cos(bx) \, dx \] 对 \(b\) 求导: \[ I'(b) = -\int_0^\infty x e^{-x^2} \sin(bx) \, dx \] 通过分部积分, 我们可以得到关于 \(I(b)\) 的微分方程: \[ I'(b) = -\frac{b}{2} I(b) \] 解这个微分方程并利用 \(I(0) = \frac{\sqrt{\pi}}{2}\), 我们可以得到 \(I(b) = \frac{\sqrt{\pi}}{2} e^{-b^2/4}\).

5. 推广的费曼技巧 (变限积分) 到目前为止, 我们只看到参数在被积函数内部时的费曼技巧, 但当积分限也被参数化时, 它也可以使用. 更一般地, 莱布尼茨法则如下: \[ \frac{d}{db} \int_{g(b)}^{h(b)} f(x, b) \, dx = f(h(b), b)h'(b) - f(g(b), b)g'(b) + \int_{g(b)}^{h(b)} \frac{\partial f}{\partial b} \, dx \]

6. 使用费曼技巧生成积分 现在我们将看看一种使用费曼技巧的花哨方式, 特别是为了生成新的积分. 我们考虑: \[ \int_0^\infty \frac{1}{x^2+a} \, dx = \frac{\pi}{2\sqrt{a}} \] 对 \(a\) 求导可以生成 \(\int \frac{1}{(x^2+a)^2} dx\) 等更高次幂的积分结果.

6. 费曼技巧实战 (Feynman's trick in practice)

在这最后一章中, 我们将深入研究一些" 现实世界" 的积分, 并观察费曼技巧如何适应它们. 此外, 我们将尝试建立一些启发式方法, 帮助我们将积分处理到可以引入有用参数的程度.

1. 打破规则 在第二章中, 我们观察到参数化积分使其简化积分的某些部分可以让事情更直观. 然而, 我们总是可以寻找更好的方法, 特别是当我们的方法看起来不够优雅时. 例如, 遇到三角函数时, 在参数化之前进行换元(如 \(u = \tan x\) 或 \(u = \sin x\))可能更有利.

2. 切换到有理函数 也许这只是个人偏好, 但对我来说, 处理有理函数往往能更清晰地看到如何参数化积分. 经验法则: 尽量使用有理函数, 因为它们通常提供最高的可视性. 例如使用万能公式代换 \(t = \tan(x/2)\).

3. 清理函数 在参数化积分之前, 先尽可能清理干扰函数是非常有用的. 例如, 如果有多余的反正切函数, 可以尝试通过分部积分或拆分将其转化为有理形式.

4. 准备更好的积分限 在使用费曼技巧之前, 另一个有用的考虑是操纵积分限, 以便在参数化之前摆脱 \(I'(b)\) 中的任何复杂函数. 这几乎总是会给出一个更平滑, 更容易" 撤销" 的积分. 通常, 将积分限转换为 \([0, 1]\) 或 \([0, \infty)\) 是比较理想的.

5. 多重参数 我们主要熟悉通过引入一个参数来应用费曼技巧, 然而有时在遇到新积分时甚至可以使用多个参数. \[ \int_0^1 \frac{x^a - x^b}{\ln x} \, dx = \ln\left(\frac{a+1}{b+1}\right) \] 这可以通过引入两个参数来生成.

6. 级联费曼技巧 有时为了启用费曼技巧的应用, 我们实际上需要应用另一个费曼技巧(Trick within a trick). 这意味着在计算 \(I'(b)\) 时, 可能需要再次使用该技巧来求解该积分.

虽然这是文章的结尾, 但这并不是一个静态网站, 当我遇到值得展示的新的有趣积分时, 我可能会更新它. 到目前为止, 这些积分来自我在 Mathematics Stack Exchange 上的帖子, 结合了一些最流行的积分.

为了进一步练习, 我建议你探索数学论坛和杂志, 如 Art of Problem Solving, Mathematics Stack Exchange, The American Mathematical Monthly 等, 那里经常发布许多迷人的积分.

如果在这个文章中发现任何错误或有不清楚的地方, 请通过电子邮件 (rxzacky@gmail.com) 通知我, 如果有进一步的想法或建议就更好了.

此作品根据 Creative Commons Attribution 4.0 International License 许可, 可以引用为: Zaharia Burghelea, "Feynman's Trick," https://zackyzz.github.io/feynman.

Date: 2025-11-30

Author: Zaharia Burghelea (翻译: Gemini)

Created: 2025-11-30 日 11:55