矩阵求逆经常会用到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
