Chapter 18 偏微分方程 {PDE}
常微分方程(ODE) 的时候我们更多是关于时间的导数。偏微分方程(partial differential equation) 则不仅仅是与时间相关,加上了与空间位置相关的一些信息。
18.1 解
当 ODE 满足 利普希茨连续(Lipschitz continuity),我们就可以有唯一解。但是 PDE 我们可能并没有这样好的性质,我们不知道它是否应该有解,很多时候也许我们就是用有限元方法(finite element method)来模拟,如果看到的结果还不错的话,我们就当这个就是它的解,o(╯□╰)o
18.2 运算符
首先需要搞清楚: 梯度、散度、旋度、拉普拉斯 运算符:
f:R3→R,→v:R3→R3Gradient: ∇f=(∂f∂x1,∂f∂x2,∂f∂x3)Divergence: ∇⋅→v=∂v1∂x1+∂v2∂x2+∂v3∂x3Curl: ∇×→v=(∂v3∂x2−∂v2∂x3,∂v1∂x3−∂v3∂x1,∂v2∂x1−∂v1∂x2)Laplacian: ∇2f=∂2f∂x1+∂2f∂x2+∂2f∂x3
运算符 operator | 运算量 operand | 结果 result |
---|---|---|
梯度 Gradient | 多元函数 Multivariate function f:R3→R | 矢量 Vector R→R3 |
散度 Divergence | 矢量场 Vector Field →v:R3→R3 | 纯量 scalar R3→R |
旋度 Curl | 矢量场 Vector Field →v:R3→R3 | 矢量场 Vector Field R3→R3 |
拉普拉斯 Laplacian | 多元函数 Multivariate function f:R3→R | 纯量 scalar R3→R |
关于 梯度、散度、旋度 以及 拉普拉斯可以理很久,如果需要复习,可以参见之前我写过的两篇:
在 物理 有关的偏微分方程中,如果函数是 f(t;x,y,z), 当我们写到 nabla 运算符是 ∇=(∂∂x,∂∂y,∂∂z) ,是与 t 无关的。
18.4 麦克斯韦方程组 Maxwell’s equations
最最出名的 PDE 应该是 - 麦克斯韦方程组: Gauss's law: ∇⋅E=ρε0Gauss's law for magnetism: ∇⋅B=0Maxwell–Faraday equation: ∇×E=−∂B∂tAmpère's circuital law: ∇×B=μ0(J+ε0∂E∂t)
18.5 拉普拉斯方程 Laplace’s equation
拉普拉斯方程非常出名, 形式简单:
∇2f(→x)=0 它是泊松方程的特殊形式。
拉普拉斯方程又被称为调和方程。因为调和函数(harmonic function)的定义也就是函数满足拉普拉斯方程。
之所以被定义为调和(harmonic)大概起因和 泛音(overtone)相关。
关于 调和函数 的另一种感性的理解就是如果我们把 拉普拉斯运算符 看成 类似二阶导一样的东西。
- 对于 f:R→R : 二阶导 决定了这个函数的 凹凸性, 或者说 二阶导 决定了这个点周围的函数值是比它大还还是比它小。二阶导 在这里变成了我们比较函数的与它邻居的大小。

2nd_derivative.png
- 对于 f:Rn→R : 如果把它看成类似二阶导,那么我们假设取一个点,然后看它周围的圆(球,反正是与这个点距离相等的函数上的点),它们的平均值是跟这个点是一样的。

