高等代数的理论知识
(A | E) 经过初等行变换(E | A-1)(A-1 代表A的逆)
matrix_inv <- function(A)
{
A_zhi <- Matrix::rankMatrix(A)[1]
n_row <- dim(A)[1]
n_col <- dim(A)[2]
if((n_col==n_row)&(n_row == A_zhi))
{
B <- diag(1,n_col)
col_index <- 1
for(row_index in 1:(n_row - 1))
{
temp_col <- A[col_index:n_row,col_index]
non_zreo_row <- which(temp_col!=0)[1]
#一定找出当前行第一个元素不为零
temp_row <- A[col_index,]
A[col_index,] <-
A[col_index + non_zreo_row - 1,]
A[col_index + non_zreo_row - 1,] <- temp_row
temp_row1 <- B[col_index,]
B[col_index,] <-
B[col_index + non_zreo_row - 1,]
B[col_index + non_zreo_row - 1,] <- temp_row1
#其余的元素化零
for(j in (col_index + 1):n_row)
{
temp_number <-
A[j,col_index]/A[col_index,col_index