hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_lapack_dgttrf (f07cd)

Purpose

nag_lapack_dgttrf (f07cd) computes the LU LU  factorization of a real n n  by n n  tridiagonal matrix A A .

Syntax

[dl, d, du, du2, ipiv, info] = f07cd(dl, d, du, 'n', n)
[dl, d, du, du2, ipiv, info] = nag_lapack_dgttrf(dl, d, du, 'n', n)

Description

nag_lapack_dgttrf (f07cd) uses Gaussian elimination with partial pivoting and row interchanges to factorize the matrix A A  as
A = PLU ,
A=PLU ,
where P P  is a permutation matrix, L L  is unit lower triangular with at most one nonzero subdiagonal element in each column, and U U  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:     dl( : :) – double array
Note: the dimension of the array dl must be at least max (1,n1)max(1,n-1).
Must contain the (n1)(n-1) subdiagonal elements of the matrix AA.
2:     d( : :) – double array
Note: the dimension of the array d must be at least max (1,n)max(1,n).
Must contain the nn diagonal elements of the matrix AA.
3:     du( : :) – double array
Note: the dimension of the array du must be at least max (1,n1)max(1,n-1).
Must contain the (n1)(n-1) superdiagonal elements of the matrix AA.

Optional Input Parameters

1:     n – int64int32nag_int scalar
Default: The dimension of the array d.
nn, the order of the matrix AA.
Constraint: n0n0.

Input Parameters Omitted from the MATLAB Interface

None.

Output Parameters

1:     dl( : :) – double array
Note: the dimension of the array dl must be at least max (1,n1)max(1,n-1).
Stores the (n1)(n-1) multipliers that define the matrix LL of the LULU factorization of AA.
2:     d( : :) – double array
Note: the dimension of the array d must be at least max (1,n)max(1,n).
Stores the nn diagonal elements of the upper triangular matrix UU from the LULU factorization of AA.
3:     du( : :) – double array
Note: the dimension of the array du must be at least max (1,n1)max(1,n-1).
Stores the (n1)(n-1) elements of the first superdiagonal of UU.
4:     du2(n2n-2) – double array
Contains the (n2)(n-2) elements of the second superdiagonal of UU.
5:     ipiv(n) – int64int32nag_int array
Contains the nn pivot indices that define the permutation matrix PP. At the iith step, row ii of the matrix was interchanged with row ipiv(i)ipivi. ipiv(i)ipivi will always be either ii or (i + 1)(i+1), ipiv(i) = iipivi=i indicating that a row interchange was not performed.
6:     info – int64int32nag_int scalar
info = 0info=0 unless the function detects an error (see Section [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.

  info = iinfo=-i
If info = iinfo=-i, parameter ii had an illegal value on entry. The parameters are numbered as follows:
1: n, 2: dl, 3: d, 4: du, 5: du2, 6: ipiv, 7: info.
W INFO > 0INFO>0
If info = iinfo=i, U(i,i)U(i,i) is exactly zero. The factorization has been completed, but the factor UU 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
A + E = PLU ,
A+E=PLU ,
where
E = O(ε)A
E=O(ε)A
and ε ε  is the machine precision.
Following the use of this function, nag_lapack_dgttrs (f07ce) can be used to solve systems of equations AX = B AX=B  or ATX = B ATX=B , and nag_lapack_dgtcon (f07cg) can be used to estimate the condition number of A A .

Further Comments

The total number of floating point operations required to factorize the matrix A A  is proportional to n n .
The complex analogue of this function is nag_lapack_zgttrf (f07cr).

Example

function nag_lapack_dgttrf_example
dl = [3.4;
     3.6;
     7;
     -6];
d = [3;
     2.3;
     -5;
     -0.9;
     7.1];
du = [2.1;
     -1;
     1.9;
     8];
[dlOut, dOut, duOut, du2, ipiv, info] = nag_lapack_dgttrf(dl, d, du)
 

dlOut =

    0.8824
    0.0196
    0.1401
   -0.0148


dOut =

    3.4000
    3.6000
    7.0000
   -6.0000
   -1.0154


duOut =

    2.3000
   -5.0000
   -0.9000
    7.1000


du2 =

   -1.0000
    1.9000
    8.0000


ipiv =

                    2
                    3
                    4
                    5
                    5


info =

                    0


function f07cd_example
dl = [3.4;
     3.6;
     7;
     -6];
d = [3;
     2.3;
     -5;
     -0.9;
     7.1];
du = [2.1;
     -1;
     1.9;
     8];
[dlOut, dOut, duOut, du2, ipiv, info] = f07cd(dl, d, du)
 

dlOut =

    0.8824
    0.0196
    0.1401
   -0.0148


dOut =

    3.4000
    3.6000
    7.0000
   -6.0000
   -1.0154


duOut =

    2.3000
   -5.0000
   -0.9000
    7.1000


du2 =

   -1.0000
    1.9000
    8.0000


ipiv =

                    2
                    3
                    4
                    5
                    5


info =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013