Jacobian 矩陣與行列式

本文的閱讀等級:中級

F:\mathbb{R}^n\to\mathbb{R}^m 為一個向量函數。對於 n 維實向量 \mathbf{x}=(x_1,\ldots,x_n)^TF(\mathbf{x}) 具有下列形式:

F(\mathbf{x})=\begin{bmatrix}  f_1(x_1,\ldots,x_n)\\  \vdots\\  f_m(x_1,\ldots,x_n)  \end{bmatrix}

其中 f_j:D\to\mathbb{R}D\subseteq\mathbb{R}^nF 的定義域。例如,極座標至卡氏座標的轉換是一個向量函數:

\begin{bmatrix}  x\\  y  \end{bmatrix}=\begin{bmatrix}  X(r,\theta)\\  Y(r,\theta)  \end{bmatrix}=\begin{bmatrix}  r\cos\theta\\  r\sin\theta  \end{bmatrix}

其中 r\ge 00\le\theta\le\pi/2。如果向量函數 F 的數學形式相當複雜,線性化是一個常用的簡化方法。針對單變量函數 f(x),在 x=p 附近我們可用直線 y=ax+b 近似 f(x)。推廣至多變量函數,令 T:\mathbb{R}^n\to\mathbb{R}^m 為一個仿射 (affine) 變換 (見“仿射變換”),表示如下:

T(\mathbf{x})=A\mathbf{x}+\mathbf{b}

其中 A 是一個 m\times n 階實矩陣,\mathbf{b}\in\mathbb{R}^m。下面解釋如何以仿射變換 T 近似向量函數 F,由此衍生 F 的導數矩陣,稱為 Jacobian 矩陣 (或簡稱 Jacobian),隨後介紹 Jacobian 行列式與其應用,以及 Jocabian 矩陣與 Hessian 矩陣的關係。

Carl Gustav Jacob Jacobi (1804-1851) From Wikimedia

 
Jacobian 矩陣

我們的目標是在 \mathbf{p}\in D 的鄰近範圍使用形式較簡單的仿射變換 T(\mathbf{x})=A\mathbf{x}+\mathbf{b} 近似 F(\mathbf{x})。既然 \mathbf{p} 是聚焦點,我們要求 T(\mathbf{p})=F(\mathbf{p})。因為 T(\mathbf{x})=A\mathbf{x}+\mathbf{b},就有 F(\mathbf{p})=A\mathbf{p}+\mathbf{b},或 \mathbf{b}=F(\mathbf{p})-A\mathbf{p},所以

T(\mathbf{x})=A(\mathbf{x}-\mathbf{p})+F(\mathbf{p})

接著要找出 A 使得仿射變換 T\mathbf{p} 點附近最近似 F。自然地,當 \mathbf{x} 趨於 \mathbf{p},符合最近似條件的 T 應使誤差 F(\mathbf{x})-T(\mathbf{x}) 更快速地趨於 \mathbf{0} (零向量)。若存在一個 m\times n 階實矩陣 A 使得

\displaystyle  \lim_{\mathbf{x}\to\mathbf{p}}\frac{F(\mathbf{x})-F(\mathbf{p})-A(\mathbf{x}-\mathbf{p})}{\Vert\mathbf{x}-\mathbf{p}\Vert}=\mathbf{0}

我們說 F:\mathbb{R}^n\to\mathbb{R}^m\mathbf{p} 可導 (differentiable)。為了讓 \mathbf{x} 可從任何方向逼近 \mathbf{p},我們另要求 \mathbf{p} 是定義域 D 的一個內點 (interior point),意思是鄰近 \mathbf{p} 的所有點都屬於 D

 
下面證明若向量函數 F\mathbf{p} 點可導,則 A\mathbf{p} 唯一決定。考慮 \mathbb{R}^n 的標準基底 \{\mathbf{e}_1,\ldots,\mathbf{e}_n\},其中 \mathbf{e}_j 的第 j 元為 1,其餘元為 0。設 h 為一極小數使得 \mathbf{p}+h\mathbf{e}_jj=1,\ldots,n,屬於定義域 D。如果 F\mathbf{p} 可導,就有

