Kalman Filter
SpatiotemporalGPs.KalmanFilter.KFState — TypeKFState{V, MU}A type for the Kalman Filter State, which is parameterized by the types of the mean estimate and the upper triangular cholesky component of the covariance matrix.
SpatiotemporalGPs.KalmanFilter.KFState — MethodKFState(; μ, Σ, make_symmetric=true)A constructor for the Kalman Filter State, which is parameterized by the mean estimate and the covariance matrix. If make_symmetric is true, the covariance matrix is made symmetric internally. This is useful for numerical stability.
LinearAlgebra.cholesky — MethodM = cholesky(M::Cholesky)This is a dummy method to allow for the cholesky method to be called on a cholesky decomposition.
SpatiotemporalGPs.KalmanFilter.chol_sqrt — MethodU = chol_sqrt(A)returns an upper-triangular matrix $U$ such that $A = U^T U$.
SpatiotemporalGPs.KalmanFilter.correct — Methods_{k+1|k+1} = correct(s_{k+1|k}, y_{k+1}, C, V)Uses the system model
\[y_{k+1} = C x_{k+1} + v\]
where $v \sim \mathcal{N}(0, V)$ to correct the predicted state.
SpatiotemporalGPs.KalmanFilter.diag — Methoddiag(M::Cholesky)is a fast method for getting the diagonal of a cholesky matrix.
This will eventually be included into the Julia standard library. https://github.com/JuliaLang/julia/pull/53767
SpatiotemporalGPs.KalmanFilter.filter — Methods_{k+1} = filter(s_k, y_{k+1}, u_k, A, B, C, V, W)Runs both the prediction and the correction steps. Assumes a system model
\[ \begin{align} x_{k+1} &= A x_k + B u_k + w, \\ y_k &= C x_k + v \end{align}\]
where $w ∼ \mathcal{N}(0, W)$, $v ∼ \mathcal{N}(0, V)$.
SpatiotemporalGPs.KalmanFilter.get_Σ — Methodget_Σ(s::S) where {S <: KFState}Get the covariance matrix of the Kalman Filter State.
SpatiotemporalGPs.KalmanFilter.get_μ — Methodget_μ(s::S) where {S <: KFState}Get the mean estimate of the Kalman Filter State.
SpatiotemporalGPs.KalmanFilter.get_σ — Methodget_σ(s::S) where {S <: KFState}Get a vector of the standard deviation of the Kalman Filter State
SpatiotemporalGPs.KalmanFilter.predict — Methods_{k+1|k} = predict(s_{k|k}, A, W)Uses the system model
\[ x_{k+1} = A x_k + w\]
where $w ∼ N(0, W)$ to predict the next state.
SpatiotemporalGPs.KalmanFilter.predict — Method s_{k+1} = predict(s_k, A, B, u_k, W)Uses the system model
\[ x_{k+1} = A x_k + B u_k + w\]
where $w ∼ \mathcal{N}(0, W)$ to predict the next state.
SpatiotemporalGPs.KalmanFilter.qrr — MethodR = qrr(A, B)returns
\[R = \sqrt{A^TA + B^TB}\]
The result is an UpperTriangular matrix.