Previous Next

Student's t Hessian

Syntax
[grad] = ckbs_t_hess(
      x
zg_funh_funqinvrinvparams)


Purpose
This computes the gradient of the of the general Student's t objective.

Notation
The affine Kalman-Bucy smoother residual sum of squares is defined by  \[
\begin{array}{rcl}
S ( x_1 , \ldots , x_N ) & = & \sum_{k=1}^N S_k ( x_k , x_{k-1} ) \\
S_k ( x_k , x_{k-1} )    & = &
\frac{1}{2}
( z_k - h_k - H_k * x_k )^\R{T} * R_k^{-1} * ( z_k - h_k - H_k * x_k )
\\
& + &
\frac{1}{2}
( x_k - g_k - G_k * x_{k-1} )^\R{T} * Q_k^{-1} * ( x_k - g_k - G_k * x_{k-1} )
\end{array}
\] 
where the matrices  R_k and  Q_k are symmetric positive definite and  x_0 is the constant zero.

Gradient
We define  Q_{N+1} to be the  n \times n identity matrix and  G_{N+1} to be zero,  \[
\begin{array}{rcl}
\nabla_k S_k^{(1)} ( x_k , x_{k-1} )
& = &  H_k^\R{T} * R_k^{-1} * ( h_k + H_k * x_k - z_k )
  +    Q_k^{-1} * ( x_k - g_k - G_k * x_{k-1} )
\\
\nabla_k S_{k+1}^{(1)} ( x_{k+1} , x_k )
& = & G_{k+1}^\R{T} * Q_{k+1}^{-1} * ( g_{k+1} + G_{k+1} * x_k  - x_{k+1} )
\end{array}
\] 
It follows that the gradient of the affine Kalman-Bucy smoother residual sum of squares is  \[
\begin{array}{rcl}
\nabla S ( x_1 , \ldots , x_N )
& = &
\left( \begin{array}{c}
      d_1 \\ \vdots \\ d_N
\end{array} \right)
\\
d_k & = & \nabla_k S_k^{(1)}     ( x_k , x_{k-1} )
      +   \nabla_k S_{k+1}^{(1)} ( x_{k+1} , x_k )
\end{array}
\] 
where  S_{N+1} ( x_{N+1} , x_N ) is defined as identically zero.

x
The argument x is a two dimensional array, for  k = 1 , \ldots , N  \[
      x_k = x(:, k)
\]
and x has size  n \times N .

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_fun
The argument g_fun is a function handle for the process model.

h_fun
The argument h_fun is a function handle for the measurement model.

qinv
The argument qinv is a three dimensional array, for  k = 1 , \ldots , N  \[
      Q_k^{-1} = qinv(:,:,k)
\]
and qinv has size  n \times n \times N .

rinv
The argument rinv is a three dimensional array, for  k = 1 , \ldots , N  \[
      R_k^{-1} = rinv(:,:,k)
\]
and rinv has size  m \times m \times N .

params
The argument params is a structure containing the requisite parameters.

D
The result D is a three dimensional array, for  k = 1 , \ldots , N  \[
      D_k = hess(:, :, k)
\]
and D has size  n\times n \times N .

A
The result A is a three dimensional array, for  k = 1 , \ldots , N  \[
      A_k = hess(:,:,k)
\]
and A has size  n\times n \times N .

Example
The file t_hess_ok.m contains an example and test of ckbs_t_hess. It returns true if ckbs_t_hess passes the test and false otherwise.
Input File: src/ckbs_t_hess.m