Covariance Parameter
In MarkovKernels.jl a covariance matrix is assumed to be of the following type union.
const CovarianceParameter{T} = Union{HermOrSym{T},Factorization{T}}
Functions
MarkovKernels.lsqrt
— Methodlsqrt(A::CovarianceParameter)
Computes a square matrix L such that A = L*L'. L need not be a Cholesky factor.
MarkovKernels.stein
— Methodstein(Σ::CovarianceParameter, Φ::AbstractMatrix)
Computes the output of the stein operator
Σ ↦ Φ * Σ * Φ'.
The type of CovarianceParameter is preserved at the output.
MarkovKernels.stein
— Methodstein(Σ::CovarianceParameter, Φ::AbstractMatrix, Q::CovarianceParameter)
Computes the output of the stein operator
Σ ↦ Φ * Σ * Φ' + Q.
Both Σ and Q need to be of the same CovarianceParameter type, e.g. both SymOrHerm or both Cholesky. The type of the CovarianceParameter is preserved at the output.
MarkovKernels.schur_reduce
— Methodschur_reduce(Π::CovarianceParameter, C::AbstractMatrix)
Returns the tuple (S, K, Σ) associated with the following (block) Schur reduction:
[C*Π*C' C*Π; Π*C' Π] = [0 0; 0 Σ] + [I; K]*(C*Π*C')*[I; K]'
In terms of Kalman filtering, Π is the predictive covariance, C the measurement matrix, and R the measurement covariance, then S is the marginal measurement covariance, K is the Kalman gain, and Σ is the filtering covariance. The type of the CovarianceParameter is preserved at the output.
MarkovKernels.schur_reduce
— Methodschur_reduce(Π::CovarianceParameter, C::AbstractMatrix, R::CovarianceParameter)
Returns the tuple (S, K, Σ) associated with the following (block) Schur reduction:
[CΠC' + R CΠ; ΠC' Π] = [0 0; 0 Σ] + [I; K](CΠC' + R)[I; K]'
In terms of Kalman filtering, Π is the predictive covariance, C the measurement matrix, and R the measurement covariance, then S is the marginal measurement covariance, K is the Kalman gain, and Σ is the filtering covariance. Both Π and R need to be of the same CovarianceParameter type, e.g. both SymOrHerm or both Cholesky. The type of the CovarianceParameter is preserved at the output.