正定矩阵和半正定矩阵是线性代数和优化理论中至关重要的概念。它们深刻地揭示了二次型(quadratic forms)的代数性质和与之相关的几何形状。
我们首先可以用一个简单的类比来理解:
正定矩阵(Positive Definite Matrix, PD)就像是一个正数 ,对于任何非零向量 x \mathbf{x} x ,其对应的二次型 x T A x \mathbf{x}^TA \mathbf{x} x T A x 的结果总是严格 > 0 >0 > 0 .
半正定矩阵(Positive Semi-definite Matrix, PSD)就像是一个非负数 ,对于任何非零向量 x \mathbf{x} x ,其对应的二次型 x T A x \mathbf{x}^TA \mathbf{x} x T A x 的结果总是 ≥ 0 \ge 0 ≥ 0 .
正式定义如下:
A symmetric matrix A ∈ R n × n A\in \mathbb{R}^{n\times n} A ∈ R n × n is called positive definite (PD) if x T A x > 0 \mathbf{x}^TA \mathbf{x}>0 x T A x > 0 ∀ 0 ≠ x ∈ R n \forall\, \mathbf{0}\neq \mathbf{x}\in \mathbb{R}^{n} ∀ 0 = x ∈ R n .
A symmetric matrix A ∈ R n × n A\in \mathbb{R}^{n\times n} A ∈ R n × n is called positive semi-definite (PSD) if x T A x ≥ 0 \mathbf{x}^TA \mathbf{x}\ge0 x T A x ≥ 0 ∀ 0 ≠ x ∈ R n \forall\, \mathbf{0}\neq \mathbf{x}\in \mathbb{R}^{n} ∀ 0 = x ∈ R n .
关于我们如何证明 一个矩阵是半正定或是正定,有三种方法:
用定义证。
对于 PD ,其所有的特征值 都 > 0 >0 > 0 . 对于 PSD ,其所有特征值 都 ≥ 0 \ge 0 ≥ 0 .
对于 PD ,其所有主子矩阵(principal submatrix)的行列式都为正 ,也可以说所有的首项顺序主子式(leading principal minor)都为正。
但要注意,对于 PSD 没有后面那条性质 ,也就是说如果矩阵 A A A 的所有首项顺序主子式都为非负,不能说矩阵 A A A 是半正定矩阵。
反例:A = [ 0 0 0 − 1 ] A=\begin{bmatrix}0 & 0 \\ 0 & -1\end{bmatrix} A = [ 0 0 0 − 1 ] ,其所有首项顺序主子式都为非负(0),但因为 ( 0 , − 1 ) [ 0 0 0 − 1 ] ( 0 − 1 ) = − 1 < 0 (0,-1)\begin{bmatrix}0 & 0 \\ 0 & -1\end{bmatrix} \begin{pmatrix}0 \\ -1\end{pmatrix}=-1<0 ( 0 , − 1 ) [ 0 0 0 − 1 ] ( 0 − 1 ) = − 1 < 0 ,所以 A A A 并不是一个半正定矩阵。
实际上,对于 PSD ,有:其所有主子矩阵(principal submatrix)的行列式都为非负 ,即所有的顺序主子式(principal minor)为非负。
关于最后一个方法,所谓的首项主子矩阵 就如下图:
图中的每一个框都是一个首项主子矩阵,以此类推直到整个矩阵。
所以,所有的首项主子矩阵也可以写成下述形式
A k = [ a 11 a 12 a 13 ⋯ a 1 k a 21 a 22 a 23 ⋯ a 2 k a 31 a 32 a 33 ⋯ a 3 k ⋮ ⋮ ⋮ ⋮ ⋮ a k 1 a k 2 a k 3 ⋯ a k k ] k × k ∀ k = 1 , 2 , … , n A_k=\begin{bmatrix}
a_{11} & a_{12} & a_{13} & \cdots & a_{1k} \\
a_{21} & a_{22} & a_{23} & \cdots & a_{2k} \\
a_{31} & a_{32} & a_{33} & \cdots & a_{3k} \\
\vdots & \vdots & \vdots & \vdots & \vdots \\
a_{k1} & a_{k2} & a_{k3} & \cdots & a_{kk}
\end{bmatrix}_{k \times k} \enspace \forall\, k =1,2,\ldots,n A k = a 11 a 21 a 31 ⋮ a k 1 a 12 a 22 a 32 ⋮ a k 2 a 13 a 23 a 33 ⋮ a k 3 ⋯ ⋯ ⋯ ⋮ ⋯ a 1 k a 2 k a 3 k ⋮ a k k k × k ∀ k = 1 , 2 , … , n
而所谓的首项顺序主子式 就是首项主子矩阵的行列式。
对于一般的主子矩阵 ,指的是删除相同的行和列而形成的子矩阵;而一般的顺序主子式 就是主子矩阵的行列式。
关于最后一个方法,所谓的对称子矩阵 定义如下:
A submatrix B B B of A A A is called symmetric if it is of the form
B = [ a i 1 i 1 a i 1 i 2 a i 1 i 3 ⋯ a i 1 i k a i 2 i 1 a i 2 i 2 a i 2 i 3 ⋯ a i 2 i k a i 3 i 1 a i 3 i 2 a i 3 i 3 ⋯ a i 3 i k ⋮ ⋮ ⋮ ⋮ ⋮ a i k i 1 a i k i 2 a i k i 3 ⋯ a i k i k ] k × k ⟺ a i j is an entry of B iff a j i is also an entry of B . \begin{align}
&B=\begin{bmatrix}
a_{i_1i_1} & a_{i_1i_2} & a_{i_1i_3} & \cdots & a_{i_1i_k} \\
a_{i_2i_1} & a_{i_2i_2} & a_{i_2i_3} & \cdots & a_{i_2i_k} \\
a_{i_3i_1} & a_{i_3i_2} & a_{i_3i_3} & \cdots & a_{i_3i_k} \\
\vdots & \vdots & \vdots & \vdots & \vdots \\
a_{i_ki_1} & a_{i_ki_2} & a_{i_ki_3} & \cdots & a_{i_ki_k}
\end{bmatrix}_{k \times k} \\
& \\
& \iff a_{ij}\enspace \text{is an entry of $B$ iff}\enspace a_{ji} \enspace \text{is also an entry of $B$.}
\end{align} B = a i 1 i 1 a i 2 i 1 a i 3 i 1 ⋮ a i k i 1 a i 1 i 2 a i 2 i 2 a i 3 i 2 ⋮ a i k i 2 a i 1 i 3 a i 2 i 3 a i 3 i 3 ⋮ a i k i 3 ⋯ ⋯ ⋯ ⋮ ⋯ a i 1 i k a i 2 i k a i 3 i k ⋮ a i k i k k × k ⟺ a ij is an entry of B iff a j i is also an entry of B .
其中:
entry of matrix 指的是矩阵的元素。
1 ≤ i 1 < i 2 < … < i k ≤ n & 1 ≤ k ≤ n 1\le i_1 < i_2 < \ldots < i_k \le n \enspace\& \enspace 1\le k \le n 1 ≤ i 1 < i 2 < … < i k ≤ n & 1 ≤ k ≤ n 。
此外,当对称矩阵 A ∈ R 2 × 2 A\in \mathbb{R}^{2\times 2} A ∈ R 2 × 2 时,有特殊的方法证明其是否为 PSD ,只要其满足下面两个条件:
a 11 ≥ 0 , a 22 ≥ 0 a_{11}\ge 0,a_{22}\ge 0 a 11 ≥ 0 , a 22 ≥ 0
∣ A ∣ ≥ 0 |A|\ge 0 ∣ A ∣ ≥ 0
其中 A = [ a 11 a 12 a 21 a 22 ] 2 × 2 A=\begin{bmatrix}a_{11} & a_{12} \\ a_{21} & a_{22}\end{bmatrix}_{2\times 2} A = [ a 11 a 21 a 12 a 22 ] 2 × 2