# solve-methods: Methods for Function solve in Package 'distr' In distr: Object Oriented Implementation of Distributions

## Description

solve-methods using generalized inverses for various types of matrices

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```solve(a,b, ...) ## S4 method for signature 'ANY,ANY' solve(a, b, generalized = getdistrOption("use.generalized.inverse.by.default"), tol = 1e-10) ## S4 method for signature 'PosSemDefSymmMatrix,ANY' solve(a, b, generalized = getdistrOption("use.generalized.inverse.by.default"), tol = 1e-10) ## S4 method for signature '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.

## Author(s)

Peter Ruckdeschel [email protected]

`solve` for the default method, `eigen` and `svd` for the pseudo inversion