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 righthand 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 righthand sides $AX=B$. The routine handles each righthand side vector (stored as a column of the matrix $B$) independently, so we describe the function of F07HHF (DPBRFS) in terms of a single righthand side $b$ and solution $x$.
Given a computed solution
$x$, the routine computes the
componentwise backward error
$\beta $. 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
componentwise forward error in the computed solution, defined by:
where
$\hat{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.
 ${\mathbf{UPLO}}=\text{'U'}$
 The upper triangular part of $A$ is stored and $A$ is factorized as ${U}^{\mathrm{T}}U$, where $U$ is upper triangular.
 ${\mathbf{UPLO}}=\text{'L'}$
 The lower triangular part of $A$ is stored and $A$ is factorized as $L{L}^{\mathrm{T}}$, where $L$ is lower triangular.
Constraint:
${\mathbf{UPLO}}=\text{'U'}$ or $\text{'L'}$.
 2: N – INTEGERInput
On entry: $n$, the order of the matrix $A$.
Constraint:
${\mathbf{N}}\ge 0$.
 3: KD – INTEGERInput
On entry: ${k}_{d}$, the number of superdiagonals or subdiagonals of the matrix $A$.
Constraint:
${\mathbf{KD}}\ge 0$.
 4: NRHS – INTEGERInput
On entry: $r$, the number of righthand sides.
Constraint:
${\mathbf{NRHS}}\ge 0$.
 5: AB(LDAB,$*$) – REAL (KIND=nag_wp) arrayInput

Note: the second dimension of the array
AB
must be at least
$\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{N}}\right)$.
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:
${\mathbf{LDAB}}\ge {\mathbf{KD}}+1$.
 7: AFB(LDAFB,$*$) – REAL (KIND=nag_wp) arrayInput

Note: the second dimension of the array
AFB
must be at least
$\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{N}}\right)$.
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:
${\mathbf{LDAFB}}\ge {\mathbf{KD}}+1$.
 9: B(LDB,$*$) – REAL (KIND=nag_wp) arrayInput

Note: the second dimension of the array
B
must be at least
$\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{NRHS}}\right)$.
On entry: the $n$ by $r$ righthand 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:
${\mathbf{LDB}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{N}}\right)$.
 11: X(LDX,$*$) – REAL (KIND=nag_wp) arrayInput/Output

Note: the second dimension of the array
X
must be at least
$\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{NRHS}}\right)$.
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:
${\mathbf{LDX}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{N}}\right)$.
 13: FERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: ${\mathbf{FERR}}\left(\mathit{j}\right)$ contains an estimated error bound for the $\mathit{j}$th solution vector, that is, the $\mathit{j}$th column of $X$, for $\mathit{j}=1,2,\dots ,r$.
 14: BERR(NRHS) – REAL (KIND=nag_wp) arrayOutput
On exit: ${\mathbf{BERR}}\left(\mathit{j}\right)$ contains the componentwise backward error bound $\beta $ for the $\mathit{j}$th solution vector, that is, the $\mathit{j}$th column of $X$, for $\mathit{j}=1,2,\dots ,r$.
 15: WORK($3\times {\mathbf{N}}$) – REAL (KIND=nag_wp) arrayWorkspace
 16: IWORK(N) – INTEGER arrayWorkspace
 17: INFO – INTEGEROutput
On exit:
${\mathbf{INFO}}=0$ unless the routine detects an error (see
Section 6).
6 Error Indicators and Warnings
Errors or warnings detected by the routine:
 ${\mathbf{INFO}}<0$
If ${\mathbf{INFO}}=i$, the $i$th 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.
For each righthand 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\gg 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)