PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_lapack_dgttrf (f07cd)
Purpose
nag_lapack_dgttrf (f07cd) computes the factorization of a real by tridiagonal matrix .
Syntax
Description
nag_lapack_dgttrf (f07cd) uses Gaussian elimination with partial pivoting and row interchanges to factorize the matrix
as
where
is a permutation matrix,
is unit lower triangular with at most one nonzero subdiagonal element in each column, and
is an upper triangular band matrix, with two superdiagonals.
References
Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999)
LAPACK Users' Guide (3rd Edition) SIAM, Philadelphia
http://www.netlib.org/lapack/lug
Parameters
Compulsory Input Parameters
- 1:
– double array
-
The dimension of the array
dl
must be at least
Must contain the subdiagonal elements of the matrix .
- 2:
– double array
-
The dimension of the array
d
must be at least
Must contain the diagonal elements of the matrix .
- 3:
– double array
-
The dimension of the array
du
must be at least
Must contain the superdiagonal elements of the matrix .
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the dimension of the array
d.
, the order of the matrix .
Constraint:
.
Output Parameters
- 1:
– double array
-
The dimension of the array
dl will be
Stores the multipliers that define the matrix of the factorization of .
- 2:
– double array
-
The dimension of the array
d will be
Stores the diagonal elements of the upper triangular matrix from the factorization of .
- 3:
– double array
-
The dimension of the array
du will be
Stores the elements of the first superdiagonal of .
- 4:
– double array
-
Contains the elements of the second superdiagonal of .
- 5:
– int64int32nag_int array
-
Contains the pivot indices that define the permutation matrix . At the th step, row of the matrix was interchanged with row . will always be either or , indicating that a row interchange was not performed.
- 6:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
Cases prefixed with W are classified as warnings and
do not generate an error of type NAG:error_n. See nag_issue_warnings.
-
If , argument had an illegal value. An explanatory message is output, and execution of the program is terminated.
- W
-
Element of the diagonal is exactly zero.
The factorization has been completed, but the factor is exactly singular, and division by zero will occur if it is used to solve
a system of equations.
Accuracy
The computed factorization satisfies an equation of the form
where
and
is the
machine precision.
Following the use of this function,
nag_lapack_dgttrs (f07ce) can be used to solve systems of equations
or
, and
nag_lapack_dgtcon (f07cg) can be used to estimate the condition number of
.
Further Comments
The total number of floating-point operations required to factorize the matrix is proportional to .
The complex analogue of this function is
nag_lapack_zgttrf (f07cr).
Example
This example factorizes the tridiagonal matrix
given by
Open in the MATLAB editor:
f07cd_example
function f07cd_example
fprintf('f07cd example results\n\n');
du = [ 2.1 -1.0 1.9 8.0];
d = [3.0 2.3 -5.0 -0.9 7.1];
dl = [3.4 3.6 7.0 -6.0 ];
n = numel(d);
[dlf, df, duf, du2f, ipiv, info] = ...
f07cd(dl, d, du);
disp('Details of factorization');
fprintf('\n');
disp(' Second super-diagonal of U');
fprintf('%9.4f', du2f);
fprintf('\n\n');
disp(' First super-diagonal of U');
fprintf('%9.4f', duf);
fprintf('\n\n');
disp(' Main diagonal of U');
fprintf('%9.4f', df);
fprintf('\n\n');
disp(' Multipliers');
fprintf('%9.4f', dlf);
fprintf('\n\n');
disp(' Vector of interchanges');
fprintf('%9d', ipiv);
fprintf('\n');
f07cd example results
Details of factorization
Second super-diagonal of U
-1.0000 1.9000 8.0000
First super-diagonal of U
2.3000 -5.0000 -0.9000 7.1000
Main diagonal of U
3.4000 3.6000 7.0000 -6.0000 -1.0154
Multipliers
0.8824 0.0196 0.1401 -0.0148
Vector of interchanges
2 3 4 5 5
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015