F07THF (DTRRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

NAG Library Routine Document

F07THF (DTRRFS)

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

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

2  Specification

SUBROUTINE F07THF ( UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
INTEGER  N, NRHS, LDA, LDB, LDX, IWORK(N), INFO
REAL (KIND=nag_wp)  A(LDA,*), 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 dtrrfs.

3  Description

F07THF (DTRRFS) returns the backward errors and estimated bounds on the forward errors for the solution of a real triangular 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 F07THF (DTRRFS) 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:     NRHS – INTEGERInput
On entry: r, the number of right-hand sides.
Constraint: NRHS0.
6:     A(LDA,*) – REAL (KIND=nag_wp) arrayInput
Note: the second dimension of the array A must be at least max1,N.
On entry: the n by n triangular matrix A.
  • If UPLO='U', A is upper triangular and the elements of the array below the diagonal are not referenced.
  • If UPLO='L', A is lower triangular and the elements of the array above the diagonal are not referenced.
  • If DIAG='U', the diagonal elements of A are assumed to be 1, and are not referenced.
7:     LDA – INTEGERInput
On entry: the first dimension of the array A as declared in the (sub)program from which F07THF (DTRRFS) is called.
Constraint: LDAmax1,N.
8:     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.
9:     LDB – INTEGERInput
On entry: the first dimension of the array B as declared in the (sub)program from which F07THF (DTRRFS) is called.
Constraint: LDBmax1,N.
10:   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 F07TEF (DTRTRS).
11:   LDX – INTEGERInput
On entry: the first dimension of the array X as declared in the (sub)program from which F07THF (DTRRFS) is called.
Constraint: LDXmax1,N.
12:   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.
13:   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.
14:   WORK(3×N) – REAL (KIND=nag_wp) arrayWorkspace
15:   IWORK(N) – INTEGER arrayWorkspace
16:   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 F07THF (DTRRFS), 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 n2 floating point operations.
The complex analogue of this routine is F07TVF (ZTRRFS).

9  Example

This example solves the system of equations AX=B and to compute forward and backward error bounds, where
A= 4.30 0.00 0.00 0.00 -3.96 -4.87 0.00 0.00 0.40 0.31 -8.02 0.00 -0.27 0.07 -5.95 0.12   and   B= -12.90 -21.50 16.75 14.93 -17.55 6.33 -11.04 8.09 .

9.1  Program Text

Program Text (f07thfe.f90)

9.2  Program Data

Program Data (f07thfe.d)

9.3  Program Results

Program Results (f07thfe.r)


F07THF (DTRRFS) (PDF version)
F07 Chapter Contents
F07 Chapter Introduction
NAG Library Manual

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