\displaystyle  \lim_{h\to 0}\frac{F(\mathbf{p}+h\mathbf{e}_j)-F(\mathbf{p})-A(h\mathbf{e}_j)}{h}=\mathbf{0},~~~j=1,\ldots,n

因為 A(h\mathbf{e}_j)=h(A\mathbf{e}_j),可知

\displaystyle  \lim_{h\to 0}\frac{F(\mathbf{p}+h\mathbf{e}_j)-F(\mathbf{p})}{h}=A\mathbf{e}_j

上式等號左邊即為偏導數

\displaystyle\frac{\partial F}{\partial x_j}(\mathbf{p})=\begin{bmatrix}  \displaystyle\frac{\partial f_1}{\partial x_j}(\mathbf{p})\\[1em]  \displaystyle\frac{\partial f_2}{\partial x_j}(\mathbf{p})\\  \vdots\\  \displaystyle\frac{\partial f_m}{\partial x_j}(\mathbf{p})  \end{bmatrix}

等號右邊等於矩陣 A 的第 j 行,故

\displaystyle  A=\begin{bmatrix}  \displaystyle\frac{\partial f_1}{\partial x_1}(\mathbf{p})&\displaystyle\frac{\partial f_1}{\partial x_2}(\mathbf{p})&\cdots&\displaystyle\frac{\partial f_1}{\partial x_n}(\mathbf{p})\\[1em]  \displaystyle\frac{\partial f_2}{\partial x_1}(\mathbf{p})&\displaystyle\frac{\partial f_2}{\partial x_2}(\mathbf{p})&\cdots&\displaystyle\frac{\partial f_2}{\partial x_n}(\mathbf{p})\\  \vdots&\vdots&\ddots&\vdots\\  \displaystyle\frac{\partial f_m}{\partial x_1}(\mathbf{p})&\displaystyle\frac{\partial f_m}{\partial x_2}(\mathbf{p})&\cdots&\displaystyle\frac{\partial f_m}{\partial x_n}(\mathbf{p})  \end{bmatrix}

這個 m\times n 階矩陣稱為向量函數 F\mathbf{p} 的 Jacobian 矩陣或導數矩陣 (derivative matrix),記為 J(\mathbf{p})。因此,可導函數 F\mathbf{p} 的最佳仿射近似是

T(\mathbf{x})=F(\mathbf{p})+J(\mathbf{p})(\mathbf{x}-\mathbf{p})

\mathbf{h}=\mathbf{x}-\mathbf{p},則 F(\mathbf{x})=F(\mathbf{p}+\mathbf{h}) 的泰勒展開式為

F(\mathbf{p}+\mathbf{h})=F(\mathbf{p})+J(\mathbf{p})\mathbf{h}+O(\Vert\mathbf{h}\Vert^2)

因為 T(\mathbf{p})=F(\mathbf{p})

T(\mathbf{x})-T(\mathbf{p})=J(\mathbf{p})(\mathbf{x}-\mathbf{p})

上式指出仿射變換的改變量 T(\mathbf{x})-T(\mathbf{p}) 是自變量的改變量 \mathbf{x}-\mathbf{p} 的線性函數,Jacobian 矩陣 J(\mathbf{p}) 即為線性變換矩陣。直白地說,當我們將非線性函數予以線性化時,Jacobian 矩陣就是描述該線性關係的矩陣。

 
看兩個計算的例子。若 F_1(x,y)=(2x,-xy^2,x+3y^2),則

J_1(x,y)=\begin{bmatrix}  2&0\\  -y^2&-2xy\\  1&6y  \end{bmatrix}

F_2(x,y)=(2x,-x+2y,x+3y),則

J_2(x,y)=J_2=\left[\!\!\begin{array}{rc}  2&0\\  -1&2\\  1&3  \end{array}\!\!\right]

不令人意外,F_2(x,y)=J_2\begin{bmatrix}  x\\  y  \end{bmatrix},線性映射的 Jacobian 矩陣即為變換矩陣。

 
回到本文初給的例子,極座標至卡氏座標轉換的 Jacobian 矩陣計算如下:

