格林函数
格林函数是求解线性微分方程定解问题的重要工具。它本质上描述了系统对一个点源的响应。让我们从最基本的物理和数学概念开始,逐步构建对格林函数的完整理解。
第一步:物理直观——点源响应
想象一个简单的物理场景:一个静止的平整桌面,在其上某一点放置一个重物。这个重物会使桌面产生一个局部的形变。格林函数回答的就是这样一个问题:如果在位置 \(\mathbf{r}'\) 施加一个单位强度的点源(如点电荷、点质量、点热源),那么在空间任意其他位置 \(\mathbf{r}\) 观测到的响应(如电势、引力势、温度)是多少? 这个响应函数就是格林函数,通常记为 \(G(\mathbf{r}, \mathbf{r}‘)\)。
格林函数的核心思想是线性叠加原理。如果一个系统是线性的,那么它对复杂分布源的总响应,可以看作是系统对所有组成这个复杂分布的“点源”的响应的简单叠加(积分)。
第二步:从一般问题到格林函数的引入
考虑一个一般的线性偏微分方程:
\[\mathcal{L} u(\mathbf{r}) = f(\mathbf{r}) \]
其中:
- \(\mathcal{L}\) 是一个线性微分算子(例如拉普拉斯算子 \(-\nabla^2\),亥姆霍兹算子 \(\nabla^2 + k^2\),或者热传导算子 \(\frac{\partial}{\partial t} - D\nabla^2\))。
- \(u(\mathbf{r})\) 是我们要求的未知函数(如电势、温度分布)。
- \(f(\mathbf{r})\) 是已知的源项(如电荷密度、热源密度)。
我们的目标是求解 \(u(\mathbf{r})\)。格林函数方法是为此方程定义一个相关的、更简单的方程:
\[\mathcal{L} G(\mathbf{r}, \mathbf{r}’) = \delta(\mathbf{r} - \mathbf{r}’) \]
这个方程称为格林函数所满足的方程。这里:
- \(\delta(\mathbf{r} - \mathbf{r}’)\) 是狄拉克δ函数,它代表了在 \(\mathbf{r}’\) 处的一个单位强度的点源。
- \(G(\mathbf{r}, \mathbf{r}‘)\) 就是对应于算子 \(\mathcal{L}\) 和所给边界条件的格林函数。
第三步:利用格林函数构造解
一旦我们找到了格林函数 \(G(\mathbf{r}, \mathbf{r}‘)\),原方程的解 \(u(\mathbf{r})\) 就可以通过积分直接构造出来。其原理基于δ函数的筛选性质和线性叠加原理。
- 将任意源 \(f(\mathbf{r})\) 看作是许多点源的叠加:
\[ f(\mathbf{r}) = \int f(\mathbf{r}’) \delta(\mathbf{r} - \mathbf{r}’) d\mathbf{r}’ \]
这个积分表示在每一个点 \(\mathbf{r}’\) 都有一个强度为 \(f(\mathbf{r}’)\) 的点源。
-
由于算子是线性的,系统对总源 \(f(\mathbf{r})\) 的响应,应该是系统对所有点源 \(f(\mathbf{r}’)\delta(\mathbf{r} - \mathbf{r}’)\) 的响应的叠加。而系统对一个位于 \(\mathbf{r}’\) 的单位点源 \(\delta(\mathbf{r} - \mathbf{r}’)\) 的响应正是 \(G(\mathbf{r}, \mathbf{r}‘)\)。因此,对于强度为 \(f(\mathbf{r}’)\) 的点源,其响应是 \(f(\mathbf{r}’) G(\mathbf{r}, \mathbf{r}‘)\)。
-
将所有点源的响应叠加(积分),就得到了总响应 \(u(\mathbf{r})\):
\[ u(\mathbf{r}) = \int f(\mathbf{r}’) G(\mathbf{r}, \mathbf{r}’) d\mathbf{r}’ \]
我们可以验证这个形式的正确性:将 \(u(\mathbf{r})\) 代入原方程 \(\mathcal{L} u(\mathbf{r})\),利用 \(\mathcal{L}\) 是作用于变量 \(\mathbf{r}\) 的算子,可以移到积分号内,并利用格林函数的定义 \(\mathcal{L} G(\mathbf{r}, \mathbf{r}’) = \delta(\mathbf{r} - \mathbf{r}‘)\),最终得到:
\[ \mathcal{L} u(\mathbf{r}) = \int f(\mathbf{r}’) \mathcal{L} G(\mathbf{r}, \mathbf{r}’) d\mathbf{r}’ = \int f(\mathbf{r}’) \delta(\mathbf{r} - \mathbf{r}’) d\mathbf{r}’ = f(\mathbf{r}) \]
验证通过。
第四步:边界条件的处理
上面的讨论隐含了一个关键点:格林函数 \(G(\mathbf{r}, \mathbf{r}‘)\) 本身也必须满足特定的边界条件。原问题 \(\mathcal{L} u = f\) 的定解需要边界条件(如狄利克雷边界条件 \(u|_{\text{边界}} = 0\) 或诺伊曼边界条件 \(\partial u/\partial n|_{\text{边界}} = 0\))。为了确保我们构造出的解 \(u(\mathbf{r})\) 也满足这些边界条件,我们要求格林函数满足齐次的同类边界条件。
- 对于狄利克雷问题:要求 \(G_D(\mathbf{r}, \mathbf{r}‘)|_{\mathbf{r} \in \text{边界}} = 0\)。
- 对于诺伊曼问题:要求 \(\frac{\partial G_N}{\partial n}(\mathbf{r}, \mathbf{r}’)|_{\mathbf{r} \in \text{边界}} = 0\)(注意,对于诺伊曼问题,解的存在性要求对源函数有积分约束,格林函数也需相应调整)。
第五步:一个经典例子——泊松方程的格林函数
考虑自由空间的泊松方程:
\[-\nabla^2 u(\mathbf{r}) = f(\mathbf{r}) \]
其对应的格林函数方程(满足自由空间辐射条件)为:
\[-\nabla^2 G(\mathbf{r}, \mathbf{r}’) = \delta(\mathbf{r} - \mathbf{r}‘) \]
由于自由空间的平移和旋转对称性,格林函数只依赖于观测点与源点之间的距离 \(R = |\mathbf{r} - \mathbf{r}’|\),即 \(G = G(R)\)。通过求解这个方程(例如,在球坐标系下利用δ函数的性质),可以得到三维自由空间的格林函数为:
\[G(\mathbf{r}, \mathbf{r}’) = \frac{1}{4\pi |\mathbf{r} - \mathbf{r}’|} \]
这正是我们所熟悉的点电荷电势公式(库仑定律)。于是,任意电荷分布 \(f(\mathbf{r})\) 产生的电势为:
\[u(\mathbf{r}) = \int \frac{f(\mathbf{r}’)}{4\pi |\mathbf{r} - \mathbf{r}’|} d\mathbf{r}’ \]
这个例子完美地体现了格林函数的物理意义:它将一个复杂的微分方程求解问题,转化为了一个(可能仍然复杂但概念上更清晰的)积分问题。求解一个特定问题的难度,就从求解原微分方程转移到了寻找满足特定边界条件的格林函数上。