F07VHF (DTBRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

NAG Library Routine Document

F07VHF (DTBRFS)

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

F07VHF (DTBRFS) returns error bounds for the solution of a real triangular band system of linear equations with multiple right-hand sides, AX=B or ATX=B.

2  Specification

SUBROUTINE F07VHF ( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
INTEGER  N, KD, NRHS, LDAB, LDB, LDX, IWORK(N), INFO
REAL (KIND=nag_wp)  AB(LDAB,*), B(LDB,*), X(LDX,*), FERR(NRHS), BERR(NRHS), WORK(3*N)
CHARACTER(1)  UPLO, TRANS, DIAG
The routine may be called by its LAPACK name dtbrfs.

3  Description

F07VHF (DTBRFS) returns the backward errors and estimated bounds on the forward errors for the solution of a real triangular band system of linear equations with multiple right-hand sides AX=B or ATX=B. The routine handles each right-hand side vector (stored as a column of the matrix B) independently, so we describe the function of F07VHF (DTBRFS) 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
A+δAx=b+δb δaijβaij   and   δbiβbi .
Then the routine estimates a bound for the component-wise forward error in the computed solution, defined by:
maxixi-x^i/maxixi
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 A is upper or lower triangular.
UPLO='U'
A is upper triangular.
UPLO='L'
A is lower triangular.
Constraint: UPLO='U' or 'L'.
2:     TRANS – CHARACTER(1)Input
On entry: indicates the form of the equations.
TRANS='N'
The equations are of the form AX=B.
TRANS='T' or 'C'
The equations are of the form ATX=B.
Constraint: TRANS='N', 'T' or 'C'.
3:     DIAG – CHARACTER(1)Input
On entry: indicates whether A is a nonunit or unit triangular matrix.
DIAG='N'
A is a nonunit triangular matrix.
DIAG='U'
A is a unit triangular matrix; the diagonal elements are not referenced and are assumed to be 1.
Constraint: DIAG='N' or 'U'.
4:     N – INTEGERInput
On entry: n, the order of the matrix A.
Constraint: N0.
5:     KD – INTEGERInput
On entry: kd, the number of superdiagonals of the matrix A if UPLO='U', or the number of subdiagonals if UPLO='L'.
Constraint: KD0.
6:     NRHS – INTEGERInput
On entry: r, the number of right-hand sides.
Constraint: NRHS0.
7:     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 triangular band matrix A.
The matrix is stored in rows 1 to kd+1, more precisely,
  • if UPLO='U', the elements of the upper triangle of A within the band must be stored with element Aij in ABkd+1+i-jj​ for ​max1,j-kdij;
  • if UPLO='L', the elements of the lower triangle of A within the band must be stored with element Aij in AB1+i-jj​ for ​jiminn,j+kd.
If DIAG='U', the diagonal elements of A are assumed to be 1, and are not referenced.
8:     LDAB – INTEGERInput
On entry: the first dimension of the array AB as declared in the (sub)program from which F07VHF (DTBRFS) is called.
Constraint: LDABKD+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 F07VHF (DTBRFS) is called.
Constraint: LDBmax1,N.
11:   X(LDX,*) – REAL (KIND=nag_wp) arrayInput
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 F07VEF (DTBTRS).
12:   LDX – INTEGERInput
On entry: the first dimension of the array X as declared in the (sub)program from which F07VHF (DTBRFS) is called.
Constraint: LDXmax1,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

A call to F07VHF (DTBRFS), for each right-hand side, involves solving a number of systems of linear equations of the form Ax=b or ATx=b; the number is usually 4 or 5 and never more than 11. Each solution involves approximately 2nk floating point operations (assuming nk).
The complex analogue of this routine is F07VVF (ZTBRFS).

9  Example

This example solves the system of equations AX=B and to compute forward and backward error bounds, where
A= -4.16 0.00 0.00 0.00 -2.25 4.78 0.00 0.00 0.00 5.86 6.32 0.00 0.00 0.00 -4.82 0.16   and   B= -16.64 -4.16 -13.78 -16.59 13.10 -4.94 -14.14 -9.96 .

9.1  Program Text

Program Text (f07vhfe.f90)

9.2  Program Data

Program Data (f07vhfe.d)

9.3  Program Results

Program Results (f07vhfe.r)


F07VHF (DTBRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012