solve.bdsmatrix {bdsmatrix} | R Documentation |

## Solve a matrix equation using the generalized Cholesky decompostion

### Description

This function solves the equation Ax=b for x, when
A is a block diagonal sparse matrix
(an object of class `bdsmatrix`

).

### Usage

```
## S3 method for class 'bdsmatrix'
solve(a, b, full=TRUE, tolerance=1e-10, ...)
```

### Arguments

`a` |
a block diagonal sparse matrix object |

`b` |
a numeric vector or matrix, that forms the right-hand side of the equation. |

`full` |
if true, return the full inverse matrix; if false return only
that portion corresponding to the blocks.
This argument is ignored if |

`tolerance` |
the tolerance for detecting singularity in the a matrix |

`...` |
other arguments are ignored |

### Details

The matrix `a`

consists of a block diagonal
sparse portion with an optional dense border.
The inverse of `a`

, which is to be computed if
`y`

is not provided, will have the same
block diagonal structure as `a`

only if there
is no dense border, otherwise the resulting matrix will not be sparse.

However, these matrices may often be very large, and a non sparse
version of one of them will require gigabytes of even terabytes of
space. For one of the
common computations (degrees of freedom in a penalized model) only those
elements of the inverse that correspond to the non-zero part of
`a`

are required;
the `full=F`

option returns only that portion
of the (block diagonal portion of) the inverse matrix.

### Value

if argument `b`

is not present, the inverse of
`a`

is returned, otherwise the solution to
matrix equation.
The equation is solved using a generalized Cholesky decomposition.

### See Also

bdsmatrix, gchol

### Examples

```
tmat <- bdsmatrix(c(3,2,2,4),
c(22,1,2,21,3,20,19,4,18,17,5,16,15,6,7, 8,14,9,10,13,11,12),
matrix(c(1,0,1,1,0,0,1,1,0,1,0,10,0,
0,1,1,0,1,1,0,1,1,0,1,0,10), ncol=2))
dim(tmat)
solve(tmat, cbind(1:13, rep(1,13)))
```

*bdsmatrix*version 1.3-7 Index]