【问题标题】:Generalized Inverse in RR中的广义逆
【发布时间】:2012-02-03 00:49:46
【问题描述】:

我可以使用 MASS 库中的 ginv 函数来获得矩阵的 Moore-Penrose 广义逆。

m <- matrix(1:9, 3, 3)
library(MASS)
ginv(m)

在 SAS 中,我们确实有不止一个函数来获得矩阵的广义逆。 SVD 可用于找到广义逆,但这又是 Moore-Penrose。我想知道 R 中是否有任何函数可以获得除 Moore-Penrose 广义逆之外的矩阵的广义逆(不是唯一的)。提前感谢您的帮助和时间。

编辑

矩阵 A 的广义逆定义为任意矩阵 G 满足方程 AGA = A。

这个 G 不是 Moore-Penrose 广义逆,所以它不是唯一的。

【问题讨论】:

  • 你还想要什么其他的伪逆?您能否更准确地说您想从 SAS 中模仿什么?
  • 引用 R 帮助列表中常见的签名:“您要解决的问题是什么?”

标签: r matrix sas


【解决方案1】:

大多数情况下,您并不真正想要矩阵的逆矩阵,因为最终结果可能会在您完成时被舍入错误毁掉。

使用部分旋转和缩放来创建 LU 分解更为典型。使用它对右侧向量执行前向/后向替换以获得解决方案。如果您有多个 RHS 向量,这尤其有用,因为您可以重复应用它。

您需要 Matrix 包来执行此操作。

【讨论】:

  • 感谢您的评论。你想提供一个例子。谢谢
【解决方案2】:

是的,这是一个很大的不便,R 包不再可用。或者,您可以使用pracma 包。 还有你的 Moore-Penrose 广义逆:

pinv(m)

【讨论】:

  • 小心pracma::pinv,对于具有复杂条目的矩阵,它会返回错误的结果。我今天给作者发了一封邮件告诉他。 EigenR 包中也提供了伪逆。
猜你喜欢
  • 1970-01-01
  • 2014-07-12
  • 2012-10-22
  • 2023-03-20
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 2013-11-04
相关资源
最近更新 更多