如标题所述,是否有一种方法可以找出在R中,哪个矩阵分解应用了给定稀疏矩阵的函数?例如,在Matlab中有一个spparms('spumoni', 2);
,它返回了用于求解稀疏矩阵分解的算法的一些信息。
发布于 2021-06-08 01:10:45
好吧,运行R可以到达
> methods(solve)
它将产生
[1] solve.default solve.qr
如果你打字
> solve.default
你会回来的
function (a, b, tol = .Machine$double.eps, LINPACK = FALSE, ...)
{
if (!missing(LINPACK))
warning("the LINPACK argument has been defunct since R 3.1.0")
if (is.complex(a) || (!missing(b) && is.complex(b))) {
a <- as.matrix(a)
if (missing(b)) {
b <- diag(1 + (0+0i), nrow(a))
colnames(b) <- rownames(a)
}
return(.Internal(La_solve_cmplx(a, b)))
}
if (inherits(a, "qr")) {
warning("solve.default called with a \"qr\" object: use 'qr.solve'")
return(solve.qr(a, b, tol))
}
a <- as.matrix(a)
if (missing(b)) {
b <- diag(1, nrow(a))
colnames(b) <- rownames(a)
}
.Internal(La_solve(a, b, tol))
}
这意味着要么是La_solve,要么是La_solve_cmplx。查看它们的实现,例如这里可以发现La_solve将调用LAPACK例程DGESV,而La_solve_cmplx将调用LAPACK例程ZGESV。
别紧张,是吧?
https://stackoverflow.com/questions/67879833
复制相似问题