harmonic_f2.png
比如上面的 harmonic function: f(x,y)=exsiny, 虽然难以想象,但是比如我们在之上任意取一个点,这个点周围的圆上面的函数值的平均是一样的,在平坦的部分还容易想到这个结论,在有起伏的地方比较难想象到。
平均值一样,某种意义上就代表稳定。
以下的两个说法来自知乎问题: 调和函数到底有什么意义?
物理上可以用来描述一个稳定的状态,比如定常的温度场,自由电场电势,引力势能等等。数学上,比如说调和函数直接对应到复变里面的全纯函数,微分几何里面调和函数对应的是极小曲面,黎曼几何里调和函数可以推广到调和形式,然后就可以有Hodge 分解……上面每一个都可以展开,而且我强烈感觉我没想全……简直太有意义了
调和函数的线性组合仍为调和函数,所以是一个函数空间。调和函数无限次可导。调和函数在定义域的紧子集的边界上达到最大最小值,这是一种类似单调的性质。加上其他的一些性质,导致调和函数容易处理也更可能满足某些规律。以上是数学工作者看重的某些意义,你或许会觉得这不叫意义,那么可以考虑在物理学上的意义:二阶偏导的和等于零,对应于加速度的和为零,即可以描述系统不受力的状态,即稳态。当不能刻画系统在每一时刻的状态,却能用调和函数描述系统稳态下的状态,调和函数就显得非常有意义了。
回头继续, 先扔一个问题的 setup: minimizef∫Ω∥∇f(→x)∥22d→xsuch that f(→x)=g(→x),∀→x∈∂Ω 也就是我们给定区域 Ω, 它有边界 ∂Ω,边界上 ∂Ω 有函数 g(→x) ,我们想要找到一个函数满足 f(→x)=g(→x),也就是在这个边界上相等。
那么 minimizef∫Ω∥∇f(→x)∥22d→x 是在干什么呢?实际上这个函数有自己的名字 - 狄利克雷能量(Dirichlet’s energy): E[f]=∫Ω∥∇f(→x)∥22d→x 这个 energy function 代表的是什么?
梯度代表的是 函数 的变化,类似于导数,这个一整个 梯度的 l2 norm的平方积分 - 导数变化求和,最小化 它 也就是最小化函数的变化。所以上面这个问题也就是在尝试:
- 在边界满足 f = g
- 最小化函数 f 在区域内的变化
也就是让函数尽量光滑,所以也就是 f ‘as smooth as possible’.( 记得之前还有过 ‘as rigid as possible’)
可用变分解出,f 需要满足 拉普拉斯方程。
考虑任意h,需要有: E[f+h]≥E[f] 考虑 E[f+ϵh] : E[f+ϵh]=∫Ω∥∇f(→x)+ϵ∇h(→x)∥22d→x=∫Ω(∥∇f(→x)∥22+2ϵf(→x)⋅∇h(→x)+ϵ2∥∇h(→x)∥22)d→x 关于 ϵ 求导:
ddϵE[f+ϵh]=∫Ω(2f(→x)⋅∇h(→x)+2ϵ∥∇h(→x)∥22)d→xddϵE[f+ϵh]|ϵ=0=2∫Ω(f(→x)⋅∇h(→x))d→x 上述推导对于任何 h 都成立,特殊的,我们取 h(→x)=0,→x∈∂Ω, 然后利用分布积分,其实也就是 格林恒等式:
∫Ω∇u⋅∇vdΩ = ∫Γv∇u⋅ˆndΓ−∫Ωv∇2udΩ
上面式子可以转化为:
ddϵE[f+ϵh]|ϵ=0=−2∫Ω(h(→x)∇2f(→x))d→x 这个式子恒等于0,所以也就是: ∇2f(→x)=0,x∈Ω∖∂Ω 也就是我们需要求解的 PDE 为: ∇2f(→x)=0f(→x)=g(→x),∀→x∈∂Ω 其实也就是 狄利克雷问题(Dirichlet problem):
给定定义在 Rn 中一个区域的边界上一个函数 g,是否存在惟一连续函数 f 在内部两次连续可微,在边界上连续,使得 f 在内部调和并在边界上 f = g ?
其实这个也蛮像插值问题的,比如之前的插值, 给一些点,推断出函数的模样。这也是给一个边界,想要知道函数在区域内的全貌。
18.6 调和分析 Harmonic analysis
∇2f=λf
这也是一类PDE问题,解特征方程。
18.7 边界条件 Boundary Value Problems
狄利克雷问题(Dirichlet problem)是给定边界,推断函数。类似的还包括:
- 狄利克雷边界条件 Dirichlet conditions: f(→x)=g(→x)on ∂Ω
- 诺伊曼边界条件 Neumann conditions: ∇f(→x)=g(→x)on∂Ω
- 混合 Robin boundary condition: 类似 af(→x)+b∇f(→x)=g(→x)on ∂Ω
18.8 二阶PDE
二阶PDE 的一般形式是: ∑ijaij∂f∂xi∂xj+∑ibi∂f∂xi+cf=0 我们也可以把上述方程写成: (∇TA∇+∇⋅→b+c)f=0 我们可以根据上面的式子来分类:
- A 是 正定矩阵 或者 负定矩阵 (特征值全为正或者全为负) : 椭圆型 elliptic
- A 是 半正定矩阵 或者 半负定矩阵 (特征值除了全正或者全负,可以加上0): 抛物型 parabolic
- A只存在一个特征值和其他特征值符号不同 : 双曲型 hyperbolic
- 不满足上述条件 : 超双曲型 ultrahyperbolic
18.9 椭圆型 PDE
- 有解 & 唯一解
- C∞
- 拉普拉斯/泊松方程 ∇2f=g
18.10 抛物型 PDE
- 短时间内的解是存在/唯一的
- 热方程: ∂f∂t=α∇2f
- 边界条件 需要跟时间、空间相关
18.11 双曲型 PDE
- 波动方程: ∂2f∂t2=c2∇2f
- 边界条件: 一阶导
18.12 微分看成算子
微分很容易验证其为成线性算子。
先看一维简单的例子,之前在数值积分和微分中已经讨论过,比如我们可以用离散、差分等方式把 yk″ 看成: y_k'' = \frac{y_{k+1} - 2 y_k + y_{k-1}}{h^2} 所以如果假设 f(x) 在 [0,1] 上有: y_0 = f(0), y_0 = f(h), y_2 = f(2h), \cdots ,y_n = f(nh) 那么,这里就从微分到了差分,其实应该也 ‘≈’ : y_k'' = \frac{y_{k+1} - 2 y_k + y_{k-1}}{h^2}
或者写成:
y_k'' h^2 = y_{k+1} - 2 y_k + y_{k-1}
如果我们把 y_k 写成向量 \vec{y} \in \mathbb{R}^{n+1}, 把 y_k'' 写成向量 \vec{w} \in \mathbb{R}^{n+1},上面的式子可以写成: h^2 \vec{w} = L_1\vec{y}
那么根据边界条件的不同,L_1 可以为:
Dirichlet {\begin{pmatrix}-2 & 1 & & & & \\1 & -2 & 1 & & & \\ & 1 &-2&1& \\& &\ddots&\ddots&\ddots& \\ & & & 1& -2& 1 \\ & & & &1&-2 \end{pmatrix}}
Neumann {\begin{pmatrix}-1 & 1 & & & & \\1 & -2 & 1 & & & \\ & 1 &-2&1& \\& &\ddots&\ddots&\ddots& \\ & & & 1& -2& 1 \\ & & & &1&-1 \end{pmatrix}}
周期性 f(0) = f (1) {\begin{pmatrix}-2 & 1 & & & &1 \\1 & -2 & 1 & & & \\ & 1 &-2&1& \\& &\ddots&\ddots&\ddots& \\ & & & 1& -2& 1 \\1 & & & &1&-2 \end{pmatrix}} 然后我们就像解线性系统一样来解这个系统了。
即使是 2D 的网格,我们也可以用类似的方法来离散: (\nabla^2 y)_{k,l} = \frac{1}{h^2} \big( y_{(k-1),l} + y_{k, (l-1)} + y_{(k+1), l} + y_{k,(l+1)} - 4 y_{k,l} \big)