nag_sparse_nsym_precon_ilu_solve (f11dbc) solves a system of linear equations involving the incomplete
preconditioning matrix generated by
nag_sparse_nsym_fac (f11dac).
nag_sparse_nsym_precon_ilu_solve (f11dbc) solves a system of linear equations
according to the value of the argument
trans, where the matrix
, corresponds to an incomplete
decomposition of a sparse matrix stored in coordinate storage (CS) format (see
Section 2.1.1 in the f11 Chapter Introduction), as generated by
nag_sparse_nsym_fac (f11dac).
In the above decomposition
is a lower triangular sparse matrix with unit diagonal elements,
is a diagonal matrix,
is an upper triangular sparse matrix with unit diagonal elements and,
and
are permutation matrices.
,
and
are supplied to nag_sparse_nsym_precon_ilu_solve (f11dbc) through the matrix
which is an
n by
n sparse matrix, stored in CS format, as returned by
nag_sparse_nsym_fac (f11dac). The permutation matrices
and
are returned from
nag_sparse_nsym_fac (f11dac) via the arrays
ipivp and
ipivq.
It is envisaged that a common use of nag_sparse_nsym_precon_ilu_solve (f11dbc) will be to carry out the preconditioning step required in the application of
nag_sparse_nsym_basic_solver (f11bec) to sparse linear systems. nag_sparse_nsym_precon_ilu_solve (f11dbc) is used for this purpose by the Black Box function
nag_sparse_nsym_fac_sol (f11dcc).
nag_sparse_nsym_precon_ilu_solve (f11dbc) may also be used in combination with
nag_sparse_nsym_fac (f11dac) to solve a sparse system of linear equations directly (see
Section 9.5 in nag_sparse_nsym_fac (f11dac)). This use of nag_sparse_nsym_precon_ilu_solve (f11dbc) is demonstrated in
Section 10.
None.
If
the computed solution
is the exact solution of a perturbed system of equations
, where
is a modest linear function of
, and
is the
machine precision. An equivalent result holds when
.
nag_sparse_nsym_precon_ilu_solve (f11dbc) is not threaded in any implementation.
The time taken for a call to nag_sparse_nsym_precon_ilu_solve (f11dbc) is proportional to the value of
nnzc returned from
nag_sparse_nsym_fac (f11dac).
It is expected that a common use of nag_sparse_nsym_precon_ilu_solve (f11dbc) will be to carry out the preconditioning step required in the application of
nag_sparse_nsym_basic_solver (f11bec) to sparse linear systems. In this situation nag_sparse_nsym_precon_ilu_solve (f11dbc) is likely to be called many times with the same matrix
. In the interests of both reliability and efficiency, you are recommended to set
for the first of such calls, and for all subsequent calls set
.
This example reads in a sparse nonsymmetric matrix
and a vector
. It then calls
nag_sparse_nsym_fac (f11dac), with
and
, to compute the
complete
decomposition
Finally it calls nag_sparse_nsym_precon_ilu_solve (f11dbc) to solve the system