矩陣微積分

在數學中，矩陣微積分是多元微積分的一種特殊表達，尤其是在矩陣空間上進行討論的時候。它把單個函數對多個變量或者多元函數對單個變量的偏導數寫成向量和矩陣的形式，使其可以被當成一個整體被處理。這使得要在多元函數尋找最大或最小值，又或是要為微分方程系統尋解的過程大幅簡化。這裡我們主要使用統計學和工程學中的慣用記法，而張量下標記法更常用於物理學中。

## 記法與術語說明

本條目中，我們使用單個字母變量來表示多個變量的集合體（向量和矩陣），這樣可以充分利用矩陣記法的效用。

本條目使用不同字體來區分標量、向量和矩陣。下面使用M(n,m)來表示包含n行m列的n×m實矩陣的空間，它等同於$\mathbb{R}^{n \times m}$。該空間中的一般矩陣用粗體大寫字母表示，例如$\mathbf{A}$，$\mathbf{X}$，$\mathbf{Y}$等。而若該矩陣屬於M(n,1)，即列向量，則用粗體小寫字母表示，如$\mathbf{a}$，$\mathbf{x}$，$\mathbf{y}$等。特別地，M(1,1)中的元素為標量，用小寫斜體字母表示，如a，t，x等。$\mathbf{X}^\mathrm{T}$ 表示矩陣轉置，tr($\mathbf{X}$)表示矩陣的跡，而 $\det(\mathbf{X})$或$|\mathbf{X}|$表示行列式。除非專門註明，所有函數都默認屬於光滑函數C1。通常字母表前半部分的字母(a, b, c, …)用於表示常量，而後半部分的字母(t, x, y, …)用於表示變量。

### 矩陣的內積和範數

向量的內積（點積）在諸多領域中有著廣泛的運用。

定義在$\mathbb{R}^n$上的向量$\mathbf{a}=[a_1, a_2, \cdots, a_n]^T$和$\mathbf{b}=[b_1, b_2, \cdots, b_n]^T$的點積定義為：

$\langle \mathbf{a},\mathbf{b}\rangle := \mathbf{a}\cdot \mathbf{b} = \mathbf{a}^\mathrm{T} \mathbf{b} = \mathbf{b}^\mathrm{T} \mathbf{a}= \sum_{i=1}^n a_ib_i = a_1b_1 + a_2b_2 + \cdots + a_nb_n$。

和向量類似，矩陣也可以定義內積（弗羅比尼烏斯內積）：對於定義在$\mathbb{R}^{m \times n}$上的實矩陣$\mathbf{A}$和$\mathbf{B}$，$\langle \mathbf{A}, \mathbf{B}\rangle := \mathbf{A} : \mathbf{B} = \sum_{i=1}^m \sum_{j=1}^n A_{ij} B_{ij} = \mathrm{tr} ( \mathbf{B}^\mathrm{T} \mathbf{A} ) = \mathrm{tr} ( \mathbf{A} \mathbf{B}^\mathrm{T} ) = \mathrm{tr} ( \mathbf{A}^\mathrm{T} \mathbf{B} ) = \mathrm{tr} ( \mathbf{B} \mathbf{A}^\mathrm{T} )$。

利用內積，可以定義向量和矩陣的範數（模）。

向量可以以多種形式定義範數。歐幾里得範數是 $\mathbb R ^n$ 上最常用的範數。它可以以向量與其自身的內積的平方根表示：

$\|\mathbf{a}\| := \sqrt{\langle \mathbf{a},\mathbf{a}\rangle} =\sqrt{\sum_{i=1}^n a_i^2} = \sqrt{a_1^2 + a_2^2 + \cdots + a_n^2}$。

而矩陣範數也有多種定義，數值線性代數中最常用的一種範數為弗羅貝尼烏斯範數，它是矩陣與其自身的弗羅比尼烏斯內積的平方根：對於定義在$\mathbb{R}^{m \times n}$上的實矩陣$\mathbf{A}$。

