LU-class {Matrix} | R Documentation |

The `"LU"`

class is the *virtual* class of LU decompositions of
real matrices. `"denseLU"`

the class of LU decompositions of
dense real matrices.

The decomposition is of the form

`A = P L U`

where typically all matrices are of size `n\times n`

, and
the matrix `P`

is a permutation matrix, `L`

is lower
triangular and `U`

is upper triangular (both of class
`dtrMatrix`

).

Note that the *dense* decomposition is also implemented for
a `m\times n`

matrix `A`

, when `m \ne n`

.

If `m < n`

(“wide case”), `U`

is `m\times n`

,
and hence not triangular.

If `m > n`

(“long case”), `L`

is `m\times n`

,
and hence not triangular.

Objects can be created by calls of the form `new("denseLU", ...)`

.
More commonly the objects are created explicitly from calls of the form
`lu(mm)`

where `mm`

is an object that inherits from the
`"dgeMatrix"`

class or as a side-effect of other functions applied
to `"dgeMatrix"`

objects.

`"LU"`

directly extends the virtual class
`"MatrixFactorization"`

.

`"denseLU"`

directly extends `"LU"`

.

`x`

:object of class

`"numeric"`

. The`"L"`

(unit lower triangular) and`"U"`

(upper triangular) factors of the original matrix. These are stored in a packed format described in the Lapack manual, and can retrieved by the`expand()`

method, see below.`perm`

:Object of class

`"integer"`

- a vector of length`min(Dim)`

that describes the permutation applied to the rows of the original matrix. The contents of this vector are described in the Lapack manual.`Dim`

:the dimension of the original matrix; inherited from class

`MatrixFactorization`

.

- expand
`signature(x = "denseLU")`

: Produce the`"L"`

and`"U"`

(and`"P"`

) factors as a named list of matrices, see also the example below.- solve
`signature(a = "denseLU", b = "missing")`

: Compute the inverse of A,`A^{-1}`

,`solve(A)`

using the LU decomposition, see also`solve-methods`

.

class `sparseLU`

for LU decompositions of
*sparse* matrices;
further, class `dgeMatrix`

and functions `lu`

,
`expand`

.

```
set.seed(1)
mm <- Matrix(round(rnorm(9),2), nrow = 3)
mm
str(lum <- lu(mm))
elu <- expand(lum)
elu # three components: "L", "U", and "P", the permutation
elu$L %*% elu$U
(m2 <- with(elu, P %*% L %*% U)) # the same as 'mm'
stopifnot(all.equal(as(mm, "matrix"),
as(m2, "matrix")))
```

[Package *Matrix* version 1.5-1 Index]