拉普拉斯算子的疑惑
国内许多工科教材在讲到有关拉普拉斯算子( Δ \Delta Δ)与哈密顿算子( ∇ \nabla ∇)的内容时含混不清,忽略了许多重要定义,使得一些进一步的推导难以理解
现记录我发现的两个主要问题,并予以解答,希望可以帮助到学习国内教材时有相似疑惑的同学
1. 拉普拉斯算子作用于矢量
1.1 课本中的定义
课本在介绍拉普拉斯算子时,一般会有如下定义:
设 f \displaystyle f f为二阶可微的实函数,那么有:
Δ f = ∇ 2 f = ∇ ⋅ ∇ f \Delta f = \nabla^2f = \nabla \cdot \nabla f Δf=∇2f=∇⋅∇f
紧接着,教材通常还会将其在直角坐标系下展开,也即
∇ 2 f = ∑ i = 1 n ∂ 2 f ∂ x i 2 \nabla^2f=\sum_{i=1}^n{\frac{\partial^2 f}{\partial x_i^2}} ∇2f=i=1∑n∂xi2∂2f
同时,教科书中常常还会在这里进一步解释它的含义是: 对一实值函数求其梯度的散度
1.2 疑问
但是,在许多进一步的推导中,我们又常常可以看到如下过程,例如在波动方程(亥姆霍兹方程)的推导中有如下内容
∇ 2 E + ω 2 μ ϵ E = 0 \nabla^2 \boldsymbol E + \omega ^2\mu\epsilon\boldsymbol E =0 ∇2E+ω2μϵE=0
其中E为矢量,或者说场量
这就奇了棒棒锤怪了,说好的求梯度的散度呢?对于矢量我该如何进行计算 ∇ 2 E \nabla ^2 \boldsymbol E ∇2E?
1.3 真正的定义
其实,对矢量进行拉普拉斯算子,其定义与标量下并不相同,在Wolfram(https://mathworld.wolfram.com/VectorLaplacian.html)中可以查找到如下定义
Vector Laplacian
A vector Laplacian can be defined for a vector A \mathbf{A} A by
∇ 2 A = ∇ ( ∇ ⋅ A ) − ∇ × ( ∇ × A ) \nabla^{2} \mathbf{A}=\nabla(\nabla \cdot \mathbf{A})-\nabla \times(\nabla \times \mathbf{A}) ∇2A=∇(∇⋅A)−∇×(∇×A)
where the notation ˙ \dot{ } ˙ is sometimes used to distinguish the vector Laplacian from the scalar Laplacian ∇ 2 \nabla^{2} ∇2 (Moon and Spencer 1988 , p . 3 1988, \mathrm{p} .3 1988,p.3 ). In tensor notation, A \mathbf{A} A is written A μ A_{\mu} Aμ, and the identity becomes
∇ 2 A μ = A μ ; λ ; λ = ( g λ x A μ ; λ ) ; κ = g λ κ ; κ A μ ; λ + g λ x A μ ; λ x \begin{aligned} \nabla^{2} A_{\mu} &=A_{\mu ; \lambda} ; \lambda \\ &=\left(g^{\lambda x} A_{\mu ; \lambda}\right)_{; \kappa} \\ &=g^{\lambda} \kappa_{; \kappa} A_{\mu ; \lambda}+g^{\lambda x} A_{\mu ; \lambda x} \end{aligned} ∇2Aμ=Aμ;λ;λ=(gλxAμ;λ);κ=gλκ;κAμ;λ+gλxAμ;λx
A tensor Laplacian may be similarly defined.
In cylindrical coordinates, the vector Laplacian is given by
上面的定义式,在国内教材中通常作为一个张量运算的性质给出,但是在国外的许多资料中,则是拉普拉斯算子作用于矢量时的定义
显然,在这样的定义下,对矢量进行拉普拉斯算子运算已经失去了梯度的散度的含义。而之所以这样定义,我的理解是为了方便进一步的数学运算,例如在直角坐标系下将其展开,可以按照简单向量运算进行下去
∇ 2 T = ∇ 2 ( T x , T y , T z ) = ( ∇ 2 T x ) x ^ + ( ∇ 2 T y ) y ^ + ( ∇ 2 T z ) z ^ \nabla^2 \boldsymbol T = \nabla^2(T_x,T_y,T_z) = (\nabla^2 T_x)\hat x + (\nabla^2 T_y)\hat y + (\nabla^2 T_z)\hat z ∇2T=∇2(Tx,Ty,Tz)=(∇2Tx)x^+(∇2Ty)y^+(∇2Tz)z^
上式可以解释为: 直角系下,矢量的拉普拉斯运算相当于对矢量的各个分量分别做拉普拉斯运算,再组成一个矢量
2. 拉普拉斯算子在Hessian矩阵中的含义
2.1 Hessian矩阵的定义
Hessian矩阵通常定义如下:
∇
2
f
=
H
=
[
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
⋯
∂
2
f
∂
x
1
∂
x
n
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
⋯
∂
2
f
∂
x
2
∂
x
n
∂
2
f
∂
x
n
∂
x
1
∂
2
f
∂
x
n
∂
x
2
⋯
∂
2
f
∂
x
n
2
]
\nabla^2f = \mathbf{H}=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right]
∇2f=H=
∂x12∂2f∂x2∂x1∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f∂xn∂x2∂2f⋯⋯⋯∂x1∂xn∂2f∂x2∂xn∂2f∂xn2∂2f
2.2 疑问
我们知道,如果 ∇ 2 \nabla^2 ∇2作用于标量时,如 ∇ 2 ϕ \nabla^2 \phi ∇2ϕ,所得结果也为一标量
∇ 2 \nabla^2 ∇2作用于矢量时,如 ∇ 2 E \nabla^2 \boldsymbol E ∇2E,所得结果为一向量
那么在Hessian矩阵的定义中,究竟是何种逆天的力量,能够使得拉普拉斯算子作用于在f上时,却得到了一个矩阵?
2.3 符号的混淆
在维基百科中,终于找到了如下解释
Hessian matrix
While ∇ 2 \nabla^{2} ∇2 usually represents the Laplacian, sometimes ∇ 2 \nabla^{2} ∇2 also represents the Hessian matrix. The former refers to the inner product of ∇ \nabla ∇, while the latter refers to the dyadic product of ∇ \nabla ∇ :
∇ 2 = ∇ ⋅ ∇ T \nabla^{2}=\nabla \cdot \nabla^{T} ∇2=∇⋅∇T
So whether ∇ 2 \nabla^{2} ∇2 refers to a Laplacian or a Hessian matrix depends on the context.
原来,在Hessian矩阵的定义中, ∇ 2 \nabla^2 ∇2符号的含义与拉普拉斯算子有所区别。我们将\nabla算符看作一个偏微分组成的列向量
∇ = [ ∂ ∂ x 1 ∂ ∂ x 2 ⋯ ∂ ∂ x 3 ] \nabla=\left[\begin{array}{l} \frac{\partial }{\partial x_{1}} \\ \frac{\partial }{\partial x_{2}} \\ \cdots \\ \frac{\partial }{\partial x_{3}} \\ \end{array}\right] ∇= ∂x1∂∂x2∂⋯∂x3∂
经过简单的矩阵运算 ∇ 2 = ∇ ⋅ ∇ T \nabla^{2}=\nabla \cdot \nabla^{T} ∇2=∇⋅∇T,即可得到Hessian的定义式