J(r,\theta)=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial r}&\displaystyle\frac{\partial x}{\partial \theta}\\[1em]  \displaystyle\frac{\partial y}{\partial r}&\displaystyle\frac{\partial y}{\partial \theta}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial(r\cos\theta)}{\partial r}&\displaystyle\frac{\partial(r\cos\theta)}{\partial \theta}\\[1em]  \displaystyle\frac{\partial(r\sin\theta)}{\partial r}&\displaystyle\frac{\partial(r\sin\theta)}{\partial \theta}  \end{bmatrix}=\left[\!\!\begin{array}{cr}  \cos\theta&-r\sin\theta\\  \sin\theta&r\cos\theta  \end{array}\!\!\right]

\mathbf{u}(t)=\begin{bmatrix}  r(t)\\  \theta(t)  \end{bmatrix} 是極座標平面上的一條曲線,\mathbf{x}(t)=\begin{bmatrix}  x(t)\\  y(t)  \end{bmatrix} 是卡氏座標平面上的映射曲線,使用鏈式法則 (chain rule),d\mathbf{x}/dtd\mathbf{u}/dt 具有下列關係:

\displaystyle\frac{d\mathbf{x}}{dt}=\begin{bmatrix}  \displaystyle\frac{dx}{dt}\\[1em]  \displaystyle\frac{dy}{dt}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial r}\displaystyle\frac{dr}{dt}+\displaystyle\frac{\partial x}{\partial\theta}\displaystyle\frac{d\theta}{dt}\\[1em]  \displaystyle\frac{\partial y}{\partial r}\displaystyle\frac{dr}{dt}+\displaystyle\frac{\partial y}{\partial\theta}\displaystyle\frac{d\theta}{dt}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial r}&\displaystyle\frac{\partial x}{\partial\theta}\\[1em]  \displaystyle\frac{\partial y}{\partial r}&\displaystyle\frac{\partial y}{\partial\theta}  \end{bmatrix}\begin{bmatrix}  \displaystyle\frac{dr}{dt}\\[1em]  \displaystyle\frac{d\theta}{dt}  \end{bmatrix}=J(r,\theta)\displaystyle\frac{d\mathbf{u}}{dt}

從幾何上說,Jacobian 矩陣將極座標平面的切向量映至卡氏座標平面的切向量。

 
Jacobian 行列式

F:\mathbb{R}^n\to\mathbb{R}^n 是可導函數,則 Jacobian 是一個 n\times n 階矩陣,因此可計算行列式。下面我們討論 Jacobian 行列式的意義和用途。為方便說明,設 n=2,向量函數 F\mathbf{u}=\begin{bmatrix}  u\\  v  \end{bmatrix} 映至 \mathbf{x}=\begin{bmatrix}  x\\  y  \end{bmatrix},則 F 的 Jacobian 行列式為

\det J(u,v)=\begin{vmatrix}  \displaystyle\frac{\partial x}{\partial u}&\displaystyle\frac{\partial x}{\partial v}\\[1em]  \displaystyle\frac{\partial y}{\partial u}&\displaystyle\frac{\partial y}{\partial v}  \end{vmatrix}=\displaystyle\frac{\partial x}{\partial u}\displaystyle\frac{\partial y}{\partial v}-  \displaystyle\frac{\partial x}{\partial v}\displaystyle\frac{\partial y}{\partial u}

R 表示 \begin{bmatrix}  du\\  0  \end{bmatrix}\begin{bmatrix}  0\\  dv  \end{bmatrix} 所張的長方形,其中 dudv 是微小量。若 dudv 足夠接近 0,則 F(R)=\{F(\mathbf{u})\vert\mathbf{u}\in R\} 近似下列向量所張的平行四邊形 (見“線性變換把面積伸縮了”):

