NAG Library Function Document
nag_ztbtrs (f07vsc)
1 Purpose
nag_ztbtrs (f07vsc) solves a complex triangular band system of linear equations with multiple right-hand sides, , or .
2 Specification
| #include <nag.h> |
| #include <nagf07.h> |
| void |
nag_ztbtrs (Nag_OrderType order,
Nag_UploType uplo,
Nag_TransType trans,
Nag_DiagType diag,
Integer n,
Integer kd,
Integer nrhs,
const Complex ab[],
Integer pdab,
Complex b[],
Integer pdb,
NagError *fail) |
|
3 Description
nag_ztbtrs (f07vsc) solves a complex triangular band system of linear equations , or .
4 References
Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
Higham N J (1989) The accuracy of solutions to triangular systems SIAM J. Numer. Anal. 26 1252–1265
5 Arguments
- 1:
order – Nag_OrderTypeInput
-
On entry: the
order argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by
. See
Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint:
or Nag_ColMajor.
- 2:
uplo – Nag_UploTypeInput
-
On entry: specifies whether
is upper or lower triangular.
- is upper triangular.
- is lower triangular.
Constraint:
or .
- 3:
trans – Nag_TransTypeInput
-
On entry: indicates the form of the equations.
- The equations are of the form .
- The equations are of the form .
- The equations are of the form .
Constraint:
, or .
- 4:
diag – Nag_DiagTypeInput
-
On entry: indicates whether
is a nonunit or unit triangular matrix.
- is a nonunit triangular matrix.
- is a unit triangular matrix; the diagonal elements are not referenced and are assumed to be .
Constraint:
or .
- 5:
n – IntegerInput
-
On entry:
, the order of the matrix .
Constraint:
.
- 6:
kd – IntegerInput
On entry: , the number of superdiagonals of the matrix if , or the number of subdiagonals if .
Constraint:
.
- 7:
nrhs – IntegerInput
-
On entry:
, the number of right-hand sides.
Constraint:
.
- 8:
ab[] – const ComplexInput
-
Note: the dimension,
dim, of the array
ab
must be at least
.
On entry: the
by
triangular band matrix
.
This is stored as a notional two-dimensional array with row elements or column elements stored contiguously. The storage of elements of
, depends on the
order and
uplo arguments as follows:
- if and ,
is stored in , for and ; - if and ,
is stored in , for and ; - if and ,
is stored in , for and ; - if and ,
is stored in , for and .
If , the diagonal elements of are assumed to be , and are not referenced.
- 9:
pdab – IntegerInput
On entry: the stride separating row or column elements (depending on the value of
order) of the matrix
in the array
ab.
Constraint:
.
- 10:
b[] – ComplexInput/Output
-
Note: the dimension,
dim, of the array
b
must be at least
- when
;
- when
.
The
th element of the matrix
is stored in
- when ;
- when .
On entry: the by right-hand side matrix .
On exit: the by solution matrix .
- 11:
pdb – IntegerInput
-
On entry: the stride separating row or column elements (depending on the value of
order) in the array
b.
Constraints:
- if ,
;
- if , .
- 12:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
- NE_ALLOC_FAIL
Dynamic memory allocation failed.
- NE_BAD_PARAM
On entry, argument had an illegal value.
- NE_INT
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
- NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
- NE_SINGULAR
is exactly zero. is singular and the solution has not been computed.
7 Accuracy
The solutions of triangular systems of equations are usually computed to high accuracy. See
Higham (1989).
For each right-hand side vector
, the computed solution
is the exact solution of a perturbed system of equations
, where
is a modest linear function of
, and
is the
machine precision.
If
is the true solution, then the computed solution
satisfies a forward error bound of the form
where
.
Note that ; can be much smaller than and it is also possible for , which is the same as , to be much larger (or smaller) than .
Forward and backward error bounds can be computed by calling
nag_ztbrfs (f07vvc), and an estimate for
can be obtained by calling
nag_ztbcon (f07vuc) with
.
The total number of real floating point operations is approximately if .
The real analogue of this function is
nag_dtbtrs (f07vec).
9 Example
This example solves the system of equations
, where
and
Here
is treated as a lower triangular band matrix with two subdiagonals.
9.1 Program Text
Program Text (f07vsce.c)
9.2 Program Data
Program Data (f07vsce.d)
9.3 Program Results
Program Results (f07vsce.r)