The linear system to be solved may be badly scaled. However, the system can be equilibrated as a first stage by setting . In this case, real scaling factors are computed and these factors then determine whether the system is to be equilibrated. Equilibrated forms of the systems , and are
respectively, where and are diagonal matrices, with positive diagonal elements, formed from the computed scaling factors.
When equilibration is used, will be overwritten by and will be overwritten by (or when the solution of or is sought).
The matrix , or its scaled form, is copied and factored using the decomposition
where is a permutation matrix, is a unit lower triangular matrix, and is upper triangular.
This stage can be by-passed when a factored matrix (with scaled matrices and scaling factors) are supplied; for example, as provided by a previous call to nag_zgbsvx (f07bpc) with the same matrix .
|Condition Number Estimation
The factorization of determines whether a solution to the linear system exists. If some diagonal element of is zero, then is exactly singular, no solution exists and the function returns with a failure. Otherwise the factorized form of is used to estimate the condition number of the matrix . If the reciprocal of the condition number is less than machine precision then a warning code is returned on final exit.
The (equilibrated) system is solved for ( or ) using the factored form of ().
Iterative refinement is applied to improve the computed solution matrix and to calculate error bounds and backward error estimates for the computed solution.
|Construct Solution Matrix
If equilibration was used, the matrix is premultiplied by (if ) or (if or ) so that it solves the original system before equilibration.
Program Text (f07bpce.c)
Program Data (f07bpce.d)
Program Results (f07bpce.r)