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_dgesv (f07aa)

Purpose

nag_lapack_dgesv (f07aa) computes the solution to a real system of linear equations
AX = B ,
AX=B ,
where AA is an nn by nn matrix and XX and BB are nn by rr matrices.

Syntax

[a, ipiv, b, info] = f07aa(a, b, 'n', n, 'nrhs_p', nrhs_p)
[a, ipiv, b, info] = nag_lapack_dgesv(a, b, 'n', n, 'nrhs_p', nrhs_p)

Description

nag_lapack_dgesv (f07aa) uses the LULU decomposition with partial pivoting and row interchanges to factor AA as
A = PLU ,
A=PLU ,
where PP is a permutation matrix, LL is unit lower triangular, and UU is upper triangular. The factored form of AA is then used to solve the system of equations AX = BAX=B.

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
Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore

Parameters

Compulsory Input Parameters

1:     a(lda, : :) – double array
The first dimension of the array a must be at least max (1,n)max(1,n)
The second dimension of the array must be at least max (1,n)max(1,n)
The nn by nn coefficient matrix AA.
2:     b(ldb, : :) – double array
The first dimension of the array b must be at least max (1,n)max(1,n)
The second dimension of the array must be at least max (1,nrhs)max(1,nrhs)
The nn by rr right-hand side matrix BB.

Optional Input Parameters

1:     n – int64int32nag_int scalar
Default: The first dimension of the array b.
nn, the number of linear equations, i.e., the order of the matrix AA.
Constraint: n0n0.
2:     nrhs_p – int64int32nag_int scalar
Default: The second dimension of the array b.
rr, the number of right-hand sides, i.e., the number of columns of the matrix BB.
Constraint: nrhs0nrhs0.

Input Parameters Omitted from the MATLAB Interface

lda ldb

Output Parameters

1:     a(lda, : :) – double array
The first dimension of the array a will be max (1,n)max(1,n)
The second dimension of the array will be max (1,n)max(1,n)
ldamax (1,n)ldamax(1,n).
The factors LL and UU from the factorization A = PLUA=PLU; the unit diagonal elements of LL are not stored.
2:     ipiv(n) – int64int32nag_int array
If no constraints are violated, the 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) = iipivi=i indicates a row interchange was not required.
3:     b(ldb, : :) – double array
The first dimension of the array b will be max (1,n)max(1,n)
The second dimension of the array will be max (1,nrhs)max(1,nrhs)
ldbmax (1,n)ldbmax(1,n).
If INFO = 0INFO=0, the nn by rr solution matrix XX.
4:     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: nrhs_p, 3: a, 4: lda, 5: ipiv, 6: b, 7: ldb, 8: info.
It is possible that info refers to a parameter that is omitted from the MATLAB interface. This usually indicates that an error in one of the other input parameters has caused an incorrect value to be inferred.
W INFO > 0INFO>0
If info = iinfo=i, uiiuii is exactly zero. The factorization has been completed, but the factor UU is exactly singular, so the solution could not be computed.

Accuracy

The computed solution for a single right-hand side, x^ , satisfies the equation of the form
(A + E) = b ,
(A+E) x^=b ,
where
E1 = O(ε) A1
E1 = O(ε) A1
and ε ε  is the machine precision. An approximate error bound for the computed solution is given by
(x1)/(x1) κ(A) (E1)/(A1)
x^ - x 1 x 1 κ(A) E 1 A 1
where κ(A) = A11 A1 κ(A) = A-1 1 A 1 , the condition number of A A  with respect to the solution of the linear equations. See Section 4.4 of Anderson et al. (1999) for further details.
Following the use of nag_lapack_dgesv (f07aa), nag_lapack_dgecon (f07ag) can be used to estimate the condition number of A A  and nag_lapack_dgerfs (f07ah) can be used to obtain approximate error bounds. Alternatives to nag_lapack_dgesv (f07aa), which return condition and error estimates directly are nag_linsys_real_square_solve (f04ba) and nag_lapack_dgesvx (f07ab).

Further Comments

The total number of floating point operations is approximately (2/3) n3 + 2n2 r 23 n3 + 2n2 r , where r r  is the number of right-hand sides.
The complex analogue of this function is nag_lapack_zgesv (f07an).

Example

function nag_lapack_dgesv_example
a = [1.8, 2.88, 2.05, -0.89;
     5.25, -2.95, -0.95, -3.8;
     1.58, -2.69, -2.9, -1.04;
     -1.11, -0.66, -0.59, 0.8];
b = [9.52;
     24.35;
     0.77;
     -6.22];
[aOut, ipiv, bOut, info] = nag_lapack_dgesv(a, b)
 

aOut =

    5.2500   -2.9500   -0.9500   -3.8000
    0.3429    3.8914    2.3757    0.4129
    0.3010   -0.4631   -1.5139    0.2948
   -0.2114   -0.3299    0.0047    0.1314


ipiv =

                    2
                    2
                    3
                    4


bOut =

    1.0000
   -1.0000
    3.0000
   -5.0000


info =

                    0


function f07aa_example
a = [1.8, 2.88, 2.05, -0.89;
     5.25, -2.95, -0.95, -3.8;
     1.58, -2.69, -2.9, -1.04;
     -1.11, -0.66, -0.59, 0.8];
b = [9.52;
     24.35;
     0.77;
     -6.22];
[aOut, ipiv, bOut, info] = f07aa(a, b)
 

aOut =

    5.2500   -2.9500   -0.9500   -3.8000
    0.3429    3.8914    2.3757    0.4129
    0.3010   -0.4631   -1.5139    0.2948
   -0.2114   -0.3299    0.0047    0.1314


ipiv =

                    2
                    2
                    3
                    4


bOut =

    1.0000
   -1.0000
    3.0000
   -5.0000


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