Index-> contents reference index search external Previous Next Up-> ckbs utility ckbs_L2L1_obj 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_L2L1_obj-> L2L1_obj_ok.m Headings-> Syntax Purpose Notation x z g h dg dh qinv rinv obj Example

Affine Least Squares with Robust L1 Objective

Syntax
[obj] = ckbs_L2L1_obj(       x, z, g, h, dg, dh, qinv, rinv)

Purpose
This routine computes the value of the least squares (for process) with robust L1 norm (for residuals) objective function.

Notation
The affine least squares with robust L1 norm objective 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} \|R_k^{-1/2}( z_k - h_k - H_k * x_k )^\R{T}\|_1 \\ & + & \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.

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
The argument g is a two dimensional array, for   k = 1 , \ldots , N   $g_k = g(:, k)$ and g has size   n \times N .

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 .

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 .

obj
The result obj is a scalar given by   $obj = S ( x_1 , \ldots , x_N )$ 

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