$\|\mathbf{A}\| := \sqrt{\langle \mathbf{A},\mathbf{A}\rangle} = \sqrt{\sum_{i=1}^m \sum_{j=1}^n A_{ij}^2} = \sqrt{\mathrm{tr} ( \mathbf{A}^\mathrm{T} \mathbf{A} )} = \sqrt{\mathrm{tr} ( \mathbf{A} \mathbf{A}^\mathrm{T} )}$。

對於復向量和復矩陣，將轉置改為共軛轉置即可。

### 線性映射

線性映射指的是滿足保持向量空間中向量加法和數乘運算的映射。此處的「向量」是抽象代數意義上的。也就是說，從向量空間$V$到$W$（二者的係數體均為$K$）的映射$\mathcal{L}: V \to W$要想成為線性映射，必須滿足齊次性和疊加性：

- 齊次性：對於任何向量$\mathbf{x} \in V$ 和任何標量 $a \in K$：

$$\mathcal{L}(a \mathbf{x})= a \mathcal{L}(\mathbf{x})$$

- 疊加性：對於任意兩個 $V$ 中的向量 $\mathbf{x}$ 和 $\mathbf{y}$：

$$\mathcal{L}(\mathbf{x} + \mathbf{y})= \mathcal{L}(\mathbf{x}) + \mathcal{L}(\mathbf{y})$$

對於實列向量（即一般意義上的實向量），將上述表述中的$V$、$W$和$K$改為$\mathbb R ^m$、$\mathbb R ^n$和$\mathbb R$即可。可以知道這種線性映射可以通過n×m實矩陣矩陣左乘向量得到。

對於實矩陣，將上述表述中的$V$、$W$和$K$改為$\mathbb R ^{m \times n}$、$\mathbb R ^{p \times q}$和$\mathbb R$即可。

特別地，對於實標量，線性映射指的就是正比例函數。

## 向量和矩陣的極限

對於向量和矩陣，可以使用類似於標量的極限定義方式來定義它們的極限。

標量序列的極限的現代定義如下：

對於標量序列$\{a_n\}$，當

$\forall \epsilon > 0, \exists N > 0,$使得$\forall n > N,$都有$|a_n - A|<\epsilon$

稱其在$n \to \infty$時的極限為A。記作$\lim_{n \to \infty} a_n = A$。

對於向量或矩陣序列也有類似的定義。

對於定義在$\mathbb{R}^{m \times n}$的子集$S$上的向量或者矩陣序列$\{\mathbf{A}^{(n)}\}$，令$\mathbf{X}_0$為$S$的內點，當

$\forall \epsilon > 0, \exists N > 0,$使得$\forall n > N,$都有$\|\mathbf{A}^{(n)} - \mathbf{A}\|<\epsilon$

稱其在$n \to \infty$時的極限為$\mathbf{A}$。記作$\lim_{n \to \infty} \mathbf{A}^{(n)} = \mathbf{A}$。

標量函數的極限的現代定義如下：

對於標量函數$f(x)$，當

$\forall \epsilon > 0, \exists \delta > 0,$使得$\forall x \in \{x \in \mathbb{R} | 0<|x - x_0|<\delta\},$都有$|f(x) - A|<\epsilon$

稱其在$x_0$處的極限為A。記作$\lim_{x \to x_0} f(x) = A$。

對於向量或矩陣函數也有類似的定義。

對於定義在$\mathbb{R}^{m \times n}$的子集$S$上的向量或者矩陣函數$\mathbf{F}(\mathbf{X}): S \to \mathbb{R}^{p \times q}$，令$\mathbf{X}_0$為$S$的內點，當 $\forall \epsilon > 0, \exists \delta > 0,$使得$\forall \mathbf{X} \in \{\mathbf{X} \in S | 0<\|\mathbf{X} - \mathbf{X}_0\|<\delta\},$都有$\|\mathbf{F}(\mathbf{X}) - \mathbf{A}\|<\epsilon$ 時，稱其在$\mathbf{X}_0$處的極限為$\mathbf{A}$。記作$\lim_{\mathbf{X} \to \mathbf{X}_0} \mathbf{F}(\mathbf{X}) = \mathbf{A}$。可以定義向量函數的連續：

