r - 在 R 中反转三角矩阵的方法是什么?

标签 r matrix-inverse triangular

我有一个上三角矩阵,我想快速计算它的逆矩阵。我试过 qr.solve() 但我觉得它等同于 solve(),并且它没有利用输入矩阵的三角形性质。最好的方法是什么?

最佳答案

尝试 backsolve() 并使用具有适当维度的单位矩阵作为右侧值。

library(microbenchmark)
n <- 2000
n.cov <- 1000
X <- matrix(sample(c(0L, 1L), size = n * n.cov, replace = TRUE), 
            nrow = n, ncol = n.cov)
R <- chol(crossprod(X))
rm(X)
microbenchmark(
  backsolve = backsolve(r = R, x = diag(ncol(R))),
  solve = solve(R),
times = 10)

Unit: milliseconds
      expr      min       lq     mean   median       uq      max neval
 backsolve 467.2802 467.5142 469.4457 468.1578 468.6501 482.2431    10
     solve 748.2351 748.8318 750.0764 750.3319 750.9583 751.5005    10

关于r - 在 R 中反转三角矩阵的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662643/

相关文章:

r - OS X 包安装问题 : Can't find gfortran 4. 8 构建包

c++ - 运行时检查失败 #2 - 变量 'B' 周围的堆栈已损坏

python - 在三角域内生成随机位置

r - 将 .maf 文件保存为表

r - 数据框上的“子集”和“[”给出的结果略有不同,为什么?

r - 在 R 的数据框中合并两个列表

python - Sympy - 仅在特定位置查找矩阵的逆?

python - 在 Python 中加速变量相关矩阵逆计算

javascript - 用三 Angular 形填充平面(三 Angular 测量)