|
NAG[f02axc] NAG[nag_hermitian_eigensystem] - All eigenvalues and eigenvectors of complex Hermitian matrix
|
|
Calling Sequence
f02axc(a, r, v, 'n'=n, 'tda'=tda, 'tdv'=tdv, 'fail'=fail)
nag_hermitian_eigensystem(. . .)
Parameters
|
a - Matrix(1..n, 1..tda, datatype=complex[8], order=C_order);
|
|
|
|
r - Vector(1..n, datatype=float[8]);
|
|
|
On exit: the eigenvalues in ascending order.
|
|
|
v - Matrix(1..n, 1..tdv, datatype=complex[8], order=C_order);
|
|
|
On exit: the eigenvectors, stored by columns. The th column corresponds to the th eigenvector. The eigenvectors are normalized so that the sum of the squares of the moduli of the elements is equal to 1 and the element of largest modulus is real. See also Section [Further Comments].
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the first dimension of the arrays a, r, v and the second dimension of the arrays a, r, vthe arrays a, v.
|
|
On entry: , the order of the matrix .
|
|
Constraint: . .
|
|
|
'tda'=tda - integer; (optional)
|
|
|
On entry: the second dimension of the array a as declared in the function from which nag_hermitian_eigensystem (f02axc) is called.
|
|
Constraint: . .
|
|
|
'tdv'=tdv - integer; (optional)
|
|
|
On entry: the second dimension of the array v as declared in the function from which nag_hermitian_eigensystem (f02axc) is called.
|
|
Constraint: . .
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Purpose
|
|
nag_hermitian_eigensystem (f02axc) calculates all the eigenvalues and eigenvectors of a complex Hermitian matrix.
|
|
Error Indicators and Warnings
|
|
"NE_ALLOC_FAIL"
Dynamic memory allocation failed.
"NE_DIAG_IMAG_NON_ZERO"
Matrix diagonal element has non-zero imaginary part.
"NE_INT_ARG_LT"
On entry, n must not be less than 1: .
"NE_TOO_MANY_ITERATIONS"
More than iterations are required to isolate all the eigenvalues.
|
|
Accuracy
|
|
The eigenvectors are always accurately orthogonal but the accuracy of the individual eigenvalues and eigenvectors is dependent on their inherent sensitivity to small changes in the original matrix. For a detailed error analysis see page 235 of Wilkinson and Reinsch (1971).
|
|
Further Comments
|
|
The time taken by nag_hermitian_eigensystem (f02axc) is approximately proportional to .
The function may be called with the same actual array supplied for a and v, in which case the eigenvectors will overwrite the original matrix .
|
|
|
Examples
|
|
>
|
n := 4:
tda := 4:
tdv := 4:
a := Matrix([[0.5 +0*I , 0 +0*I , 1.84 +1.38*I , 2.08 -1.56*I ], [0 +0*I , 0.5 +0*I , 1.12 +0.84*I , -0.5600000000000001 +0.42*I ], [1.84 -1.38*I , 1.12 -0.84*I , 0.5 +0*I , 0 +0*I ], [2.08 +1.56*I , -0.5600000000000001 -0.42*I , 0 +0*I , 0.5 +0*I ]], datatype=complex[8], order='C_order'):
r := Vector(4, datatype=float[8]):
v := Matrix(4, 4, datatype=complex[8], order='C_order'):
NAG:-f02axc(a, r, v, 'n' = n, 'tda' = tda, 'tdv' = tdv):
|

|
|