梯度、旋度與散度

本文的閱讀等級:初級
向量算子是向量分析 (vector calculus 或 vector analysis) 的馱馬,最重要的算子包括梯度 (gradient)、旋度 (curl) 和散度 (divergence)。令 D\subset\mathbb{R}^3 是一開集,f:D\to\mathbb{R} 是一次連續可微函數 (以 C^1 表示),且 \mathbf{F}:D\to\mathbb{R}^3 是定義於 D 的一 C^1 向量場 (vector field)。所謂向量場其實就是一個向量函數,例如,
\displaystyle  \mathbf{F}(x,y,z)=\begin{bmatrix}  F_1(x,y,z)\\  F_2(x,y,z)\\  F_3(x,y,z)  \end{bmatrix}=\begin{bmatrix}  -y\\  xy^2\\  x+z  \end{bmatrix}
有些物理和微積分課本將向量場 \mathbf{F} 表示為
\displaystyle  \mathbf{F}(x,y,z)=-y\mathbf{i}+xy^2\mathbf{j}+(x+z)\mathbf{k}
其中 \mathbf{i},\mathbf{j},\mathbf{k}\mathbb{R}^3 的標準單位向量 (線性代數慣用的對應記號為 \mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3)。為便利表達,我們將微分算子 \nabla (讀作nabla) 視為一向量:
\displaystyle  \nabla =\begin{bmatrix}  \frac{\partial }{\partial x}\\[0.3em]  \frac{\partial }{\partial y}\\[0.3em]  \frac{\partial }{\partial z}  \end{bmatrix}=\begin{bmatrix}  D_x\\  D_y\\  D_z  \end{bmatrix}
這裡 D_x, D_y, D_z 是偏微分算子。函數 f 的梯度 (grad),向量場 \mathbf{F}=(F_1,F_2,F_3)^T 的旋度 (curl) 和散度 (div) 定義如下:
\displaystyle  \hbox{grad~}f=\begin{bmatrix}  D_xf\\  D_yf\\  D_zf  \end{bmatrix}=\nabla f
\displaystyle  \hbox{curl~}\mathbf{F}=\nabla\times\mathbf{F}=\begin{bmatrix}  D_x\\  D_y\\  D_z  \end{bmatrix}\times\begin{bmatrix}  F_1\\  F_2\\  F_3  \end{bmatrix}=\begin{bmatrix}  D_yF_3-D_zF_2\\  D_zF_1-D_xF_3\\  D_xF_2-D_yF_1  \end{bmatrix}
\displaystyle  \hbox{div~}\mathbf{F}=\nabla\cdot\mathbf{F}=\begin{bmatrix}  D_x\\  D_y\\  D_z  \end{bmatrix}\cdot\begin{bmatrix}  F_1\\  F_2\\  F_3  \end{bmatrix}=D_xF_1+D_yF_2+D_zF_3
旋度和散度的定義很容易混淆,初接觸時不妨用助記術來聯想:旋度 (curl) 和外積 (cross product) 的第一個英文字母都是「c」,散度 (div) 和內積 (dot) 的第一個英文字母都是「d」。通過微分形式 (differential form) 和外微分 (exterior derivative) 可以幫助我們理解這些向量算子的幾何意義,在此不深入討論,本文僅利用行列式和基礎向量運算推導梯度、旋度和散度的一些恆等式。


