# solve-methods

##### Methods for Function solve in Package `distr'

solve-methods using generalized inverses for various types of matrices

##### Usage

```
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)
```

##### Arguments

- a
matrix to be inverted / to be solved for RHS.

- b
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`

).- generalized
logical: should generalized / Moore-Penrose inverses be used? By default uses the corresponding global option to be set by

`distroptions`

.- tol
the tolerance for detecting linear dependencies in the columns of

`a`

. Default is`.Machine$double.eps`

.

##### Details

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`

.

##### Methods

- solve
`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\).- solve
`signature(a = "PosSemDefSymmMatrix", b = "ANY")`

: evaluates \(a^-b\) where \(a^-\) is the pseudo or Moore-Penrose inverse of \(a\).- solve
`signature(a = "PosDefSymmMatrix", b = "ANY")`

: evaluates solve method from base in classical way.

##### See Also

`solve`

for the default method, `eigen`

and `svd`

for the pseudo inversion

*Documentation reproduced from package distr, version 2.8.0, License: LGPL-3*