Previous Next

Singular Affine Kalman Bucy Smoother

Syntax
[xOut,  info] = ckbs_affine_singular(...
        
zgh, ...
       
dgdhqr)


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