我們可以從 Jacobian 矩陣得到 \hbox{div~}\mathbf{F}\hbox{curl~}\mathbf{F} (見“Jacobian 矩陣與行列式”)。向量場 \mathbf{F}=(F_1,F_2,F_3)^T 的 Jacobian 矩陣為
\displaystyle  J=\begin{bmatrix}  D_xF_1&D_yF_1&D_zF_1\\  D_xF_2&D_yF_2&D_zF_2\\  D_xF_3&D_yF_3&D_zF_3  \end{bmatrix}
觀察得知 \hbox{trace}J=\hbox{div~}\mathbf{F}。寫出 J 的卡氏分解 J=S+K,其中 S=(J+J^T)/2 是對稱部分,K=(J-J^T)/2 是反對稱部分,如下:
\displaystyle  K=\frac{1}{2}\begin{bmatrix}  0&D_yF_1-D_xF_2&D_zF_1-D_xF_3\\  D_xF_2-D_yF_1&0&D_zF_2-D_yF_3\\  D_xF_3-D_zF_1&D_yF_3-D_zF_2&0  \end{bmatrix}
觀察發現 \hbox{curl~}\mathbf{F}=a\mathbf{i}+b\mathbf{j}+c\mathbf{k} 的三個元 a,b,c 即為 K 的下列對應元:
\displaystyle  K=\frac{1}{2}\left[\!\!\begin{array}{rrr}  0&-c&b\\  c&0&-a\\  -b&a&0  \end{array}\!\!\right]

另一個方式是透過行列式運算。令 \mathbf{a}=(a_1,a_2,a_3)^T\mathbf{b}=(b_1,b_2,b_3)^T\mathbf{c}=(c_1,c_2,c_3)^T。為方便書寫與計算,我們將外積 \mathbf{b}\times\mathbf{c} 以行列式表示為
\displaystyle  \mathbf{b}\times\mathbf{c}=\begin{vmatrix}  \mathbf{i}&\mathbf{j}&\mathbf{k}\\  b_1&b_2&b_3\\  c_1&c_2&c_3  \end{vmatrix}=(b_2c_3-b_3c_2)\mathbf{i}+(b_3c_1-b_1c_3)\mathbf{j}+(b_1c_2-b_2c_1)\mathbf{k}
注意,在計算行列式時,向量 \mathbf{i},\mathbf{j},\mathbf{k} 視同純量。同樣地,\mathbf{a}\cdot(\mathbf{b}\times\mathbf{c}) 也可以用行列式表示如下 (見“答張盛東──關於外積與行列式的關係”):
\displaystyle  \mathbf{a}\cdot(\mathbf{b}\times\mathbf{c})=\begin{vmatrix}  a_1&a_2&a_3\\  b_1&b_2&b_3\\  c_1&c_2&c_3  \end{vmatrix}=a_1(b_2c_3-b_3c_2)+a_2(b_3c_1-b_1c_3)+a_3(b_1c_2-b_2c_1)

下面我們運用行列式來推導幾個梯度、旋度和散度的公式。
(1) 對於任一 C^2 函數 f,梯度的旋度為零向量:
\displaystyle  \hbox{curl~}(\hbox{grad~}f)=\nabla\times(\nabla f)=\mathbf{0}
寫出 \nabla f=(D_xf,D_yf,D_zf)^T,根據定義式,
\displaystyle\begin{aligned}  \nabla\times(\nabla{f})&=\begin{vmatrix}  \mathbf{i}&\mathbf{j}&\mathbf{k}\\  D_x&D_y&D_z\\  D_xf&D_yf&D_zf  \end{vmatrix}\\  &=(D_yD_z-D_zD_y)f\mathbf{i}+(D_zD_x-D_xD_z)f\mathbf{j}+(D_xD_y-D_yD_x)f\mathbf{k}  .\end{aligned}
偏微分具有對稱性 (或說可交換性),即 D_xD_y=D_yD_x,故每一項都等於零。

(2) 對於任一 C^2 向量場 \mathbf{F},旋度的散度為零:
\displaystyle  \hbox{div~}(\hbox{curl~}\mathbf{F})=\nabla\cdot(\nabla\times\mathbf{F})=0
使用行列式表達式,由偏微分的對稱性可推論
\displaystyle  \nabla\cdot(\nabla\times\mathbf{F})=\begin{vmatrix}  D_x&D_y&D_z\\  D_x&D_y&D_z\\  F_1&F_2&F_3  \end{vmatrix}=0
另一個較為「激進」的說法是行列式有相同的兩列因此為零。

