每个非齐次方程背后的问题
退后一步,看看整本书里几乎每一个方程真正在问什么。有一个线性微分算子 L——它接过一个函数,按一套固定的、线性的配方去微分它,比如振动弦的 L = d^2/dx^2 + k,或者稳态温度的拉普拉斯算子 nabla^2。有一个源 f(x)——驱动、负载、被泵入的热、安放在空间里的电荷。而方程 L u = f 在问:给定这个源,系统会安顿到什么样的响应 u?一个非齐次方程的全部戏剧性就在于:右边的 f 不为零;有什么东西在驱动这个系统,而我们想要它产生的答案。
你已经有好几种方法可以攻克这类方程。本书前面你学过参数变易法、拉普拉斯变换和傅里叶方法——每一种都是一台机器,把某个特定的 f 碾成它特定的 u。但其中每一种,换一个新的 f 重跑,都得从头碾起。格林函数提出一个更尖锐、更慵懒、也远更优美的问题:是否存在一个普适的对象,对算子 L 及其边界只算一次,就让我们能为任意源写出答案、而无需再解一遍方程?本篇要引出的惊人事实是:能。
把源拆成一百万次微小的戳
下面这幅画让整个思想变得不可避免。暂且忘掉古怪的源,把 f(x) 想成压在一根绷紧的弹性梁上的载荷。现在做一件物理上很自然的事:把梁切成许多薄片,并把每一片上的载荷当作就在那一片位置上的一次集中推力。一个光滑的分布载荷于是变成密密一排彼此分开的小戳,每一戳在它自己的点上、各有自己的强度。只要切片足够薄,所有这些孤立的戳加起来,就能把原来的光滑载荷复现得任你要多准有多准——这恰恰是你从第一卷起就信赖的黎曼和的精神,那里的积分正是靠切片再相加搭起来的。
现在是关键的一步。因为 L 是线性的,梁对整个载荷的响应,等于它对每一次单独的戳的响应之和。没有串扰,没有干涉:线性系统对「若干原因之和」的回答,就是「各个回答之和」。这就是叠加原理,整套方法所立足的那一条性质。于是,只要我知道梁对一次位于任意点的标准戳的响应,我就能把构成真实载荷的所有小戳的响应加起来——积分起来——得到对真实载荷的响应。为复杂的 f 求解 L u = f 这个问题,悄悄变成了一个单一而更简单的问题:找出对一次孤立的戳的响应。
什么是一次完美尖锐的戳?
要把「一次孤立的戳」说精确,我们需要一个数学对象,代表把一单位的源整个挤到单独一个点上。这个对象就是 [[dirac-delta-function|狄拉克 delta]],写作 delta(x - x')。把它想成一段宽度为 epsilon 的微小切片上分布的载荷的极限:保持总量固定为 1,同时把宽度往零里挤,于是高度暴涨。在极限处这道尖峰无穷高、无穷窄,整个坐落在 x = x' 这一点上,而它的总含量——delta(x - x') 对所有 x 的积分——恰好仍是 1。它是「整整一单位的东西、全在一个点上」的理想化。
筛选法则恰恰是把我们的切片图景化为精确代数的工具。它说,任何源 f 都能写成点源的连续叠加:f(x) = integral of f(x') delta(x - x') dx'。慢慢读这一句——它声称 f 就是在所有位置 x' 上、各以局部强度 f(x') 加权的 delta 尖峰之和(积分)。这就是「切成戳」的图景被做到精确、再没有剩下任何近似。delta 是那一次完美的戳;积分则是把无穷多个戳铺下去、各自缩放以拼出 f 的动作。
格林函数:对一次戳的响应
现在可以为主角命名了。[[greens-function|格林函数]] G(x, x') 被定义为系统对放在点 x' 处的一次单位戳的响应。用符号写,它是 L G(x, x') = delta(x - x') 的解,其中 L 作用于第一个变量 x,而第二个变量 x' 只标记戳坐落在哪里。于是 G(x, x') 回答一个精确的问题:「若我用一个位于 x' 的完美点源去驱动算子 L,它在每个观测点 x 处读出的响应是什么?」对一个给定的算子与边界,这样的 G 只有一个——一份为每一个可能的源位置 x' 都编好目录的点源响应。
这里有一条要紧的小字:仅凭方程 L G = delta 还钉不死 G。算子 L 本身有许多解(回想齐次方程 L u = 0 自有一族解,你总能把它加上去)。把那一个格林函数挑出来的,是 G 还必须满足与你所解问题相同的边界条件——夹死的两端、绝热的边、在无穷远处衰减。因此格林函数与它的边值问题密不可分:换了边界,就换了 G。它编码的不只是算子,还有系统所栖身的那间「房间」。
叠加拼出答案:一个积分
现在看那两半「咔」地扣在一起,因为这就是回报所在。我们把源写成了点戳的叠加,f(x) = integral of f(x') delta(x - x') dx'。而对每一次单独的戳 delta(x - x') 的响应,按定义就是格林函数 G(x, x')。由线性——又是叠加——对 f 的响应,就是那些各自响应的同一种叠加,每一个都以同样的强度 f(x') 加权。结果便是[[superposition-integral|叠加积分]],整门学问的总公式:u(x) = integral of G(x, x') f(x') dx'。
THE LOGIC IN FOUR LINES
(1) Solve once: L G(x, x') = delta(x - x'), G obeys the boundary conditions
(2) Split the source: f(x) = integral f(x') delta(x - x') dx' (sifting property)
(3) Apply L u = f and pull L through the integral (L acts on x, not x'):
L u(x) = integral f(x') [ L G(x, x') ] dx' = integral f(x') delta(x - x') dx' = f(x)
(4) So a solution is: u(x) = integral G(x, x') f(x') dx'
One precomputed G -> the answer for EVERY source f, by a single integration.在这条公式上多停留一会儿,因为它确实了不起。最难的活儿——真正去解一个微分方程、对付算子与边界——只发生一次,就在求 G 的时候。此后,任何源 f,无论多丑,都靠一次积分搞定。梁上来了新的载荷、换了不同的热输入、另一种电荷分布:你再也不去碰那个微分方程;只把新的 f 对那同一个老 G 积分一下。格林函数就是算子的「响应指纹」,算一次,无限次复用。这正是本级承诺所指向的优雅:知道对一次尖锐戳的响应,你就知道了对一切的响应。
诚实的边界,以及穿越本级的路
把这些诚实的小字放在眼前,你才能正确地驾驭它。其一,整套方法立足于线性——叠加是那面承重墙,而一个非线性算子(把源加倍、响应却不加倍的那种)在这个意义上根本没有单一的格林函数。其二,公式给出的答案,是源在尊重边界的前提下所强迫出的响应;若你的问题本身还带着非零的边界数据或初始数据,那些会贡献额外的部分(一个单独处理的齐次部分),后面的指南会小心地把它们加进来。其三,G 的存在与良好性态并非自动——它们要求边值问题被恰当地提出,而某些共振情形(L u = 0 有满足边界的非零解时)需要特别小心。
关于 delta 本身还有一句诚实话:因为它是分布、不是函数,方程 L G = delta 要在分布的意义下理解,而 G 通常会在 x = x' 处带一个折角——斜率的一个跳变——那是无穷集中的源留下的疤。这个折角不是缺陷;它是那一次单位戳的可见标记,而精确算出它该有多大,正是构造 G 的标准配方,下一篇指南将把它完整走一遍。我们在这里搭起了思想;真正去求出 G 的机器,紧随其后。
- 认出形态:你的问题是 L u = f,带一个线性算子 L、一个源 f 和边界条件——这正是格林函数的天然归宿。
- 把点源问题解一次:求满足 L G = delta(x - x') 且服从相同边界条件的 G(x, x')。
- 对真实的源,靠一次积分拼出答案:u(x) = integral of G(x, x') f(x') dx'。
- 把满足非零边界或初始数据所需的任何齐次部分补回去,你就得到了完整的解。