對於定義於$\mathbb{R}^n$的子集$S$的向量函數$\mathbf{f}(\mathbf{x}): S \to \mathbb{R}^m$，令$\mathbf{x}_0$為$S$的內點，當

$\forall \epsilon > 0, \exists \delta > 0,$使得$\forall \mathbf{x} \in \{\mathbf{x} \in S | \|\mathbf{x} - \mathbf{x}_0\|<\delta\},$都有$\|\mathbf{f}(\mathbf{x}) - \mathbf{f}(\mathbf{x}_0)\|<\epsilon$

稱其在$\mathbf{x}_0$處連續。

## 矩陣的級數

類似於標量級數，我們規定矩陣序列$\{\mathbf{A}^{(n)}\}$的無窮和$\mathbf{A}^{(0)} + \mathbf{A}^{(1)} + \mathbf{A}^{(2)} + \cdots$為矩陣的級數。記為$\sum_{k=0}^{\infty} \mathbf{A}^{(k)}$。它是部分和序列$\mathbf{S}^{(n)} = \sum_{k = 0}^n \mathbf{A}^{(k)}$在$n \to \infty$時的極限。如果這個極限收斂，稱這個矩陣級數收斂，反之稱為矩陣級數發散。

如果所有矩陣的各個位置的元素的級數和都是絕對收斂的，稱這個矩陣絕對收斂。可以證明這與矩陣範數的級數和收斂等價。

絕對收斂的矩陣級數一定收斂，並且可以 交換求和次序並且不影響結果。

對於矩陣也可以定義冪級數。規定對於方陣序列$\{\mathbf{A}^k\}$以及複數序列$c_k$，無窮和$\sum_{k=0}^\infty c_k \mathbf{A}^k =c_0\mathbf{A}^{0} + c_1\mathbf{A}^{1} + c_2\mathbf{A}^{2} + \cdots$為矩陣的冪級數。

## 矩陣初等函數

可以利用方陣的冪級數定義方陣的初等函數。

下面是常見的方陣函數。

$$e^{\mathbf{A}} = \sum_{k = 0}^\infty \frac{\mathbf{A}^k}{k!} = \mathbf{E} + \frac{\mathbf{A}}{1!} + \frac{\mathbf{A}^2}{2!}+ \frac{\mathbf{A}^3}{3!} + \cdots + \frac{\mathbf{A}^k}{k!} + \cdots$$

$\sin \mathbf{A} = \sum_{k = 0}^\infty (-1)^k \frac{\mathbf{A}^{2k+1}}{(2k+1)!} = \frac{\mathbf{A}}{1!} - \frac{\mathbf{A}^3}{3!}+ \frac{\mathbf{A}^5}{5!} + \cdots + (-1)^k \frac{\mathbf{A}^{2k+1}}{(2k+1)!} + \cdots$ $\cos \mathbf{A} = \sum_{k = 0}^\infty (-1)^k \frac{\mathbf{A}^{2k}}{(2k)!} = \mathbf{E} - \frac{\mathbf{A}^2}{2!}+ \frac{\mathbf{A}^4}{4!} + \cdots + (-1)^k \frac{\mathbf{A}^{2k}}{(2k)!} + \cdots$

## 向量求導

由於向量可看成僅有一列的矩陣，最簡單的矩陣求導為向量求導。

這裡的標記方法可以通過如下方式表達大部分向量微積分：把n維向量構成的空間M(n,1)等同為歐氏空間$\mathbb{R}^n$，標量M(1,1)等同於$\mathbb{R}$。對應的向量微積分的概念在每小節末尾列出。

首先定義向量函數的微分：

