矩阵求逆经常会用到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 11 2 3 4 51 3 6 10 151 4 10 20 351 5 15 35 70U =1 1 1 1 10 1 2 3 40 0 1 3 60 0 0 1 40 0 0 0 1XU =1 1 1 1 11 2 3 4 51 3 6 10 151 4 10 20 351 5 15 35 70L =1 0 0 0 01 1 0 0 01 2 1 0 01 3 3 1 01 4 6 4 1XL =1 1 1 1 11 2 3 4 51 3 6 10 151 4 10 20 351 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'*invLinv(X)
invU =1 -1 1 -1 10 1 -2 3 -40 0 1 -3 60 0 0 1 -40 0 0 0 1invL =1 0 0 0 0-1 1 0 0 01 -2 1 0 0-1 3 -3 1 01 -4 6 -4 1invXU =5 -10 10 -5 1-10 30 -35 19 -410 -35 46 -27 6-5 19 -27 17 -41 -4 6 -4 1invXL =5 -10 10 -5 1-10 30 -35 19 -410 -35 46 -27 6-5 19 -27 17 -41 -4 6 -4 1ans =5.0000 -10.0000 10.0000 -5.0000 1.0000-10.0000 30.0000 -35.0000 19.0000 -4.000010.0000 -35.0000 46.0000 -27.0000 6.0000-5.0000 19.0000 -27.0000 17.0000 -4.00001.0000 -4.0000 6.0000 -4.0000 1.0000