Inverse of matrix in R

前端 未结 3 549
执念已碎
执念已碎 2021-01-30 03:46

I was wondering what is your recommended way to compute the inverse of a matrix?

The ways I found seem not satisfactory. For example,

> c=rbind(c(1,          


        
相关标签:
3条回答
  • 2021-01-30 04:21

    You can use the function ginv() (Moore-Penrose generalized inverse) in the MASS package

    0 讨论(0)
  • 2021-01-30 04:25

    Note that if you care about speed and do not need to worry about singularities, solve() should be preferred to ginv() because it is much faster, as you can check:

    require(MASS)
    mat <- matrix(rnorm(1e6),nrow=1e3,ncol=1e3)
    
    t0 <- proc.time()
    inv0 <- ginv(mat)
    proc.time() - t0 
    
    t1 <- proc.time()
    inv1 <- solve(mat)
    proc.time() - t1 
    
    0 讨论(0)
  • 2021-01-30 04:30

    solve(c) does give the correct inverse. The issue with your code is that you are using the wrong operator for matrix multiplication. You should use solve(c) %*% c to invoke matrix multiplication in R.

    R performs element by element multiplication when you invoke solve(c) * c.

    0 讨论(0)
提交回复
热议问题