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_det_withdraw_real_sym_fac (f03ae)

Purpose

nag_det_withdraw_real_sym_fac (f03ae) computes a Cholesky factorization of a real symmetric positive definite matrix, and evaluates the determinant.
Note: this function is scheduled to be withdrawn, please see f03ae in Advice on Replacement Calls for Withdrawn/Superseded Routines..

Syntax

[a, p, d1, id, ifail] = f03ae(a, 'n', n)
[a, p, d1, id, ifail] = nag_det_withdraw_real_sym_fac(a, 'n', n)

Description

nag_det_withdraw_real_sym_fac (f03ae) computes the Cholesky factorization of a real symmetric positive definite matrix A = LLTA=LLT where LL is lower triangular. The determinant is the product of the squares of the diagonal elements of LL.

References

Wilkinson J H and Reinsch C (1971) Handbook for Automatic Computation II, Linear Algebra Springer–Verlag

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 upper triangle of the nn by nn positive definite symmetric matrix AA. The elements of the array below the diagonal need not be set.

Optional Input Parameters

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

Input Parameters Omitted from the MATLAB Interface

lda

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 subdiagonal elements of the lower triangular matrix LL. The upper triangle of AA is unchanged.
2:     p(n) – double array
The reciprocals of the diagonal elements of LL.
3:     d1 – double scalar
4:     id – int64int32nag_int scalar
The determinant of AA is given by d1 × 2.0idd1×2.0id. It is given in this form to avoid overflow or underflow.
5:     ifail – int64int32nag_int scalar
ifail = 0ifail=0 unless the function detects an error (see [Error Indicators and Warnings]).

Error Indicators and Warnings

Errors or warnings detected by the function:
  ifail = 1ifail=1
The matrix AA is not positive definite, possibly due to rounding errors. The factorization could not be completed. d1 and id are set to zero.
  ifail = 2ifail=2
On entry,n < 0n<0,
orlda < max (1,n)lda<max(1,n).

Accuracy

The accuracy of the determinant depends on the conditioning of the original matrix. For a detailed error analysis see page 25 of Wilkinson and Reinsch (1971).

Further Comments

The time taken by nag_det_withdraw_real_sym_fac (f03ae) is approximately proportional to n3n3.

Example

function nag_det_withdraw_real_sym_fac_example
a = [6, 7, 6, 5;
     7, 11, 8, 7;
     6, 8, 11, 9;
     5, 7, 9, 11];
[aOut, p, d1, id, ifail] = nag_det_withdraw_real_sym_fac(a)
 

aOut =

    6.0000    7.0000    6.0000    5.0000
    2.8577   11.0000    8.0000    7.0000
    2.4495    0.5941   11.0000    9.0000
    2.0412    0.6931    1.6645   11.0000


p =

    0.4082
    0.5941
    0.4639
    0.5283


d1 =

    0.0691


id =

                   12


ifail =

                    0


function f03ae_example
a = [6, 7, 6, 5;
     7, 11, 8, 7;
     6, 8, 11, 9;
     5, 7, 9, 11];
[aOut, p, d1, id, ifail] = f03ae(a)
 

aOut =

    6.0000    7.0000    6.0000    5.0000
    2.8577   11.0000    8.0000    7.0000
    2.4495    0.5941   11.0000    9.0000
    2.0412    0.6931    1.6645   11.0000


p =

    0.4082
    0.5941
    0.4639
    0.5283


d1 =

    0.0691


id =

                   12


ifail =

                    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