(3) 對於任一 C^2 函數 f,梯度的散度稱為 f 的 Laplacian:
\displaystyle  \hbox{div~}(\hbox{grad~}f)=\nabla\cdot(\nabla f)=\nabla^2f
其中 Laplace 算子定義為 \nabla^2f=(D_x^2+D_y^2+D_z^2)f。直接用內積運算可得
\displaystyle  \nabla^2f=D_x^2f+D_y^2f+D_z^2f=\nabla\cdot(\nabla f)
對於向量場,我們也可以按類似方式定義
\displaystyle  \nabla^2\mathbf{F}=\nabla^2F_1\mathbf{i}+\nabla^2F_2\mathbf{j}+\nabla^2F_3\mathbf{k}

(4) 對於任一 C^2 向量場 \mathbf{F}
\displaystyle  \hbox{curl~}(\hbox{curl~}\mathbf{F})=\nabla\times(\nabla\times\mathbf{F})=\hbox{grad~}(\hbox{div~}\mathbf{F})-\nabla^2\mathbf{F}
這個等式將梯度、旋度、散度和 Laplacian 四個算子聯繫在一起。證明於下:寫出 \nabla\times\mathbf{F}=\begin{vmatrix}  D_y&D_z\\  F_2&F_3  \end{vmatrix}\mathbf{i}+\begin{vmatrix}  D_z&D_x\\  F_3&F_1  \end{vmatrix}\mathbf{j}+\begin{vmatrix}  D_x&D_y\\  F_1&F_2  \end{vmatrix}\mathbf{k},套用行列式表達式,
\displaystyle \begin{aligned}  \nabla\times(\nabla\times\mathbf{F})&=\begin{vmatrix}  \mathbf{i}&\mathbf{j}&\mathbf{k}\\  D_x&D_y&D_z\\  \begin{vmatrix}  D_y&D_z\\  F_2&F_3  \end{vmatrix}&\begin{vmatrix}  D_z&D_x\\  F_3&F_1  \end{vmatrix}&\begin{vmatrix}  D_x&D_y\\  F_1&F_2  \end{vmatrix}  \end{vmatrix}\\  &=\begin{vmatrix}  D_y&D_z\\  \begin{vmatrix}  D_z&D_x\\  F_3&F_1  \end{vmatrix}&\begin{vmatrix}  D_x&D_y\\  F_1&F_2  \end{vmatrix}  \end{vmatrix}\mathbf{i}+\begin{vmatrix}  D_z&D_x\\  \begin{vmatrix}  D_x&D_y\\  F_1&F_2  \end{vmatrix}&\begin{vmatrix}  D_y&D_z\\  F_2&F_3  \end{vmatrix}  \end{vmatrix}\mathbf{j}+\begin{vmatrix}  D_x&D_y\\  \begin{vmatrix}  D_y&D_z\\  F_2&F_3  \end{vmatrix}&\begin{vmatrix}  D_z&D_x\\  F_3&F_1  \end{vmatrix}  \end{vmatrix}\mathbf{k}  .\end{aligned}
上式看似複雜,幸好只要化簡其中一項,利用對稱性即可推得其餘項。直接乘開 \mathbf{i} 的係數或使用行列式餘因子公式化簡,過程如下:
\displaystyle\begin{aligned}  \begin{vmatrix}  D_y&D_z\\  \begin{vmatrix}  D_z&D_x\\  F_3&F_1  \end{vmatrix}&\begin{vmatrix}  D_x&D_y\\  F_1&F_2  \end{vmatrix}  \end{vmatrix}&=\left|\!\!\begin{array}{ccr}  D_y&0&-D_z\\  D_z&D_x&D_y\\  F_3&F_1&F_2  \end{array}\!\!\right|\\  &=D_x\left|\!\!\begin{array}{cr}  D_y&-D_z\\  F_3&F_2  \end{array}\!\!\right|-\left|\!\!\begin{array}{cr}  D_y&-D_z\\  D_z&D_y  \end{array}\!\!\right|F_1\\  &=D_x(D_xF_1+D_yF_2+D_zF_3)-(D_x^2+D_y^2+D_z^2)F_1\\  &=D_x(\hbox{div~}\mathbf{F})-\nabla^2F_1.\end{aligned}
再將 D_xF_1 替換為 D_yF_2,以及 D_zF_3 便得到其他二項。整理結果,可得
\displaystyle  \nabla\times(\nabla\times\mathbf{F})=\nabla(\hbox{div~}\mathbf{F})-\nabla^2\mathbf{F}
此即所求。

