Index-> contents reference index search external Previous Next Up-> ckbs utility ckbs_sumsq_hes 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 utility-> ckbs_t_obj ckbs_t_grad ckbs_t_hess ckbs_diag_solve ckbs_bidiag_solve ckbs_bidiag_solve_t ckbs_blkbidiag_symm_mul ckbs_blkdiag_mul ckbs_blkdiag_mul_t ckbs_blkbidiag_mul_t ckbs_blkbidiag_mul ckbs_blktridiag_mul ckbs_sumsq_obj ckbs_L2L1_obj ckbs_sumsq_grad ckbs_process_grad ckbs_sumsq_hes ckbs_process_hes ckbs_tridiag_solve ckbs_tridiag_solve_b ckbs_tridiag_solve_pcg ckbs_newton_step ckbs_newton_step_L1 ckbs_kuhn_tucker ckbs_kuhn_tucker_L1 ckbs_sumsq_hes-> sumsq_hes_ok.m Headings-> Syntax Purpose Notation Hessian dg dh qinv rinv D A Example

Affine Residual Sum of Squares Hessian

Syntax
[D, A] = ckbs_sumsq_hes(dg, dh, qinv, rinv)

Purpose
This routine returns the diagonal and off diagonal blocks corresponding to the Hessian of the affine Kalman-Bucy smoother residual sum of squares.

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.

Hessian
If we define   Q_{N+1} to be the   n \times n identity matrix and   G_{N+1} to be zero, the Hessian of the affine Kalman-Bucy smoother residual sum of squares is   $\begin{array}{rcl} S^{(2)} ( x_1 , \ldots , x_N ) & = & \left( \begin{array}{cccc} D_1 & A_2^\R{T} & 0 & \\ A_2 & D_2 & A_3^\R{T} & 0 \\ 0 & \ddots & \ddots & \ddots \\ & 0 & A_N & D_N \end{array} \right) \\ D_k & = & H_k^\R{T} * R_k^{-1} * H_k + Q_k^{-1} + G_{k+1}^\R{T} * Q_{k+1}^{-1} * G_{k+1} \\ A_k & = & - Q_k^{-1} * G_k \end{array}$ 

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 .

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 .

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 .

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

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

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