public static class SymmMatrix.Cholesky
extends java.lang.Object
implements java.io.Serializable
The Cholesky decomposition is mainly used for the numerical solution of linear equations. The Cholesky decomposition is also commonly used in the Monte Carlo method for simulating systems with multiple correlated variables: The matrix of inter-variable correlations is decomposed, to give the lower-triangular L. Applying this to a vector of uncorrelated simulated shocks, u, produces a shock vector Lu with the covariance properties of the system being modeled.
Unscented Kalman filters commonly use the Cholesky decomposition to choose a set of so-called sigma points. The Kalman filter tracks the average state of a system as a vector x of length n and covariance as an n-by-n matrix P. The matrix P is always positive semi-definite, and can be decomposed into L*L'. The columns of L can be added and subtracted from the mean x to form a set of 2n vectors called sigma points. These sigma points completely capture the mean and covariance of the system state.
Modifier and Type | Field and Description |
---|---|
SymmMatrix |
lu
The Cholesky decomposition.
|
Constructor and Description |
---|
Cholesky(SymmMatrix lu)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
det()
Returns the matrix determinant.
|
Matrix |
inverse()
Returns the matrix inverse.
|
double |
logdet()
Returns the log of matrix determinant.
|
double[] |
solve(double[] b)
Solves the linear system A * x = b.
|
void |
solve(Matrix B)
Solves the linear system A * X = B.
|
public final SymmMatrix lu
public Cholesky(SymmMatrix lu)
lu
- the lower/upper triangular part of matrix contains the Cholesky
factorization.public double det()
public double logdet()
public Matrix inverse()
public double[] solve(double[] b)
b
- the right hand side of linear systems.public void solve(Matrix B)
B
- the right hand side of linear systems. On output, B will
be overwritten with the solution matrix.