採用分子布局記法時，對於定義於$\mathbb{R}^n$的子集$S$的向量函數$\mathbf{f}(\mathbf{x}): S \to \mathbb{R}^m$，令$\mathbf{x}_0$為$S$的內點，$B(\mathbf{x}_0;r)$為$S$中以$\mathbf{x}_0$為球心，$r$為半徑的超球體，$\mathbf{x}\in B(\mathbf{x}_0;r)$，如果存在一個線性映射$\mathbf{A}$，使得

$$\mathbf{f}(\mathbf{x}) - \mathbf{f}(\mathbf{x}_0) = \mathbf{A}(\mathbf{x}-\mathbf{x}_0)+\mathbf{r}_{\mathbf{x}_0}(\mathbf{x}-\mathbf{x}_0)$$

並且

$$\lim_{\mathbf{x} \to \mathbf{x}_0} \frac{\mathbf{r}_{\mathbf{x}_0}(\mathbf{x}-\mathbf{x}_0)}{\|\mathbf{x}-\mathbf{x}_0\|} = 0$$

稱其在$\mathbf{x}_0$處可微。我們定義向量函數的微分為$\operatorname{d}\mathbf{f} := \mathbf{A}\operatorname{d}\mathbf{x}$。

有如下的定理：

當$\mathbf{f}(\mathbf{x})$在$\mathbf{x}_0$處可微時，其在該點處連續。反之則不然。

我們將向量函數$\mathbf{f}(\mathbf{x})$的第i個分量在$\mathbf{x}_0$處對自變量向量的第j個分量的偏導數定義為$\lim_{t \to 0}\frac{f_i(\mathbf{x}_0 + t\mathbf{e}_j) - f_i(\mathbf{x}_0)}{t}$，其中$\mathbf{e}_j$是第j個單位向量。記作$\operatorname{D}_j f_i$。

當$\mathbf{f}(\mathbf{x})$在$\mathbf{x}_0$處可微時，其各分量在該點處關於自變量各分量的偏導數存在。當$\mathbf{f}(\mathbf{x})$在$\mathbf{x}_0$處可微時，如果令$\operatorname{D}\mathbf{f}$為一個m×n矩陣，其第i列第j行元素為$\operatorname{D}_j f_i$。那麼它就是向量微分定義中的矩陣$\mathbf{A}$。

我們把矩陣$\operatorname{D}\mathbf{f}$叫做向量函數的導數。也記作$\frac{\operatorname{d}\mathbf{f}}{\operatorname{d}\mathbf{x}}$。注意這裡使用的是分子布局記法。

這裡的「分子布局記法」一般指，在表示導數向量（或矩陣）時，該導數的行數等於導數表達式中處於分子部分的參數維度；若採用分母布局記法，則導數的行數等於導數表達式中處於分母部分的參數維度。分子布局記法的結果與分母布局記法的結果互為轉置關係。

### 向量對標量求導

標量可以視作一個1維向量。所以採用分子布局記法時，m維向量向量對標量求導的結果是一個m×1的矩陣，也就是m維列向量。

向量$<pre> \mathbf{y} = \begin{bmatrix} y_1 & y_2 & \cdots & y_m \end{bmatrix}^\mathsf{T} </pre>$關於標量x的導數可以（用分子記法）寫成

$$\frac{\operatorname{d} \mathbf{y}}{\operatorname{d} x} = <pre> \begin{bmatrix} \frac{\operatorname{d} y_1}{\operatorname{d} x}\\ \frac{\operatorname{d} y_2}{\operatorname{d} x}\\ \vdots\\ \frac{\operatorname{d} y_m}{\operatorname{d} x}\\ \end{bmatrix} </pre>$$

在向量微積分中，向量$\mathbf{y}$關於標量$x$的導數也被稱為向量$\mathbf{y}$的切向量，$\frac{\operatorname{d} \mathbf{y}}{\operatorname{d} x}$。注意這裡$\mathbf{y}: \mathbb{R} \rightarrow \mathbb{R}^{n}$。

可以看到向量對標量求導就是其各個分量分別對標量求導。

有$\operatorname{d} \mathbf{y} = \frac{\operatorname{d} \mathbf{y}}{\operatorname{d} x}\operatorname{d} x$

