JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

基本解与镜像法

先回答最简单的那个问题——单次点状的戳击如何在无限空旷的空间中散开?这个赤裸裸的响应就是基本解;一旦你掌握了拉普拉斯算子、热算子和波算子的基本解,一个奇妙而物理的技巧——镜像法——便让你通过在平直墙壁之外放置镜像源来满足边界条件。

先把墙壁剥掉

前几篇指南讲了本级的核心思想:要解一个线性问题 L u = f,先回答一个更干净的问题——系统对单次、无限集中的戳击如何响应?这个响应就是格林函数 G,由 L G(x, s) = delta(x - s) 连同边界条件所定义,于是叠加积分 u(x) = integral of G(x, s) f(s) ds 便能把所有点源响应相加,构建出对任意载荷的答案。但那个定义里藏着一个狡猾的困难:G 必须同时满足右端的 delta 边界条件,而边界条件通常才是难的那部分。所以我们把活儿拆成两半。

前一半完全无视墙壁。问:在无限、毫无特征的空间里——四处都没有边界,只要求场在远处合理地衰减——算子对单个点源做了什么?这个赤裸裸的答案就是[[fundamental-solution|基本解]],而把它看作源点 s 与场点 x 的函数时,便是[[free-space-greens-function|自由空间格林函数]],记作 G_free。它是整门学问里最纯粹的建筑砖块:一个无限、空旷的介质被你戳一下时所做的事。每个算子只需把它造出来一次,便可永远复用。后一半——把墙壁装回去——正是镜像法所处理的,而它是靠巧妙地叠放这同一个自由空间对象的若干副本来做到的。

拉普拉斯算子:点电荷的势

从最有名的那个开始。算子是 L = -nabla^2,负拉普拉斯算子,它的源方程 -nabla^2 G = delta(x - s) 不过是放在 s 处的单位点电荷的泊松方程。在电荷之外什么都没有,所以除源点外 G 必须处处满足拉普拉斯方程 nabla^2 G = 0。由对称性,场只能依赖于到电荷的距离 r = |x - s|,而径向拉普拉斯算子逼出一个唯一的衰减形状。在三维中答案是 G_free = 1/(4 pi r)——那个你见过十几次的、熟悉的库仑势、引力势、自然界的 1/r 定律。现在你知道 4 pi 是从哪来的了:它正是让单位源恰好涌出的那个因子,单位球面的面积。

维数很要紧,而且它要紧的方式值得在脑中描画。在二维中同样的逻辑给出 G_free = -(1/(2 pi)) ln r——一个对数,而不是幂。注意它随 r 增大而无界地增长,而不是衰减下去;平面世界里的影响从不完全消退,这是二维势论一个真实而略带不安的特征。在一维中,-d^2/dx^2 的基本解是帐篷函数 -(1/2)|x - s|,朝源点一路直线上升、离开它一路直线下降。三个形状——一顶帐篷、一个对数、一个 1/r 衰减——而每一个都恰恰是当你把球面面积如何随维数缩放计入后、那个 delta 所逼出的结果。

热算子与波算子:一团弥散的斑与一层膨胀的壳

现在加进时间。对热算子 L = d/dt - k nabla^2,基本解回答一个生动的问题:在 t = 0 时刻于一点注入一个单位的热脉冲,然后看着。答案是热核,那个高斯函数 G_free = (4 pi k t)^{-n/2} exp(-r^2/(4 k t))(对时间 t > 0),一团以源点为中心的钟形斑。在最初那一刻它是一根无限高、无限窄的尖峰(就是 delta 本身);下一刻它是一个光滑、有限的鼓包;此后永远地铺开、摊平,其宽度像 sqrt(t) 那样增长。这正是一滴落入静水的染料如何模糊散开的精确数学,而那高斯形状绝非巧合——它就是支配随机游走的同一条钟形曲线,因为热扩散就是无数随机微观碰撞的极限。

一个值得留意的诚实皱褶:那个高斯函数对每个 t > 0(无论多小)处处严格为正。这意味着你此刻一划火柴,银河系另一端的温度便升高一个荒谬地微小、却非零的量。热方程以无限速度传播影响——一个已知的理想化,对工程足够好,物理上却只是近似。波算子 L = d^2/dt^2 - c^2 nabla^2 则截然相反。在三维中它的基本解不是一团弥散的斑,而是一层无限薄、向外膨胀的球壳:原点处的一闪,只在球面 r = c t 上被感觉到,球内一概感觉不到。一记尖锐的拍击抵达你、掠过、便消失了,身后留下寂静——光与声服从严格的速度上限,并在过后干净利落。

这里藏着一个奇妙而可爱的转折,把它点出来才诚实。那个干净的膨胀球壳画面——一闪尖锐地抵达又离去、留下寂静——在个空间维度成立,在每一个奇数维度也成立。在维它失效了:平面世界里的一闪,在波前抵达时被尖锐地感觉到,但随后留下一条缓缓消退、却永不彻底归零的尾巴,就像池塘上的涟漪,在领头的圆环掠过很久之后仍在颤动。这正是著名的区别:奇数维中的「干净」传播,与偶数维中拖泥带水的「尾迹」。这也是我们安然栖居于三维的一个原因:一个回声从不干净停止的世界,会把言语和视觉搅成一团模糊。

