最近用R语言处理数据的时候,总是出现“Error in solve.default(A) :
system is computationally singular: reciprocal condition number = 0”这样的警告提示,网上搜索许久都没有满意答案。还好,在经管之家看到了这个帖子:
https://bbs.pinggu.org/thread-2163725-1-1.html 的7楼的回答让我如见光明,知道了问题所在!
但是,至今还不知道怎么解决,希望知道的亲可以回复下,谢谢!
我把代码复制下来吧,省得亲们再麻烦了:
> set.seed(1)
> A <- matrix(rnorm(10000), 100, 100)
> A[lower.tri(A)] <- 0
> diag(A) <- rep(0.0000001, 100)
> qr(A)$rank
[1] 99
> det(A)
[1] 1e-70 #行列式很小,但≠0(我的数据的行列式是很大的负数,但rank依然小于列数)
> B <- solve(A)
Error in solve.default(A) :
system is computationally singular: reciprocal condition number = 0