nag_dtbtrs (f07vec) solves a real triangular band system of linear equations with multiple right-hand sides, or .
- 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 .
- or
- 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 doubleInput
-
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[] – doubleInput/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).
- 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.
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
.
Forward and backward error bounds can be computed by calling
nag_dtbrfs (f07vhc), and an estimate for
can be obtained by calling
nag_dtbcon (f07vgc) with
.
The complex analogue of this function is
nag_ztbtrs (f07vsc).
This example solves the system of equations
, where
Here
is treated as a lower triangular band matrix with one subdiagonal.