J(u,v)\begin{bmatrix}  du\\  0  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial u}&\displaystyle\frac{\partial x}{\partial v}\\[1em]  \displaystyle\frac{\partial y}{\partial u}&\displaystyle\frac{\partial y}{\partial v}  \end{bmatrix}\begin{bmatrix}  du\\  0  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial u}du\\[1em]  \displaystyle\frac{\partial y}{\partial u}du  \end{bmatrix}

J(u,v)\begin{bmatrix}  0\\  dv  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial u}&\displaystyle\frac{\partial x}{\partial v}\\[1em]  \displaystyle\frac{\partial y}{\partial u}&\displaystyle\frac{\partial y}{\partial v}  \end{bmatrix}\begin{bmatrix}  0\\  dv  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial v}dv\\[1em]  \displaystyle\frac{\partial y}{\partial v}dv  \end{bmatrix}

dA 代表平行四邊形 F(R) 的面積。因為二階行列式的行向量所張的平行四邊形面積等於行列式的絕對值 (見“行列式的運算公式與性質”),

dA=\begin{vmatrix}\det\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial u}du&\displaystyle\frac{\partial x}{\partial v}dv\\[1em]  \displaystyle\frac{\partial y}{\partial u}du&\displaystyle\frac{\partial y}{\partial v}dv  \end{bmatrix}\end{vmatrix}=\begin{vmatrix}\det\begin{bmatrix}  \displaystyle\frac{\partial x}{\partial u}&\displaystyle\frac{\partial x}{\partial v}\\[1em]  \displaystyle\frac{\partial y}{\partial u}&\displaystyle\frac{\partial y}{\partial v}  \end{bmatrix}\end{vmatrix}dudv=\vert\det J(u,v)\vert dudv

所以,微小區域 R 經向量函數 F 映射至 F(R),其面積伸縮了 \vert \det J(u,v)\vert 倍。

 
Jacobian 行列式最主要的應用在多重積分的換元積分法 (integration by substitution)。令 f:\mathbb{R}^2\to\mathbb{R} 為一個連續實函數,且 x=X(u,v)y=Y(u,v) 是一對一可導函數。根據上述面積變化關係式,可推得下面的變數變換積分公式:

\displaystyle\int_{F(R)}f(x,y)dxdy=\int_{R}f\left(X(u,v),Y(u,v)\right)\vert\det J(u,v)\vert dudv

以極座標至卡氏座標的變數變換為例,考慮 R=\{1\le r\le 2, 0\le\theta\le\pi/2\},求 x^2+y^2F(R) 的積分。從極座標區域 R 映至卡氏座標區域 F(R) 是一對一映射,因為

r=\sqrt{x^2+y^2},~~~\cos\theta=\displaystyle\frac{x}{\sqrt{x^2+y^2}}

\cos\theta0\le\theta\le\pi/2 是一對一函數。Jacobian 行列式為

\det J(u,v)=\left|\!\!\begin{array}{cr}  \cos\theta&-r\sin\theta\\  \sin\theta&r\cos\theta  \end{array}\!\!\right|=r\cos^2\theta+r\sin^2\theta=r

利用換元積分公式可得

\displaystyle  \int_{F(R)}(x^2+y^2)dxdy=\int_{R}r^2rdrd\theta=\int_{1}^{2}r^3dr\int_0^{\pi/2}d\theta=\displaystyle\frac{15\pi}{8}

 
Jacobian 與 Hessian

最後補充說明 Jacobian 和 Hessian 矩陣的關係。設 f:\mathbb{R}^n\to\mathbb{R} 為二次可導函數,\mathbf{x}=(x_1,\ldots,x_n)^T\in\mathbb{R}^nn\times n 階實對稱矩陣 H(\mathbf{x})=[h_{ij}(\mathbf{x})] 稱為 f 的 Hessian (見“Hermitian 矩陣與實對稱矩陣的一些實例”),定義如下:

