矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成?/p>
干个矩阵的乘积。常见的矩阵分解有可逆方阵的三角?/p>
LU
)分解、任
意满秩矩阵的正交三角
?/p>
QR
?/p>
分解?/p>
对称正定矩阵?/p>
Cholesky
分解?/p>
以及任意方阵?/p>
Schur
分解?/p>
Hessenberg
分解?/p>
EVD
分解?/p>
SVD
分解?/p>
GMD
分解等?/p>
(1)
可逆方阵的
LU
分解
矩阵?/p>
LU
分解就是将一个矩阵表示为一个交换下三角矩阵和一个上
三角矩阵的乘积形式?/p>
线性代数中已经证明?/p>
只要方阵
A
是非奇异?/p>
(即可逆的?/p>
?/p>
LU
分解总是可以进行的?/p>
?/p>
L
为单位下三角矩阵?/p>
U
为上三角矩阵时,
此三角分解称为杜利特
(Doolittle)
分解。当
L
为下三角矩阵?/p>
U
为单位上三角矩阵时,?/p>
三角分解称为克劳?/p>
(Crout)
分解。显然,如果存在,矩阵的三角?/p>
解不是唯一的?/p>
?/p>
PS
:方?/p>
A
可唯一地分解为
A=LDU(
其中
L
?/p>
U
分别为单位下,上?/p>
角矩阵,
D
为对角矩?/p>
)
的充分必要条件为
A
的前
n-1
个顺序主子式
都不?/p>
0
。特别:?/p>
n
阶对称正定矩阵,存在一个非奇异下三角矩?/p>
L
,使?/p>
A=LL'
成立?/p>
?/p>
MATLAB
提供?/p>
lu
函数用于对矩阵进?/p>
LU
分解,其调用格式为:
[L,U]=lu(X)
:产生一个上三角?/p>
U
和一个变换形式的下三角阵
L(
?/p>
交换
)
,使之满?/p>
X=LU
。注意,这里的矩?/p>
X
必须是方阵?/p>
[L,U,P]=lu(X)
:产生一个上三角?/p>
U
和一个下三角?/p>
L
以及一个置
换矩?/p>
P
,使之满?/p>
PX=LU
。当然矩?/p>
X
同样必须是方阵?/p>