Previous Next tridiag_solve_pcg_ok.m

ckbs_tridiag_solve_pcg Example and Test

Source Code
 
function [ok] = tridiag_solve_pcg_ok()
    ok = true;
    m  = 1;
    n  = 50;
    N  = 40;
    eps = 1e-5;
    % case where uk = 0, qk = I, and ak is random
    %rand('seed', 123);
    a = rand(n, n, N);
    r = randn(n * N, m);
    c = zeros(n, n, N);
    for k = 1 : N
        ak         = a(:, :, k);
        b(:, :, k) = 5 * eye(n) + ak * ak';
        c(:, :, k) = ak';
    end
    % ----------------------------------------
    [e, flag, relres, iter] = ckbs_tridiag_solve_pcg(b, c, r);
    % ----------------------------------------
    %
    check = ckbs_blktridiag_mul(b, c, e);
    max(abs(check - r))
    ok = ok & max(abs(check - r))/max(abs(r)) < eps;

    return
end

Input File: example/tridiag_solve_pcg_ok.m