例子 簡單的樣例包括歐式空間中的速度向量，它是位移向量（看作關於時間的函數）的切向量。更進一步而言，加速度是速度的切向量。

### 標量對向量求導

標量y對向量$<pre> \mathbf{x} = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}^\mathsf{T} </pre>$的導數可以（用分子記法）寫成

$$\frac{\operatorname{d} y}{\operatorname{d} \mathbf{x}} = <pre> \begin{bmatrix} \frac{\partial y}{\partial x_1} & \frac{\partial y}{\partial x_2} & \cdots & \frac{\partial y}{\partial x_n} \end{bmatrix} </pre>$$

有$\operatorname{d} y = \frac{\operatorname{d} y}{\operatorname{d} \mathbf{x}} \operatorname{d} \mathbf{x} = \sum_{i = 1}^n \frac{\partial y}{\partial x_i} \operatorname{d} x_i$。

在向量微積分中，標量y在空間$\mathbb R ^n$(其獨立坐標是x的分量)中的梯度是標量y對向量$\mathbf{x}$的導數的轉置。在物理學中，電場是電勢的負梯度向量。

標量函數$f(\mathbf{x})$對空間向量$\mathbf{x}$在單位向量$\mathbf{u}$（在這裡表示為列向量）方向上的方向導數可以用梯度定義：

$$\nabla_{\mathbf{u}}{f}(\mathbf{x}) = \nabla f(\mathbf{x}) \cdot \mathbf{u}$$

使用剛才定義的標量對向量的導數的記法，我們可以把方向導數寫作

$\nabla_\mathbf{u} f = \left(\frac{\partial f}{\partial \mathbf{x}}\right)^\top\mathbf{u}$。

這類記法在證明乘法法則和鏈式法則的時候非常直觀，因為它們與我們熟悉的標量導數的形式較為相似。

### 向量對向量求導

前面兩種情況可以看作是向量對向量求導在其中一個是一維向量情況下的特例。類似地我們將會發現有關矩陣的求導可被以一種類似的方式化歸為向量求導。

向量函數 (分量為函數的向量) $<pre> \mathbf{y} = \begin{bmatrix} y_1 & y_2 & \cdots & y_m \end{bmatrix}^\mathsf{T} </pre>$對輸入向量$<pre> \mathbf{x} = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}^\mathsf{T} </pre>$的導數，可以（用分子記法) 寫作

$$\frac{\operatorname{d} \mathbf{y}}{\operatorname{d} \mathbf{x}} = <pre> \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n}\\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y_m}{\partial x_1} & \frac{\partial y_m}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_n}\\ \end{bmatrix} </pre>$$

在向量微積分中，向量函數$\mathbf{y}$對分量表示一個空間的向量$\mathbf{x}$的導數也被稱為前推，或雅可比矩陣。

向量函數$\mathbf{f}$對Rn空間中向量$\mathbf{v}$的前推為$<pre> \operatorname{d}\mathbf{f}(\mathbf{v}) = \frac{\operatorname{d} \mathbf{f}}{\operatorname{d} \mathbf{v}} \operatorname{d}\mathbf{v} </pre>$

## 矩陣求導

有兩種類型的矩陣求導可以被寫成相同大小的矩陣：矩陣對標量求導和標量對矩陣求導。它們在解決應用數學的許多領域常見的最小化問題中十分有用。類比於向量求導，相應的概念有切矩陣和梯度矩陣。

### 矩陣對標量求導

矩陣函數$\mathbf{Y}$對標量x的導數被稱為切矩陣，(用分子記法)可寫成：

$$\frac{\operatorname{d} \mathbf{Y}}{\operatorname{d} x} = \begin{bmatrix} \frac{\partial y_{11}}{\partial x} & \frac{\partial y_{12}}{\partial x} & \cdots & \frac{\partial y_{1n}}{\partial x}\\ \frac{\partial y_{21}}{\partial x} & \frac{\partial y_{22}}{\partial x} & \cdots & \frac{\partial y_{2n}}{\partial x}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y_{m1}}{\partial x} & \frac{\partial y_{m2}}{\partial x} & \cdots & \frac{\partial y_{mn}}{\partial x}\\ \end{bmatrix}$$