镜像法:用一个幽灵替换一堵墙

现在把墙装回去。设有一个点电荷,坐在一块平直接地金属平面之上、高度为 z 处(该平面保持电位为零——一个狄利克雷边界条件)。你想要平面上方那个半空间的格林函数:它必须在正确的位置带有点源,并且在平面上为零。正面去解那个边值问题看起来很惨。[[method-of-images|镜像法]]是一条华丽的捷径。假装那堵墙根本不在。然后,在墙原先所在位置的另一侧,放置一个虚构的镜像电荷——同样强度、相反符号——放在镜像位置上,与真实电荷在平面之上的距离相等地位于平面之下。

为什么这管用?在平面本身上,每一点到真实电荷与它镜像的距离都恰好相等,于是真实电荷的正势与镜像的负势完美抵消——沿整个平面,总和自动为零,毫不费力。狄利克雷条件白白地被满足了。而这里有一笔关键的记账:镜像电荷住在平面之下,在我们真正关心的区域之外,所以在半空间内部,它贡献的无非是拉普拉斯方程的一个光滑解——它不会在我们观察之处添上任何多余的源。楼上那个真实的点源原封未动,墙被满足了,我们就完工了。格林函数就是 G = 1/(4 pi |x - s|) - 1/(4 pi |x - s_image|),真实源的自由空间核减去它镜像的同一个核。

Half-space  z > 0,  Dirichlet wall at  z = 0  (potential = 0 on the wall)

   real source  s = (a, b, c),  c > 0
            *  +1                          field point x
            |                                  o
  __________|__________________________________  wall  z = 0
            |
            *  -1   (image at s' = (a, b, -c), opposite sign)

   G(x, s) = 1/(4 pi |x - s|)  -  1/(4 pi |x - s'|)

   On the wall, |x - s| = |x - s'|  =>  G = 0  automatically.

Variants by reflecting the SAME free-space kernel:
   Neumann wall (insulated, dG/dn = 0):  use a +1 image (same sign)  -> potentials ADD
   Slab  0 < z < L  (two parallel walls):  infinitely many images, reflected again and again
   Right-angle corner / wedge of angle pi/n:  a finite ring of 2n alternating images
   Sphere of radius R:  one image of strength -R/d at the inverse point  R^2/d  (Kelvin)
平直狄利克雷墙的镜像构造,以及同一思想如何变通:诺伊曼(绝热)墙用一个同号镜像,于是被抵消的是法向导数而非取值;两堵平行墙需要一列无穷多的镜像;一个球面则需要在反演点处放一个经过巧妙加权的镜像。

镜像能走多远——以及它在哪里止步

同样的技巧能适配一整族对称情形,而一旦你看出其中的模式,适配的规则便很直观。改变边界条件,你就改变镜像的符号:接地墙(狄利克雷,取值为零)要一个反号镜像,好让两个势在墙上抵消;绝热墙(诺伊曼,法向导数为零——没有热或通量穿过它)要一个同号镜像,好让场平直地抵达墙、跨墙斜率为零,像一个球径直弹回。边界完美绝热的热传导、一端固定或自由的振动弦、靠近导体的电荷——全都是同一个反射思想换了身衣裳。

改变几何,你就改变需要多少个镜像。一堵平墙要一个镜像。两堵平行墙(一块平板,或一根两端夹紧的弦)需要一列无穷:每个镜像本身又必须在另一堵墙里被反射,来回弹个不停,生出一条没有尽头的镜像线——而令人满意的是,这正是吉他弦那些离散谐波的来源。一个夹角为 pi/n 的尖楔(直角角是 n = 2)需要绕着角排布的、由 2n 个正负交替镜像构成的有限环。一个球面也只要一个镜像,但要由开尔文反演放在沿半径方向 R^2/d 的点上、并以 -R/d 加权——一种更微妙的反射,却仍然只是单独一个幽灵。

  1. 为你的算子把自由空间格林函数造出来一次——三维 -nabla^2 是 1/(4 pi r),热算子是高斯热核,波算子是膨胀的球壳。
  2. 把真实源跨每一道平直边界反射,求出镜像位置;对球面则用开尔文反演点 R^2/d。
  3. 按边界条件选定每个镜像的符号与强度:狄利克雷(取值为零)墙用反号,诺伊曼(绝热)墙用同号。
  4. 把真实源与所有镜像的自由空间核相加;镜像的奇点都落在区域之外,于是在区域内部你恰好得到你想要的那个点源,而边界自动被满足。

不过要诚实地说出它的天花板,因为那是真实的。镜像法在适用之处是精确的——没有近似、没有截断误差,那个闭式答案是确确实实正确的。但它只适用于那些足够对称、使得一组有限的(或至少是干净可求和的无穷的)反射源能够再现边界条件的边界:平面、球面、特殊的楔形、圆盘。对一般的弯曲或坑洼边界,并不存在这样的镜像集合,这个技巧就是不适用。那时你便退回到本级其余部分所搭建的方法——格林函数的本征函数展开,它由区域的固有模态把 G 装配起来,以及最终的数值求解器。镜像是那个优雅的特例;本征函数展开才是通用的引擎。