前言
之前的四篇内容分别介绍了特征分解,SVD分解,LU和PLU分解,Cholesky分解,满秩分解和QR分解,现在来进行总结。
特征分解(谱分解)
对于n阶方阵A,如果具有n个线性无关的特征向量,则可以进行特征分解:
A
=
P
Λ
P
−
1
A=P\Lambda P^{-1}
A=PΛP−1
其中,
P
P
P是
A
A
A的特征向量组成的矩阵,
Λ
\Lambda
Λ是
P
P
P对应的特征值对角矩阵。
特征分解的速度一般,精度一般。当特征值固定从大到小排列时,分解结果唯一。
SVD分解
对于任意矩阵
A
∈
R
m
×
n
A\in R^{m\times n}
A∈Rm×n,都可以进行SVD奇异值分解:
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT
其中,
U
∈
R
m
×
m
U\in R^{m\times m}
U∈Rm×m是
A
A
T
AA^T
AAT的正交对角化的正交矩阵,
V
∈
R
n
×
n
V\in R^{n\times n}
V∈Rn×n是
A
A
T
AA^T
AAT是
A
T
A
A^TA
ATA的正交对角化的正交矩阵,
Σ
∈
R
m
×
n
=
[
d
i
a
g
{
λ
A
T
A
}
0
]
,
m
>
n
;
Σ
∈
R
m
×
n
=
[
d
i
a
g
{
λ
A
A
T
}
0
]
,
m
<
n
\Sigma\in R^{m\times n}=\begin{bmatrix} diag\{\sqrt\lambda_{A^TA}\} \\ 0 \end{bmatrix},m>n;\Sigma\in R^{m\times n}=\begin{bmatrix} diag\{\sqrt\lambda_{AA^T}\} \quad 0 \end{bmatrix},m<n
Σ∈Rm×n=[diag{λATA}0],m>n;Σ∈Rm×n=[diag{λAAT}0],m<n,即
A
A
A的奇异值矩阵。
SVD速度较慢,精度很好。当奇异值固定从大到小排列时,分解结果唯一。
LU和PLU分解
对于可逆方阵
A
∈
R
n
×
n
A\in R^{n\times n}
A∈Rn×n,可以分解为下三角矩阵和上三角矩阵的乘积:
A
=
L
U
A=LU
A=LU
实际使用为了提升稳定性,一般使用PLU分解,P是一个行换换矩阵:
A
=
P
L
U
A=PLU
A=PLU
PLU分解速度较快,精度一般。当 L L L是单位下三角矩阵或 U U U是单位上三角矩阵,分解结果唯一。
Cholesky分解(LLT,LDLT分解)
对于对称正定矩阵
A
∈
R
n
×
n
A\in R^{n\times n}
A∈Rn×n,可以进行Cholesky分解为一个下三角矩阵与自身转置的乘积:
A
=
L
L
T
A=LL^T
A=LLT
Cholesky分解速度很快,精度一般。Cholesky分解结果唯一。
对于可逆对称矩阵
A
∈
R
n
×
n
A\in R^{n\times n}
A∈Rn×n,可以进行LDLT分解为:
A
=
L
D
L
T
A=LDL^T
A=LDLT
其中
D
∈
R
n
×
n
D\in R^{n\times n}
D∈Rn×n是一个对角矩阵。
LDLT分解速度较快,精度较好。LDLT分解结果是唯一的。
满秩分解
对于任意矩阵
A
∈
R
m
×
n
,
r
a
n
k
(
A
)
=
r
A\in R^{m\times n},rank(A)=r
A∈Rm×n,rank(A)=r,可以分解为两个矩阵的乘积:
A
m
×
n
=
B
m
×
r
C
r
×
n
,
r
a
n
k
(
B
)
=
r
a
n
k
(
C
)
=
r
A_{m\times n}=B_{m\times r}C_{r\times n},rank(B)=rank(C)=r
Am×n=Bm×rCr×n,rank(B)=rank(C)=r
满秩分解的结果是不唯一的。
QR分解
对于任意矩阵
A
∈
R
m
×
n
,
m
≥
n
A\in R^{m\times n},m\ge n
A∈Rm×n,m≥n,都可以分解为:
A
m
×
n
=
Q
m
×
m
R
m
×
n
A_{m\times n}=Q_{m\times m}R_{m\times n}
Am×n=Qm×mRm×n
其中,Q是一个正交矩阵,
R
R
R是一个上三角矩阵;
或者分解为:
A
m
×
n
=
Q
m
×
n
R
n
×
n
A_{m\times n}=Q_{m\times n}R_{n\times n}
Am×n=Qm×nRn×n
其中,Q是一个正交列向量组,
R
R
R是一个上三角矩阵。
QR分解速度较快,精度较好。当 A A A列满秩,并且 R R R的对角元都为正数时,分解结果唯一。
使用场景推荐
对于超定方程组求解,追求速度可以使用QR分解,追求稳定性和精度可以使用SVD分解。
对于适定方程组求解,可以使用PLU分解。
对于线性方程组的系数矩阵为对称矩阵,可以使用LDLT和Cholesky分解。
总而言之,QR分解,SVD分解和PLU分解的适用面更加广泛,解方程时优先考虑这三种矩阵分解方法。