跳到正文
格致开物MATHWIKI

格林函数

格林函数(Green's function)是线性微分方程在指定初始条件或边界条件下,对单位点源的响应。把一般外源分解成许多点源,再叠加它们的响应,就能把求解微分方程转化为积分。格林函数由算子、区域和条件共同决定;同一个微分表达式换了边界,通常也要换一个格林函数。

一根两端固定的弦

考虑一根拉紧的细弦,只研究小挠度下的静态位移。选取适当的长度和力的尺度,把弦长与恒定张力都归一化为一,令 u(x) 表示横向位移,f(x) 表示横向分布载荷,模型为 −u″(x)=f(x),0<x<1,u(0)=u(1)=0. 两端的位移为零,因此外力造成的弯曲还必须与固定端相容。这里的负号来自所选受力方向;以下所有公式均对应算子 L=−d2/dx2。恢复有量纲形式时,张力 T 为常数的方程是 −Tu″=f,不能把归一化后的核直接当成任意材料、任意张力下的位移。

先把一个总量为一的集中力施加在 x=ξ,其中 0<ξ<1。除受力点外没有载荷,所以弦的左右两段都是直线;受力点处弦连续,却会出现斜率突变。把这条折线记为 G(x,ξ):第一个变量是观察位置,第二个变量是施力位置。这个一维例子能直接显示格林函数的构造;一般算子的点源响应及其叠加形式见 MIT 的格林函数讲义。[1]

施力点分别为三分之一和三分之二时的三角形响应,两端都为零,折点随施力位置移动
单位点源的响应随源的位置改变。实线对应 ξ=1/3,折点高度为 2/9;折点处变的是斜率,函数值保持连续。

点源与斜率跳跃

单位点源用狄拉克 delta δξ 表示。它不是在一点取“无穷大”的普通函数,而是一种对光滑测试函数取值的规则: ∫δξ(x)φ(x)dx=φ(ξ). 这一记号把“集中在一点、总量为一”写进了积分。格林函数满足 −Gxx(x,ξ)=δξ(x),G(0,ξ)=G(1,ξ)=0, 其中方程在分布意义下理解。对一个包住 ξ 的小区间积分,有 −[Gx(ξ+ε,ξ)−Gx(ξ−ε,ξ)]=1. 令区间缩小,得到跳跃条件 Gx(ξ+,ξ)−Gx(ξ−,ξ)=−1. 在本问题中,G 还必须连续。若 G 自身有非零跳跃,二阶分布导数会产生 delta 的导数,而右侧只有 delta;两者不能相等。

由端点条件,两段直线可写成 G(x,ξ)={Ax,0≤x≤ξ,B(1−x),ξ≤x≤1. 连续性给出 Aξ=B(1−ξ),斜率跳跃给出 −B−A=−1。解这两个方程可得 A=1−ξ、B=ξ,所以 G(x,ξ)={x(1−ξ),x≤ξ,ξ(1−x),x≥ξ. 也可以合写为 G(x,ξ)=min⁡(x,ξ)[1−max⁡(x,ξ)]。例如 ξ=1/3 时,左斜率为 2/3,右斜率为 −1/3,两者之差恰好是 −1。由表达式还能看出 G(x,ξ)=G(ξ,x):在这个自伴边值问题里,交换施力位置与观察位置,响应相同。

从点源叠加到积分解

对连续载荷 f,长度为 Δξ 的一小段载荷总量约为 f(ξ)Δξ。线性性使它在观察点的响应约为 G(x,ξ)f(ξ)Δξ。把小段相加并取极限,得到 u(x)=∫01G(x,ξ)f(ξ)dξ. 这个公式可以不依赖对 delta 的形式运算来严格核验。按 ξ=x 拆开积分,令 A(x)=∫0xξf(ξ)dξ,B(x)=∫x1(1−ξ)f(ξ)dξ, 则 u(x)=(1−x)A(x)+xB(x). 微积分基本定理给出 A′(x)=xf(x)、B′(x)=−(1−x)f(x)。第一次求导时,两个来自积分端点的项正好相消: u′(x)=−A(x)+(1−x)xf(x)+B(x)−x(1−x)f(x)=−A(x)+B(x). 再求导便有 u″(x)=−xf(x)−(1−x)f(x)=−f(x). 两端积分式均为零,因此方程和边界条件全部满足。若有另一个解,两解之差 w 满足 w″=0 和两个零端点;仿射函数只有取零才满足这些条件,所以解唯一。这一证明同时说明积分表示给出的确实是该边值问题的逆,而不仅是一个近似。

逐步算例:向右增大的载荷

取教学载荷 f(x)=6x,它的总载荷为 ∫016xdx=3。代入刚才的两个积分: A(x)=∫0x6ξ2dξ=2x3, B(x)=∫x1(6ξ−6ξ2)dξ=1−3x2+2x3. 因此 u(x)=2x3(1−x)+x(1−3x2+2x3)=x−x3. 在中点 u(1/2)=3/8。最大位移并不恰在载荷最大的右端:右端被固定,位移为零。由 u′=1−3x2 可知,最大值位于 x=1/3,为 2/(33),约为 0.3849。

精确解x减x的三次方与用四个和十六个中点载荷叠加得到的折线比较,所有曲线在两端为零
积分把一族点源响应加起来。四个中点的近似仍可辨认折角,十六个中点更接近光滑的精确解;曲线峰值在 1/√3 附近。

若只想用有限个点源近似,可把区间分成 m 段,取中点 ξj=(j−1/2)/m,计算 um(x)=1m∑j=1mG(x,ξj)6ξj. 这里乘以 1/m 是因为 6ξj 是载荷密度,不是这一段的总载荷。漏掉段长会使总载荷随取点数增加,近似便不再代表同一个问题。图中的比较使用相同载荷和同一组边界,改变的只有积分近似的精细程度。

边界数据与可逆性

若端点改为 u(0)=a、u(1)=b,先取满足端点的仿射函数 h(x)=a(1−x)+bx。由于 h″=0,差 u−h 仍满足刚才的零边界问题,于是 u(x)=a(1−x)+bx+∫01G(x,ξ)f(ξ)dξ. 这解释了齐次边界核怎样用于非齐次数据,而不是把非零边界直接忽略。

若改成两个零导数条件 u′(0)=u′(1)=0,情况不同。对方程积分即得 ∫01f(x)dx=−u′(1)+u′(0)=0. 所以 f=1 根本没有解;即使相容条件满足,解加上任意常数仍是解。此时算子没有唯一的逆,必须另给平均值等归一化,并使用相应的广义格林函数。格林函数的存在与唯一性因此与原问题的可解性联系在一起。一般区域上,边界修正与积分表示的关系见 Stanford 的讲义。[2]

基本解、核与不同变量的含义

基本解通常先在全空间满足点源方程,尚未加入具体边界。对一维算子 −d2/dx2,−|x−ξ|/2 就有正确的导数跳跃,但一般不在区间两端为零;补上适当的仿射函数才得到上文的 G。因此,能满足点源方程还不足以保证能用于某个边值问题。

在热方程中,点源响应还与经过的时间有关。全实线、扩散率 κ>0 的热核为 K(x−ξ,t)=14πκtexp⁡[−(x−ξ)24κt],t>0. 固定正时间时,它是一个光滑函数;当 t↓0,它在积分意义下恢复单位点源,而不是逐点收敛到普通函数。初始分布 u0 的响应可写成 ∫ℝK(x−ξ,t)u0(ξ)dξ,适用时须检查初值增长及积分的收敛。静态弦上的核与这里的热核都表达线性响应,但各自处理的变量、条件与物理量不同。

一般写成 LxG(x,ξ)=δξ 时,下标 x 强调算子作用在观察变量上。对于非自伴算子,不能自动交换 x 与 ξ;对于非线性方程,点源响应也通常不能按此方式直接叠加。把一个问题变成积分的前提,正是已经确定的线性结构及相容条件。

相关条目

参考文献

  1. ↑ Steven G. Johnson,MIT 18.303,Introduction to Green's functions,单位源响应及一维 Dirichlet 边界的例子。访问日期:2026-10-20。
  2. ↑ Stanford Math 220B,Green's Functions,Dirichlet 格林函数、基本解与边界积分表示。访问日期:2026-10-20。