solve-methods using generalized inverses for various types of matrices
solve(a,b, ...)
# S4 method for ANY,ANY
solve(a, b, generalized =
getdistrOption("use.generalized.inverse.by.default"), tol = 1e-10)
# S4 method for PosSemDefSymmMatrix,ANY
solve(a, b, generalized =
getdistrOption("use.generalized.inverse.by.default"), tol = 1e-10)
# S4 method for PosDefSymmMatrix,ANY
solve(a, b, tol = 1e-10)
matrix to be inverted / to be solved for RHS.
a numeric or complex vector or matrix giving the right-hand
side(s) of the linear system. If missing, b
is taken to be
an identity matrix and solve
will return the inverse of
a
.
further arguments to be passed to specific methods (see solve
).
logical: should generalized / Moore-Penrose inverses be used? By default uses
the corresponding global option to be set by distroptions
.
the tolerance for detecting linear dependencies in the
columns of a
. Default is .Machine$double.eps
.
signature(a = "ANY", b = "ANY")
: tries to evaluate solve.default
method from base in classical way;
if this gives an error, this one is returned if generalized
is TRUE
, else it will then
return \(a^-b\) where \(a^-\) is the pseudo or Moore-Penrose inverse of \(a\).
signature(a = "PosSemDefSymmMatrix", b = "ANY")
: evaluates \(a^-b\) where \(a^-\) is the pseudo or Moore-Penrose
inverse of \(a\).
signature(a = "PosDefSymmMatrix", b = "ANY")
: evaluates solve method from base in classical way.
Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de
The method for the Moore-Penrose inverse for
signature(a = "PosSemDefSymmMatrix", b = "ANY")
uses eigen
to find the eigenvalue
decomposition of a
and then simply "pseudo-inverts" the corresponding diagonal matrix built from
eigen(a)$values
, while for signature(a = "ANY", b = "ANY")
it uses the svd
decomposition of a
and then simply "pseudo-inverts" the corresponding diagonal matrix built from
svd(a)$d
.