Windows 10上的R 0.99.893 solve() - solve.default(a)中的错误
尝试计算方阵的倒数,但得到错误:
a< - 矩阵(1:16,4,4) 解决(a)中 solve.default(a)出错: Lapack例程dgesv:系统完全是单数:U [3,3] = 0
我也试过解决(a,diag(4))但得到了同样的错误。
答案 0 :(得分:2)
并非所有矩阵都有反转。检查你的矩阵是否是单数,即检查其行列式是否为0.奇异矩阵没有逆矩阵。
答案 1 :(得分:2)
哎呀,这个矩阵是单数的:
a <- matrix(1:16, 4, 4)
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
为什么呢?见:
a[, 3, drop = FALSE] + a[, 2, drop = FALSE] - a[, 1, drop = FALSE]
[,1]
[1,] 13
[2,] 14
[3,] 15
[4,] 16
完全a[, 4, drop = FALSE]
。
方阵是可逆的,只有当它具有完整的列列时,即它的所有列都是线性无关的。但是这个矩阵的列是线性相关的,即你可以把一列写成其他列的线性组合。
事实上,a <- matrix(1:(n*n), n, n)
这样的矩阵对于任何n > 2
都是单数的。您可以证明这些矩阵的排名只有2,无论n
有多大。