### 標量對矩陣求導

定義在元素是獨立變量的p×q矩陣$\mathbf{X}$上的標量函數y對$\mathbf{X}$的導數可以(用分子記法)寫作

$$\frac{\operatorname{d} y}{\operatorname{d} \mathbf{X}} = \begin{bmatrix} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{21}} & \cdots & \frac{\partial y}{\partial x_{p1}}\\ \frac{\partial y}{\partial x_{12}} & \frac{\partial y}{\partial x_{22}} & \cdots & \frac{\partial y}{\partial x_{p2}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y}{\partial x_{1q}} & \frac{\partial y}{\partial x_{2q}} & \cdots & \frac{\partial y}{\partial x_{pq}}\\ \end{bmatrix}$$

定義矩陣上的重要的標量函數包括矩陣的跡和行列式。

類比於向量微積分，這個導數常被寫成如下形式：

$$\nabla_\mathbf{X} y(\mathbf{X}) = \frac{\partial y(\mathbf{X})}{\partial \mathbf{X}}$$

類似地，標量函數f(X)關於矩陣X在方向Y的方向導數可寫成

$$\nabla_\mathbf{Y} f = \operatorname{tr} \left(\frac{\partial f}{\partial \mathbf{X}} \mathbf{Y}\right)$$

梯度矩陣經常被應用在估計理論的最小化問題中，比如卡爾曼濾波演算法的推導，因此在這些領域中有著重要的地位。

## 向量的二階導數

考慮定義於$\mathbb{R}^n$的子集$S$的向量函數$\mathbf{f}(\mathbf{x}): S \to \mathbb{R}^m$，設向量函數$\mathbf{f}(\mathbf{x})$的第i個分量為$f_i(\mathbf{x})$，並假設其在S的內部點及其開鄰域內有偏導數$\operatorname{D}_j f_i$。

考慮極限$\lim_{t \to 0}\frac{\operatorname{D}_j f_i(\mathbf{x}_0 + t\mathbf{e}_k) - \operatorname{D}_j f_i(\mathbf{x}_0)}{t}$，其中$\mathbf{e}_k$是第k個單位向量。如果這個極限存在，稱其為$f_i(\mathbf{x})$在$\mathbf{x}_0$處的第(k, j)二階偏導數，記作$\operatorname{D}^2_{kj} f_i (\mathbf{x}_0)$。

### 黑塞矩陣

黑塞矩陣是一個包含所有二階偏導數的矩陣。這個矩陣只對定義於$\mathbb{R}^n$的子集$S$的實值函數$f(\mathbf{x}): S \to \mathbb{R}$有定義，是一個n×n矩陣。其定義如下：

對於定義於$\mathbb{R}^n$的子集$S$的實值函數$f(\mathbf{x}): S \to \mathbb{R}$，令$\mathbf{x}_0$為$S$的內點，並且此處的各個二階偏導數存在，我們定義該處的黑塞矩陣如下：

$$\begin{bmatrix} \operatorname{D}^2_{11} f(\mathbf{x}_0) & \operatorname{D}^2_{21} f (\mathbf{x}_0) & \cdots & \operatorname{D}^2_{n1} f (\mathbf{x}_0) \\\operatorname{D}^2_{12} f(\mathbf{x}_0) & \operatorname{D}^2_{22} f (\mathbf{x}_0) & \cdots & \operatorname{D}^2_{n2} f (\mathbf{x}_0) \\ \vdots & \vdots & & \vdots \\\operatorname{D}^2_{1n} f(\mathbf{x}_0) & \operatorname{D}^2_{2n} f (\mathbf{x}_0) & \cdots & \operatorname{D}^2_{nn} f (\mathbf{x}_0) \end{bmatrix}$$