![]() |
Previous | Next |
[grad] = ckbs_sumsq_grad(
x, z, g, h, dg, dh, qinv, rinv)
\[
\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.
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
is a two dimensional array,
for
k = 1 , \ldots , N
\[
x_k = x(:, k)
\]
and
x
has size
n \times N
.
z
is a two dimensional array,
for
k = 1 , \ldots , N
\[
z_k = z(:, k)
\]
and
z
has size
m \times N
.
g
is a two dimensional array,
for
k = 1 , \ldots , N
\[
g_k = g(:, k)
\]
and
g
has size
n \times N
.
h
is a two dimensional array,
for
k = 1 , \ldots , N
\[
h_k = h(:, k)
\]
and
h
has size
m \times N
.
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
is a three dimensional array,
for
k = 1 , \ldots , N
\[
H_k = dh(:,:,k)
\]
and
dh
has size
m \times n \times N
.
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
is a three dimensional array,
for
k = 1 , \ldots , N
\[
R_k^{-1} = rinv(:,:,k)
\]
and
rinv
has size
m \times m \times N
.
grad
is a two dimensional array,
for
k = 1 , \ldots , N
\[
d_k = grad(:, k)
\]
and
grad
has size
n \times N
.
ckbs_sumsq_grad
.
It returns true if ckbs_sumsq_grad
passes the test
and false otherwise.