NAG Library Routine Document
F07HHF (DPBRFS)
1 Purpose
F07HHF (DPBRFS) returns error bounds for the solution of a real symmetric positive definite band system of linear equations with multiple right-hand sides, AX=B. It improves the solution by iterative refinement, in order to reduce the backward error as much as possible.
2 Specification
SUBROUTINE F07HHF ( |
UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO) |
INTEGER |
N, KD, NRHS, LDAB, LDAFB, LDB, LDX, IWORK(N), INFO |
REAL (KIND=nag_wp) |
AB(LDAB,*), AFB(LDAFB,*), B(LDB,*), X(LDX,*), FERR(NRHS), BERR(NRHS), WORK(3*N) |
CHARACTER(1) |
UPLO |
|
The routine may be called by its
LAPACK
name dpbrfs.
3 Description
F07HHF (DPBRFS) returns the backward errors and estimated bounds on the forward errors for the solution of a real symmetric positive definite band system of linear equations with multiple right-hand sides AX=B. The routine handles each right-hand side vector (stored as a column of the matrix B) independently, so we describe the function of F07HHF (DPBRFS) in terms of a single right-hand side b and solution x.
Given a computed solution
x, the routine computes the
component-wise backward error
β. This is the size of the smallest relative perturbation in each element of
A and
b such that
x is the exact solution of a perturbed system
Then the routine estimates a bound for the
component-wise forward error in the computed solution, defined by:
where
x^ is the true solution.
For details of the method, see the
F07 Chapter Introduction.
4 References
Golub G H and Van Loan C F (1996)
Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
5 Parameters
- 1: UPLO – CHARACTER(1)Input
On entry: specifies whether the upper or lower triangular part of
A is stored and how
A is to be factorized.
- UPLO='U'
- The upper triangular part of A is stored and A is factorized as UTU, where U is upper triangular.
- UPLO='L'
- The lower triangular part of A is stored and A is factorized as LLT, where L is lower triangular.
Constraint:
UPLO='U' or 'L'.
- 2: N – INTEGERInput
On entry: n, the order of the matrix A.
Constraint:
N≥0.
- 3: KD – INTEGERInput
On entry: kd, the number of superdiagonals or subdiagonals of the matrix A.
Constraint:
KD≥0.
- 4: NRHS – INTEGERInput
On entry: r, the number of right-hand sides.
Constraint:
NRHS≥0.
- 5: AB(LDAB,*) – REAL (KIND=nag_wp) arrayInput
-
Note: the second dimension of the array
AB
must be at least
max1,N.
On entry: the
n by
n original symmetric positive definite band matrix
A as supplied to
F07HDF (DPBTRF).
- 6: LDAB – INTEGERInput
On entry: the first dimension of the array
AB as declared in the (sub)program from which F07HHF (DPBRFS) is called.
Constraint:
LDAB≥KD+1.
- 7: AFB(LDAFB,*) – REAL (KIND=nag_wp) arrayInput
-
Note: the second dimension of the array
AFB
must be at least
max1,N.
On entry: the Cholesky factor of
A, as returned by
F07HDF (DPBTRF).
- 8: LDAFB – INTEGERInput
On entry: the first dimension of the array
AFB as declared in the (sub)program from which F07HHF (DPBRFS) is called.
Constraint:
LDAFB≥KD+1.
- 9: B(LDB,*) – REAL (KIND=nag_wp) arrayInput
-
Note: the second dimension of the array
B
must be at least
max1,NRHS.
On entry: the n by r right-hand side matrix B.
- 10: LDB – INTEGERInput
On entry: the first dimension of the array
B as declared in the (sub)program from which F07HHF (DPBRFS) is called.
Constraint:
LDB≥max1,N.
- 11: X(LDX,*) – REAL (KIND=nag_wp) arrayInput/Output
-
Note: the second dimension of the array
X
must be at least
max1,NRHS.
On entry: the
n by
r solution matrix
X, as returned by
F07HEF (DPBTRS).
On exit: the improved solution matrix X.
- 12: LDX – INTEGERInput
On entry: the first dimension of the array
X as declared in the (sub)program from which F07HHF (DPBRFS) is called.
Constraint:
LDX≥max1,N.
- 13: FERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: FERRj contains an estimated error bound for the jth solution vector, that is, the jth column of X, for j=1,2,…,r.
- 14: BERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: BERRj contains the component-wise backward error bound β for the jth solution vector, that is, the jth column of X, for j=1,2,…,r.
- 15: WORK(3×N) – REAL (KIND=nag_wp) arrayWorkspace
- 16: IWORK(N) – INTEGER arrayWorkspace
- 17: INFO – INTEGEROutput
On exit:
INFO=0 unless the routine detects an error (see
Section 6).
6 Error Indicators and Warnings
Errors or warnings detected by the routine:
- INFO<0
If INFO=-i, the ith parameter had an illegal value. An explanatory message is output, and execution of the program is terminated.
7 Accuracy
The bounds returned in
FERR are not rigorous, because they are estimated, not computed exactly; but in practice they almost always overestimate the actual error.
8 Further Comments
For each right-hand side, computation of the backward error involves a minimum of 8nk floating point operations. Each step of iterative refinement involves an additional 12nk operations. This assumes n≫k. At most five steps of iterative refinement are performed, but usually only one or two steps are required.
Estimating the forward error involves solving a number of systems of linear equations of the form Ax=b; the number is usually 4 or 5 and never more than 11. Each solution involves approximately 4nk operations.
The complex analogue of this routine is
F07HVF (ZPBRFS).
9 Example
This example solves the system of equations
AX=B using iterative refinement and to compute the forward and backward error bounds, where
Here
A is symmetric and positive definite, and is treated as a band matrix, which must first be factorized by
F07HDF (DPBTRF).
9.1 Program Text
Program Text (f07hhfe.f90)
9.2 Program Data
Program Data (f07hhfe.d)
9.3 Program Results
Program Results (f07hhfe.r)