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_complex_gen (f03ad)

Purpose

nag_det_withdraw_complex_gen (f03ad) calculates the determinant of a complex matrix using an LULU factorization with partial pivoting.
Note: this function is scheduled to be withdrawn, please see f03ad in Advice on Replacement Calls for Withdrawn/Superseded Routines..

Syntax

[a, detr, deti, ifail] = f03ad(a, 'n', n)
[a, detr, deti, ifail] = nag_det_withdraw_complex_gen(a, 'n', n)

Description

nag_det_withdraw_complex_gen (f03ad) calculates the determinant of AA using the LULU factorization with partial pivoting, PA = LUPA=LU, where PP is a permutation matrix, LL is lower triangular and UU is unit upper triangular. The determinant of AA is the product of the diagonal elements of LL, with the correct sign determined by the row interchanges.

References

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

Parameters

Compulsory Input Parameters

1:     a(lda, : :) – complex 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 matrix AA.

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 wkspce

Output Parameters

1:     a(lda, : :) – complex 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).
AA stores the factors LL and UU, except that the unit diagonal elements of UU are not stored.
2:     detr – double scalar
3:     deti – double scalar
The real part and imaginary parts of the determinant of AA.
4:     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 singular, possibly due to rounding errors. The factorization could not be completed. detr and deti are set to 0.00.0.
  ifail = 2ifail=2
Overflow. The value of the determinant is too large to be held in the computer.
  ifail = 3ifail=3
Underflow. The value of the determinant is too small to be held in the computer.
  ifail = 4ifail=4
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 107 of Wilkinson and Reinsch (1971).

Further Comments

The time taken by nag_det_withdraw_complex_gen (f03ad) is approximately proportional to n3n3.

Example

function nag_det_withdraw_complex_gen_example
a = [1,  1 + 2i,  2 + 10i;
      1 + 1i,  0 + 3i,  -5 + 14i;
      1 + 1i,  0 + 5i,  -8 + 20i];
[aOut, detr, deti, ifail] = nag_det_withdraw_complex_gen(a)
 

aOut =

   1.0000 + 0.0000i   1.0000 + 2.0000i   2.0000 +10.0000i
   1.0000 + 1.0000i   1.0000 + 2.0000i   3.2000 + 1.6000i
   1.0000 + 1.0000i   1.0000 + 0.0000i  -0.2000 + 0.4000i


detr =

     1


deti =

   4.4409e-16


ifail =

                    0


function f03ad_example
a = [1,  1 + 2i,  2 + 10i;
      1 + 1i,  0 + 3i,  -5 + 14i;
      1 + 1i,  0 + 5i,  -8 + 20i];
[aOut, detr, deti, ifail] = f03ad(a)
 

aOut =

   1.0000 + 0.0000i   1.0000 + 2.0000i   2.0000 +10.0000i
   1.0000 + 1.0000i   1.0000 + 2.0000i   3.2000 + 1.6000i
   1.0000 + 1.0000i   1.0000 + 0.0000i  -0.2000 + 0.4000i


detr =

     1


deti =

   4.4409e-16


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