最後我列舉一些常見的向量分析公式,供讀者自行練習證明[1]。以下 c 是常數,fg 是純量函數,\mathbf{F},\mathbf{G},\mathbf{H} 是向量場。
  1. \nabla(f+g)=\nabla f+\nabla g
  2. \nabla(cf)=c\nabla f
  3. \nabla(fg)=f\nabla g+g\nabla f
  4. \nabla(f/g)=(g\nabla f-f\nabla g)/g^2g\neq 0
  5. \hbox{div}(\mathbf{F}+\mathbf{G})=\hbox{div~}\mathbf{F}+\hbox{div~}\mathbf{G}
  6. \hbox{curl}(\mathbf{F}+\mathbf{G})=\hbox{curl~}\mathbf{F}+\hbox{curl~}\mathbf{G}
  7. \nabla(\mathbf{F}\cdot\mathbf{G})=(\mathbf{F}\cdot\nabla)\mathbf{G}+(\mathbf{G}\cdot\nabla)\mathbf{F}+\mathbf{F}\times(\hbox{curl~}\mathbf{G})+\mathbf{G}\times(\hbox{curl~}\mathbf{F})
  8. \hbox{div~}(f\mathbf{F})=f~\hbox{div~}\mathbf{F}+\mathbf{F}\cdot\nabla f
  9. \hbox{div}(\mathbf{F}\times\mathbf{G})=\mathbf{G}\cdot\hbox{curl~}\mathbf{F}-\mathbf{F}\cdot\hbox{curl~}\mathbf{G}
  10. \hbox{curl}(f\mathbf{F})=f\hbox{curl~}\mathbf{F}+\nabla f\times\mathbf{F}
  11. \hbox{curl}(\mathbf{F}\times\mathbf{G})=\mathbf{F}(\hbox{div~}\mathbf{G})-\mathbf{G}(\hbox{div~}\mathbf{F})+(\mathbf{G}\cdot\nabla)\mathbf{F}-(\mathbf{F}\cdot\nabla)\mathbf{G}
  12. \nabla(\mathbf{F}\cdot\mathbf{F})=2(\mathbf{F}\cdot\nabla)\mathbf{F}+2\mathbf{F}\times(\hbox{curl~}\mathbf{F})
  13. \nabla^2(fg)=f\nabla^2g+g\nabla^2f+2(\nabla f\cdot\nabla g)
  14. \hbox{div}(\nabla f\times \nabla g)=0
  15. \nabla\cdot(f\nabla g-g\nabla f)=f\nabla^2g-g\nabla^2 f
  16. \mathbf{H}\cdot(\mathbf{F}\times\mathbf{G})=\mathbf{G}\cdot(\mathbf{H}\times\mathbf{F})=\mathbf{F}\cdot(\mathbf{G}\times\mathbf{H})
  17. \mathbf{H}\cdot((\mathbf{F}\times\nabla)\times\mathbf{G})=((\mathbf{H}\cdot\nabla)\mathbf{G})\cdot \mathbf{F}-\mathbf{H}\cdot(\mathbf{F}\cdot\nabla)\mathbf{G}
  18. \mathbf{F}\times(\mathbf{G}\times\mathbf{H})=(\mathbf{F}\cdot \mathbf{H})\mathbf{G}-\mathbf{H}(\mathbf{F}\cdot \mathbf{G})

參考來源:
[1] Jerrold E. Marsden 與 Anthony J. Tromba 合著 Vector Calculus,1976,頁166。
This entry was posted in 特別主題, 主題專欄 and tagged , , , , , . Bookmark the permalink.

