compute_kalman_filter_2 - Calculates the marginal posteriors of an LDS


#include "sequential/sequential_lds.h"

Example compile flags (system dependent):
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 

int compute_kalman_filter_2
	Vector_vector **means,
	Matrix_vector **covariances,
	double *likelihood,
	const Vector_vector *y,
	const Matrix_vector *A,
	const Matrix_vector *Q,
	const Matrix_vector *H,
	const Matrix_vector *R,
	const Vector *mu_0,
	const Matrix *S_0


This routine calculates the marginal posterior distributions for a linear dynamical system model. Here, y is the set of observations and let x be the set of (latent) state variables. This routine computes the distributions p(x_k | y_k, ..., y_k) for k = 1, ..., N, where the x_k are n-vectors and the y_k are m-vectors. Since these distributions are normal, it suffices to compute their means and covariances, which this routine puts in *means and *covariances. The rest of the parameters are best explained by seeing the equations of motion of the LDS: x_1 = mu_0 + u, x_k = A_k * x_{k-1} + w_k y_k = H_k * z_i + v_k where w_k ~ N(0, Q_k) and v_k ~ N(0, R_k) and u ~ N(0, S_0), and the A_k and Q_k are nxn matrices, the H_k is an mxn matrix and R_k is an mxm matrix. Finally, this routine also computes the incomplete-data log-likelihood (LOG!) of the LDS, i.e., log p(y_1, y_2, ..., y_N | A, H, Q, R, mu_0, S_0). As usual, *means and *covariances are reused if possible and created if needed, according to the KJB allocation semantics. Any result that is not desired can be omitted by passing NULL to the rouitne.


NO_ERROR on success, and ERROR on failure, with an appropriate error message being set.


This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.


Ernesto Brau


Ernesto Brau


sample_from_LDS , sample_from_LDS_2 , compute_kalman_filter , compute_kalman_filter_stable , compute_kalman_filter_2_stable