33.10 矩阵求逆

solve(A)
##      [,1] [,2]
## [1,]   -3    2
## [2,]    2   -1

应用之线性方程组

B <- Hilbert(6)
b <- rowSums(B)
# not inv
solve(B,b) 
## 6 x 1 Matrix of class "dgeMatrix"
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
## [4,]    1
## [5,]    1
## [6,]    1
# inv
solve(B) %*% b
## 6 x 1 Matrix of class "dgeMatrix"
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
## [4,]    1
## [5,]    1
## [6,]    1

Moore-Penrose generalized inverse 广义逆,如果 A 可逆则,广义逆就是逆

library(MASS) # ginv 来自 MASS 包
ginv(A)
##      [,1] [,2]
## [1,]   -3    2
## [2,]    2   -1
A %*% ginv(A) %*% A
##      [,1] [,2]
## [1,]    1    2
## [2,]    2    3
ginv(A) %*% A %*% ginv(A)
##      [,1] [,2]
## [1,]   -3    2
## [2,]    2   -1
t(A %*% ginv(A))
##               [,1]         [,2]
## [1,]  1.000000e+00 8.881784e-16
## [2,] -8.881784e-16 1.000000e+00
A %*% ginv(A)
##              [,1]          [,2]
## [1,] 1.000000e+00 -8.881784e-16
## [2,] 8.881784e-16  1.000000e+00
t(ginv(A) %*% A)
##              [,1]          [,2]
## [1,] 1.000000e+00 -8.881784e-16
## [2,] 8.881784e-16  1.000000e+00
ginv(A) %*% A
##               [,1]         [,2]
## [1,]  1.000000e+00 8.881784e-16
## [2,] -8.881784e-16 1.000000e+00