5 則回應給 梯度、旋度與散度

  1. Watt Lin 說:
    感謝老師精彩的解說!
    ——————–
    您文章裡頭談到:
    旋度的散度為零,另一個較為「激進」的說法是行列式有相同的兩列因此為零。
    我以前也曾經有這個想法,用行列式的性質,一眼看出,它等於零!
    但是所看過幾本向量分析的書,皆沒這樣寫。
    大概是我看過的書不多吧!
    我不知道,是否有哪一本向量分析的教科書,真的這樣寫?
    ——————–
    另外,維基百科談「旋度」
    https://zh.wikipedia.org/wiki/%E6%97%8B%E5%BA%A6
    有一句話,行列式記號只有形式上的意義,因為真正的行列式中的係數應該是數,而不是i, j, k這樣的向量。這種表示方法只是便於記憶旋度在直角坐標系中的表達式。
    我看到這句話,思考著,行列式裡,真的必需存放「數值」嗎?運算子放在行列式之中,只是方便記憶嗎?
    • ccjou 說:
      我只知道一本向量分析老書:Marsden & Tromba 的Vector calculus, 1976, 上面的那一堆公式都是取自該書。那本書並沒有直接採用行列式性質來證明(2),而是將行列式展開後利用偏微分性質得到結論,也沒有提供(4)的證明。如維基所述:我們將外積寫成行列式確實僅有形式上的意義,因為同在一列的i,j,k是向量不是數字,同在一列的Dx, Dy,Dz是微分算子也不是數字。但是,因為他們的行列式表達式具有規律(同在一列),並遵守數的運算規則,即結合律,交換律,分配律等等,所以我才敢大膽地使用行列式性質。我想嚴謹正派的數學家不會走這種旁門左道的。
  2. Watt Lin 說:
    數學的發展過程,有時先出現「不嚴謹」的計算過程,後人以「嚴謹」的方式,詳加論證。
    我所知道的,像是牛頓與萊布尼茲的微積分,經過三百餘年,Weierstrass與Cauchy等人,作了嚴謹證明。
    歐拉的著作,原本份量已不少,原書的許多地方僅是輕描淡寫。有人用詳細論證方式,重新演算,變成更厚之巨冊。
    另外,複數域的自然指數Exp(z)還沒證明,(我忘了是哪位數學家) 竟然把它比照實數域的Exp(x)使用,這是不是很「危險」?很「不嚴謹」?萬一錯了怎麼辦?幸好還能算出答案,早年卻沒有證明。後人發展「複變函數論」,才真的證明Exp(z)的微分、積分等各種性質,不僅表達式與實數域的Exp(x)相似,也是可靠的!
    這回在老師的部落格談到,微分運算子放在行列式裡頭,div (curl F) 的演算,兩列微分運算子相同,由行列式的性質可知,行列式值為零。雖然「不嚴謹」,看起來卻是一種幫助「認知」的好方法。
    以上這些,我想表達,數學教育,有時太過於著重「嚴謹」,而使學生畏懼。
    如果先享受「概念式」學習,然後,有興趣詳細研究的人,可以升級到「嚴謹」階段。循序漸進教學,可以讓更多人喜歡數學。
    我常來周老師的部落格瀏覽,就是喜歡看看「不一樣」的論述方式,得到許多靈感啟發!
    感謝老師持續寫作,嘉惠許多學生。
    • ccjou 說:
      我的專業並不是數學,所以有時候不知不覺行文鬆散。今天如果沒有數學家這個專業,說不定每一個人都願意依據自己的風格自由表述「數學」,像記錄旅遊心得那樣自在。很遺憾,現實並非如此。如果我的老師看到我將2階行列式換成3階行列式,肯定不以為然。畢竟,向來只有降階,哪有反其道而行的?照目前的氛圍,那些渴望擁有自由靈魂的年輕人怎麼可能會喜歡數學?
  3. Watt Lin 說:
    在老師這篇文章中,我個人認為最精彩的壓軸好戲,在於 curl (curl F) 的演算,簡潔明瞭!以前從來沒看過這樣的運算過程。