org.ojalgo.matrix.decomposition

Interface LDU<N extends Number>

• All Superinterfaces:
All Known Subinterfaces:
Cholesky<N>, LDL<N>, LU<N>

```public interface LDU<N extends Number>
extends MatrixDecomposition<N>, MatrixDecomposition.Solver<N>, MatrixDecomposition.Determinant<N>```

LDU: [A] = [L][D][U] ( [P1][L][D][U][P2] )

• [A] can be any matrix.
• [L] is a unit lower (left) triangular matrix. It has the same number of rows as [A], and ones on the diagonal.
• [D] is a square diagonal matrix.
• [U] is a unit upper (right) triangular matrix. It has the same number of columns as [A], and ones on the diagonal.
• [P1] is a permutation matrix (row pivot order).
• [P2] is a permutation matrix (column pivot order).

Row and/or column permutations may not be necessary and are therefore optional. Numerical stability usually does require ordering of either the rows or columns (most algorithms reorder rows).

Solving the equation system [A][X]=[B] turns into this [L][D][U][X] = [B] and is solved in these steps:

1. [L][Z]=[B] ( [Z] = [D][U][X] )
2. [D][Y]=[Z] ( [Y] = [U][X] )
3. [U][X]=[Y]

[A]H = [U]H[D]H[L]H

ojAlgo does not have a full/general LDU decompositions but contains 3 variations of it:

• LU: [A] = [L][U] where [ULU] = [DLDU][ULDU]
• Cholesky: [A] = [L][L]H where [A] is hermitian positive definite and [LCholesky] = [LLDU][DLDU]½
• LDL: [A] = [L][D][L]H where [A] is hermitian and [LLDL]H = [U LDU]
Author:
apete
• Nested Class Summary

`SolverTask.Factory<N extends Number>`

`InverterTask.Factory<N extends Number>`
• Nested classes/interfaces inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition

`MatrixDecomposition.Determinant<N extends Number>, MatrixDecomposition.EconomySize<N extends Number>, MatrixDecomposition.Factory<D extends MatrixDecomposition<?>>, MatrixDecomposition.Hermitian<N extends Number>, MatrixDecomposition.Solver<N extends Number>, MatrixDecomposition.Values<N extends Number>`

`DeterminantTask.Factory<N extends Number>`
• Field Summary

`BIG, COMPLEX, PRIMITIVE`

`BIG, COMPLEX, PRIMITIVE`
• Fields inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition

`TYPICAL`

`BIG, COMPLEX, PRIMITIVE`

• Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition.Solver

`compute, getInverse, getInverse, getSolution, getSolution, isSolvable`

`preallocate, solve, solve`
`invert, invert, preallocate`
`getDeterminant`
`decompose, isComputed, reconstruct, reset`
`calculateDeterminant`