Index-> contents reference index search external Previous Next Up-> ckbs utility ckbs_tridiag_solve_pcg 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_tridiag_solve_pcg-> tridiag_solve_pcg_ok.m Headings-> Syntax Purpose b c in e iter Example

Symmetric Block Tridiagonal Algorithm (Conjugate Gradient version)

Syntax
[e, iter] = ckbs_tridiag_solve_pcg(b, c, r)

Purpose
This routine solves the following linear system of equations for   e :   $A * e = r$  where the symmetric block tridiagonal matrix   A is defined by   $A = \left( \begin{array}{ccccc} b_1 & c_2^\R{T} & 0 & \cdots & 0 \\ c_2 & b_2 & c_3^\R{T} & & \vdots \\ \vdots & & \ddots & & \\ 0 & \cdots & & b_N & c_N \end{array} \right)$  The routines ckbs_tridiag_solve and ckbs_tridiag_solve_b solve the same problem, but only for one RHS. It is basically a wrapper for Matlab's pcg routine.

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

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

in
The argument in is an   (n * N) \times 1 vector.

e
The result e is an   (n * N) \times 1 vector.

iter
The result iter is a scalar equal to the number of iterations that the cg method took to finish.

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