矩阵求逆经常会用到cholesky分解,接下来写一下主要的计算公式
设对称正定矩阵X=【】5*5矩阵
cholesky分解可得一个三角矩阵
如果是上三角矩阵,则计算公式为X=U'U,如果是下三角矩阵,则X=LL'
通过下面的例子可以清晰的看到结果
clear
clc
X=pascal(5)
U=chol(X)%产生一个上三角阵
XU=U'*U
L=U'%产生一个下三角阵
XL=L*L'
X =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
U =
1 1 1 1 1
0 1 2 3 4
0 0 1 3 6
0 0 0 1 4
0 0 0 0 1
XU =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
L =
1 0 0 0 0
1 1 0 0 0
1 2 1 0 0
1 3 3 1 0
1 4 6 4 1
XL =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
那么矩阵求逆就是先对三角矩阵求逆,然后相乘
如果是上三角矩阵,则计算公式为X=U'U,invX=U-1*U-1'
如果是下三角矩阵,则X=LL',invX=L-1'*L-1
通过下面的例子可以清晰的看到结果
invU=inv(U)
invL=inv(L)
invXU=invU*invU'
invXL=invL'*invL
inv(X)
invU =
1 -1 1 -1 1
0 1 -2 3 -4
0 0 1 -3 6
0 0 0 1 -4
0 0 0 0 1
invL =
1 0 0 0 0
-1 1 0 0 0
1 -2 1 0 0
-1 3 -3 1 0
1 -4 6 -4 1
invXU =
5 -10 10 -5 1
-10 30 -35 19 -4
10 -35 46 -27 6
-5 19 -27 17 -4
1 -4 6 -4 1
invXL =
5 -10 10 -5 1
-10 30 -35 19 -4
10 -35 46 -27 6
-5 19 -27 17 -4
1 -4 6 -4 1
ans =
5.0000 -10.0000 10.0000 -5.0000 1.0000
-10.0000 30.0000 -35.0000 19.0000 -4.0000
10.0000 -35.0000 46.0000 -27.0000 6.0000
-5.0000 19.0000 -27.0000 17.0000 -4.0000
1.0000 -4.0000 6.0000 -4.0000 1.0000