【问题标题】:R inverting matrix with solve returning ErrorR反转矩阵与求解返回错误
【发布时间】:2015-08-05 07:43:50
【问题描述】:

我正在学习 R 编程。

我正在尝试反转矩阵。以下是我尝试过的。

x <- matrix(1:16, 4, 4)
x
#      [,1] [,2] [,3] [,4]
# [1,]    1    5    9   13
# [2,]    2    6   10   14
# [3,]    3    7   11   15
# [4,]    4    8   12   16

solve(x)
# Error in solve.default(x) : 
#  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

solve(x) %*% x
# Error in solve.default(x) : 
#  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

x %*% solve(x)
# Error in solve.default(x) : 
#  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

我不明白“奇异”是什么意思。根据这个link,据说如果solve没有第二个参数,它会反转第一个参数。

我完全糊涂了,所以需要一些例子来解释会很棒。

【问题讨论】:

  • 不幸的是,您使用的是矩阵“x”的特殊情况。使用更一般的情况 (x &lt;- matrix(rnorm(16),4,4)) 会更幸运。

标签: r matrix matrix-inverse


【解决方案1】:

如果计算矩阵的determinant,则为0

det(x)
[1] 0

根据定义,您的矩阵是不可逆的。但在尝试求平方矩阵求逆之前,首先应该先分析研究矩阵是否可逆。

你得到的奇异误差只是反映了矩阵是不可逆的。

【讨论】:

  • 谢谢。此外,我发现 solve 只能反转数字/逻辑矩阵。我的是整数矩阵:D
猜你喜欢
  • 2014-09-18
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2015-03-24
  • 1970-01-01
相关资源
最近更新 更多