seegongsik
工程数学

拉普拉斯算子 是什么

一点比邻居平均高出或凹下多少,是梯度的散度,催生扩散与调和函数

站在一个点上,把紧邻四周的值平均一下。如果这个平均比你站的地方高,你就在洼地里。如果比平均低,你就在峰上。这个差就是拉普拉斯算子。它是梯度的散度 ∇·∇f,也就是 ∂²f/∂x² + ∂²f/∂y²,用一个数衡量你离邻居平均有多远。在峰上是负的,在洼地里是正的。热怎样扩散、膜怎样绷紧、势怎样安顿,都系在这一个量上。它把梯度、散度和旋度收成一个点上的 2 阶导数。 房间里的温度和角落的冷气混到均匀、只被边缘按住的橡皮膜在中间变平、空区域里的势安顿下来,都从这一个差开始。

在场上拖动探针,那个位置会有一个小环围着六个邻居点。画面下方出现三个数。中间的值、六个邻居的平均,以及与两者之差成比例的 ∇²f。放在右上的峰上,邻居平均比中间低,∇²f 降为负,成为蓝色的峰。放在左下的洼地,邻居平均更高,∇²f 升为正,成为金色的洼。这里用手确认,拉普拉斯算子就是你离邻居平均有多远的那一个数。 把环在峰和洼之间慢慢移动,负的差会在一道脊上变成正的,在那道脊上中间的值等于邻居的平均。

在同一个场上看,拉普拉斯算子为什么是梯度的散度。拖动探针,环上出现六支梯度箭头,每支箭头指向那一处最陡的上坡。在峰上,箭头全都聚向探针,因为上坡指向里面的峰。向内聚的流动散度为负,所以 ∇·∇f < 0。在洼地上,箭头全都向外伸,散度为正,所以 ∇·∇f > 0。画面同时写出 ∇²f = ∇·(∇f) 和它当下的值。把散度再作用一次到梯度上,就是拉普拉斯算子,箭头把这件事显示出来。 箭头聚到一处,那个点就在把高度让出去。箭头向四面伸开,那个点就在从四周把高度收回来填上。

现在用颜色看整片场的拉普拉斯算子,而不是一个点。滑块 s 把右上峰的高度从 0.5 变到 3,背景颜色就是 ∇²f 的地图。金色是洼(∇²f > 0,低于平均),蓝色是峰(∇²f < 0,高于平均),峰顶和洼底最浓。把 s 调大,右上的峰隆起,那里的蓝色区域更深更宽。把 s 调小,那个峰消退,蓝色变淡。左下的洼与 s 无关,保持金色。一个滑块把整张拉普拉斯地图重新涂过。 颜色浓的地方和邻居差得大,接近灰色的地方已经几乎等于邻居,剩下要抹平的就少。

拉普拉斯算子处处为 0 的场叫做调和场 (harmonic)。按下按钮,两种场交替出现。一种是 h(x,y) = x·y,鞍。每个点上横向凹下多少,纵向就凸起多少,两者抵消,∇²h = 0,中间样本的 ∇² 几乎显示为 0。另一种是 b(x,y) = 高斯峰,真正的凸起,中间的 ∇²b 是明显的负数。调和场里面不能有峰,也不能有洼。每个点都等于邻居的平均,所以最高和最低的地方总在边界上。这是稳态的热、势和膜的规则。 所以只定下边缘的温度,里面就跟着来。只定下边缘的势,空着的内部就自己填上。

看拉普拉斯算子为什么是扩散的引擎。热方程是 ∂f/∂t = ∇²f,意思是每一瞬间每个点的值按拉普拉斯算子变化。洼地 (∇²f > 0) 上升,峰 (∇²f < 0) 下降,于是每个地方都被拉向邻居的平均。格子上放着两个峰的起伏起点,每按一次一步,每一格就朝邻居平均走近一步。没有自动重复,只在按下时走一步。按得越多,峰越低,谷越被填平,颜色越均匀。按复位就回到最初的起伏。数着步数,拉普拉斯算子抹掉差别的过程就一步步显出来。 按得久,最初的起伏就消失,整张格子剩下一种平静的颜色。

实际应用拉普拉斯算子 ∇²f = ∇·∇f = ∂²f/∂x² + ∂²f/∂y² 衡量一个点的值偏离周围邻居平均有多少。为正是比邻居洼,平均更高。为负是峰,平均更低。为 0 就恰好等于邻居平均。所以拉普拉斯算子是把散度再套到梯度上的 2 阶算子。∇²f = 0 的调和场里面没有峰也没有洼,极值总在边界上。正如热方程 ∂f/∂t = ∇²f 所显示的,拉普拉斯算子是抹掉差别、拉向平均的扩散引擎。工程里的热与扩散、势与膜的平衡、拉普拉斯方程 ∇²f = 0,都由这一个算子捆在一起。梯度、散度、旋度、线积分和通量,在一个点的 2 阶导数上闭合。 空房间的温度、绷紧的膜、没有电荷处的势,都遵循这个平均的法则。
← 工程数学
如果有帮助,请支持我们