f04maf

f04maf © Numerical Algorithms Group, 2002.

Purpose

F04MAF Real sparse symmetric positive-definite simultaneous linear equations (coefficient matrix already factorized)

Synopsis

[b,work,acc,noits,ifail] = f04maf(nz,a,irn,icn,b,wkeep,ikeep,inform<,acc,...
noits,ifail>)

Description

 
 F04MAF solves the n linear equations
 
                            Ax=b,                              (1)
 
 where A is a sparse symmetric positive-definite matrix, following
 the incomplete Cholesky factorization by F01MAF, given by
 
                             T T
                       C=PLDL P  , WAW=C+E,
 
 where P is a permutation matrix, L is a unit lower triangular 
 matrix, D is a diagonal matrix with positive diagonal elements, E
 is an error matrix representing elements dropped during the 
 factorization and diagonal elements that have been modified to 
 ensure that C is positive-definite, and W is a diagonal matrix, 
 chosen to make the diagonal elements of WAW unity.
 
 Equation (1) is solved by applying a pre-conditioned conjugate 
 gradient method to the equations
 
                              -1                             
                       (WAW)(W  x)=Wb,                         (2)
 
 using C as the pre-conditioning matrix.
 
 The iterative procedure is terminated if
 
                       ||Wr|| <=(eta),                         (3)
                             2                               
 
 where r is the residual vector r=b-Ax, ||r||  denotes the 
                                             2            
 Euclidean length of r, (eta) is a user-supplied tolerance and x 
 is the current approximation to the solution. Notice that
 
                                      -1
                         Wr=Wb-(WAW)(W  x)
 
 so that Wr is the residual of the normalised equations (2).
 

Parameters

f04maf

Required Input Arguments:

nz                                    integer
a (:)                                 real
irn (:)                               integer
icn (:)                               integer
b (:)                                 real
wkeep (:,3)                           real
ikeep (:,2)                           integer
inform (4)                            integer

Optional Input Arguments:                       <Default>

acc (2)                               real     [eps;0]
noits (2)                             integer  [100;0]
ifail                                 integer  -1

Output Arguments:

b (:)                                 real
work (:)                              real
acc (2)                               real
noits (2)                             integer
ifail                                 integer