一圖搞懂梯度、散度、旋度、Jacobian、Hessian、Laplacian 之間的關系
來自 | 知乎? ?作者 |?王赟 Maigo
鏈接 | https://zhuanlan.zhihu.com/p/35323714
本文僅作學術交流,如有侵權,請聯系后臺刪除
? ?一、入門

這四種一階微分運算可以統(tǒng)一用算符?(讀作 nabla)表示。Nabla 算符是一個形式向量?,它可以如下地作用于標量?或向量?上:
直接與標量?相乘,得到?的梯度?。 與向量?點乘,得到?的散度?。本文把點乘用矩陣乘法的形式寫作?。 與向量?叉乘,得到?的旋度?。 若允許偏導算符寫在變量的右邊,則?就可以表示?的 Jacobian。
圖中的粗實線箭頭表示了兩種二階微分運算,它們可以由兩個一階微分運算組合而成,即:
梯度的散度就是 Laplacian; 梯度的 Jacobian 就是 Hessian。
圖中的虛線箭頭表示了一種不涉及微分的運算(跡)。在微分運算之后接上「跡」運算,可能得到另一種微分運算,如:
Jacobian 的跡就是散度; Hessian 的跡就是 Laplacian。
???二、入迷

梯度的旋度恒為零向量; 旋度的散度恒為 0。
其中,「梯度無旋」可以用下面的圖形象說明(圖片來自@得分的):

如果梯度有旋會怎么樣?
???三、入魔

Laplacian 是一個作用于標量的二階微分運算,其結果也是標量。但我們也可以把它作用于一個向量的每一個元素,得到一個向量;這種運算稱為向量 Laplacian。
Laplacian 運算作用于標量?上的結果可以用 nabla 算符寫成?。這種寫法無法直接推廣到向量 Laplacian,因為?里?無法直接跟?做矩陣乘法。但如果允許偏導算符寫在變量右邊,那就可以把向量 Laplacian 表示成?。這是 Jacobian 運算與「矩陣右乘?」運算的復合;后者的效果是對矩陣的每一行求散度。圖中恰好有一個為「逐行散度」運算準備的空位,我們把它補充到圖中。
向量 Laplacian 的結果,恰好等于「散度的梯度」與「旋度的旋度」之差。為了體現出這種關系,我把「從向量到向量」的三種二階微分運算改用橙紅色箭頭表示。
???四、入土

既然引入了「逐行散度」這個一階微分運算,那就索性把它能組合出來的二階微分運算也全都放到圖里去吧!這樣就得到了一個完美對稱的圖,它包含了 11 種二階微分運算,其中:
有兩種比較常見:Laplacian 和 Hessian; 有兩種恒等于零:「梯度的旋度」和「旋度的散度」; 有三種滿足減法關系:向量 Laplacian = 散度的梯度 - 旋度的旋度; 剩下的四種沒有專門的名字,也很罕見。
其中任何一種微分運算后面接上「跡」,都可以得到另一種同階微分運算:
Jacobian 的跡就是散度; Hessian 的跡就是 Laplacian; 旋度的 Jacobian 的跡就是旋度的散度,恒等于 0; 矩陣逐行散度的 Jacobian 的跡,就是它的逐行散度的散度。
但需要注意只能在運算之后接上「跡」,在運算之前接「跡」是不行的,比如矩陣的跡的梯度不等于它的逐行散度。
如果有讀者知道圖中幾種沒有名字的運算叫什么名字、有什么用途,或者在圖中內容之外還有什么值得包括進來的微分運算,歡迎補充。
—完—