\displaystyle  H(\mathbf{x})=\begin{bmatrix}  \displaystyle\frac{\partial^2f}{\partial x_1\partial x_1}&\displaystyle\frac{\partial^2f}{\partial x_1\partial x_2}&\cdots&\displaystyle\frac{\partial^2f}{\partial x_1\partial x_n}\\[1em]  \displaystyle\frac{\partial^2 f}{\partial x_2\partial x_1}&\displaystyle\frac{\partial^2 f}{\partial x_2\partial x_2}&\cdots&\displaystyle\frac{\partial^2 f}{\partial x_2\partial x_n}\\  \vdots&\vdots&\ddots&\vdots\\  \displaystyle\frac{\partial^2 f}{\partial x_n\partial x_1}&\displaystyle\frac{\partial^2f}{\partial x_n\partial x_2}&\cdots&\displaystyle\frac{\partial^2 f}{\partial x_n\partial x_n}  \end{bmatrix}

f\mathbf{x} 的梯度 (gradient) \nabla f(\mathbf{x}) 定義為一個 n 維向量,其中第 i 元是 fx_i 的一次偏導數,即

\displaystyle  \nabla f(\mathbf{x})=\begin{bmatrix}  \displaystyle\frac{\partial f}{\partial x_1}\\[1em]  \displaystyle\frac{\partial f}{\partial x_2}\\  \vdots\\  \displaystyle\frac{\partial f}{\partial x_n}  \end{bmatrix}

梯度 \nabla f:\mathbb{R}^n\to\mathbb{R} 是一個向量函數,\nabla f 的 Jacobian 矩陣如下:

J(\mathbf{x})=\begin{bmatrix}  \displaystyle\frac{\partial}{\partial x_1}\left(\frac{\partial f}{\partial x_1}\right)&\displaystyle\frac{\partial}{\partial x_2}\left(\frac{\partial f}{\partial x_1}\right)&\cdots&\displaystyle\frac{\partial}{\partial x_n}\left(\frac{\partial f}{\partial x_1}\right)\\[1em]  \displaystyle\frac{\partial}{\partial x_1}\left(\frac{\partial f}{\partial x_2}\right)&\displaystyle\frac{\partial}{\partial x_2}\left(\frac{\partial f}{\partial x_2}\right)&\cdots&\displaystyle\frac{\partial}{\partial x_n}\left(\frac{\partial f}{\partial x_2}\right)\\  \vdots&\vdots&\ddots&\vdots\\  \displaystyle\frac{\partial}{\partial x_1}\left(\frac{\partial f}{\partial x_n}\right)&\displaystyle\frac{\partial}{\partial x_2}\left(\frac{\partial f}{\partial x_n}\right)&\cdots&\displaystyle\frac{\partial}{\partial x_n}\left(\frac{\partial f}{\partial x_n}\right)  \end{bmatrix}=H(\mathbf{x})

因此證明梯度 \nabla f 的 Jacobian 即為 f 的 Hessian 矩陣。

相關閱讀:
This entry was posted in 線性代數專欄, 應用之道 and tagged , , , , , , , , . Bookmark the permalink.

14 Responses to Jacobian 矩陣與行列式

  1. 黃顗融 says:

    老師,jacobian行列式為轉換因子從幾何證明最多證到三維,那要如何證明推廣到n維依舊是轉換因子@@?

  2. 黃顗融 says:

    老師,我看了你上面的文章,所以是dxdydz…..這式子成立必須dx,dy,dz彼此間互相正交(因為才不會互相影響),在不同座標系微分後有(dx,dy,dz)^T=A(du,dv,dt,)^T,(A為一矩陣),將dx,dy,dz取出後視為向量再將各向量正交化後由上面文章知道dxdydz=|A|dudvdt而|A|即為Jacobian。
    老師這樣想是對的嗎@@?

  3. 陈宇 says:

    老师你好。在文章里,你说到若存在一个m*n的实阶A使得那个极限(其实就是P点的导数)等于0,我们说F在P可导。我很奇怪,可导的条件不是左极限等于有极限吗?为什么文章里写的是极限等于零呢?

  4. 蔡宜家 says:

    梯度 \nabla f:\mathbb{R}^n\to\mathbb{R} 是一個向量函數,是不是應該f:\mathbb{R}^n\to\mathbb{R}^n

Leave a reply to 蔡宜家 Cancel reply