Index-> contents reference index search external Previous Next Up-> ckbs ckbs_affine_singular ckbs-> license ckbs_t_general ckbs_nonlinear ckbs_L1_nonlinear ckbs_affine ckbs_affine_singular ckbs_L1_affine utility all_ok.m whatsnew wishlist bib ckbs_affine_singular-> affine_singular_ok.m Headings-> Syntax Purpose Notation z g h dg dh q r xOut info Example

Singular Affine Kalman Bucy Smoother

Syntax
[xOut,  info] = ckbs_affine_singular(...         z, g, h, ...        dg, dh, q, r)

Purpose
This routine finds the smoothed estimate for affine process and measurement models when the variance matrices   Q and   R may be singular.

Notation
The singular Kalman-Bucy smoother state is given by   $\begin{array}{rcl} G^{-1} (w - Q G^{-T}H^T\Phi^{-1}(HG^{-1}w-v)) \end{array}$  where   $\Phi = HG^{-1}QG^{-T}H^T + R ,$  and the matrices   R_k and   Q_k are symmetric positive semidefinite. Note that   g_1 is the initial state estimate and   Q_1 is the corresponding covariance.

z
The argument z is a two dimensional array, for   k = 1 , \ldots , N   $z_k = z(:, k)$ and z has size   m \times N .

g
The argument g is a two dimensional array, for   k = 1 , \ldots , N   $g_k = g(:, k)$ and g has size   n \times N . The value   g_1 serves as the initial state estimate.

h
The argument h is a two dimensional array, for   k = 1 , \ldots , N   $h_k = h(:, k)$ and h has size   m \times N .

dg
The argument dg is a three dimensional array, for   k = 1 , \ldots , N   $G_k = dg(:,:,k)$ and dg has size   n \times n \times N . The initial state estimate   g_1 does not depend on the value of   x_0 , hence   G_1 should be zero.

dh
The argument dh is a three dimensional array, for   k = 1 , \ldots , N   $H_k = dh(:,:,k)$ and dh has size   m \times n \times N .

q
The argument q is a three dimensional array, for   k = 1 , \ldots , N   $Q_k = q(:,:, k)$ and q has size   n \times n \times N . The value of   Q_k is the variance of the initial state estimate   g_1 .

r
The argument r is a three dimensional array, for   k = 1 , \ldots , N   $R_k = r(:,:, k)$ and r has size   m \times m \times N . It is ok to signify a missing data value by setting the corresponding row and column of r to infinity. This also enables use to interpolate the state vector   x_k to points where there are no measurements.

xOut
The result xOut contains the optimal sequence   ( x_1 , \ldots , x_N ) . For   k = 1 , \ldots , N   $x_k = xOut(:, k)$ and xOut is a two dimensional array with size   n \times N .

info
Contains infinity norm of each of the three KKT equations for the constrained reformulation.  Example
The file affine_singular_ok.m contains an example and test of ckbs_affine_singular. It returns true if ckbs_affine_singular passes the test and false otherwise.
Input File: src/ckbs_affine_singular.m