PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_lapack_dstev (f08ja)
Purpose
nag_lapack_dstev (f08ja) computes all the eigenvalues and, optionally, all the eigenvectors of a real by symmetric tridiagonal matrix .
Syntax
Description
nag_lapack_dstev (f08ja) computes all the eigenvalues and, optionally, all the eigenvectors of using a combination of the and algorithms, with an implicit shift.
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:
– string (length ≥ 1)
-
Indicates whether eigenvectors are computed.
- Only eigenvalues are computed.
- Eigenvalues and eigenvectors are computed.
Constraint:
or .
- 2:
– double array
-
The dimension of the array
d
must be at least
The diagonal elements of the tridiagonal matrix .
- 3:
– double array
-
The dimension of the array
e
must be at least
The subdiagonal elements of the tridiagonal matrix .
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the dimension of the array
d.
, the order of the matrix.
Constraint:
.
Output Parameters
- 1:
– double array
-
The dimension of the array
d will be
If , the eigenvalues in ascending order.
- 2:
– double array
-
The dimension of the array
e will be
The contents of
e are destroyed.
- 3:
– double array
-
The first dimension,
, of the array
z will be
- if , ;
- otherwise .
The second dimension of the array
z will be
if
and
otherwise.
If
, then if
,
z contains the orthonormal eigenvectors of the matrix
, with the
th column of
holding the eigenvector associated with
.
If
,
z is not referenced.
- 4:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
-
If , parameter had an illegal value on entry. The parameters are numbered as follows:
1:
jobz, 2:
n, 3:
d, 4:
e, 5:
z, 6:
ldz, 7:
work, 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.
-
-
If
, the algorithm failed to converge;
off-diagonal elements of
e did not converge to zero.
Accuracy
The computed eigenvalues and eigenvectors are exact for a nearby matrix
, where
and
is the
machine precision. See Section 4.7 of
Anderson et al. (1999) for further details.
Further Comments
The total number of floating-point operations is proportional to if and is proportional to if .
Example
This example finds all the eigenvalues and eigenvectors of the symmetric tridiagonal matrix
together with approximate error bounds for the computed eigenvalues and eigenvectors.
Open in the MATLAB editor:
f08ja_example
function f08ja_example
fprintf('f08ja example results\n\n');
n = int64(4);
d = [1; 4; 9; 16];
e = [1; 2; 3];
jobz = 'Vectors';
[w, ~, z, info] = f08ja( ...
jobz, d, e);
for j = 1:n
[~,k] = max(abs(z(:,j)));
if z(k,j) < 0;
z(:,j) = -z(:,j);
end
end
disp('Eigenvalues');
disp(w);
disp('Eigenvectors');
disp(z);
errbnd = x02aj*max(abs(w(1)),abs(w(end)));
[rcondz, info] = f08fl( ...
'Eigenvectors', n, n, w);
zerrbd = errbnd./rcondz;
disp('Error estimate for the eigenvalues');
fprintf('%12.1e\n',errbnd);
disp('Error estimates for the eigenvectors');
fprintf('%12.1e',zerrbd);
fprintf('\n');
f08ja example results
Eigenvalues
0.6476
3.5470
8.6578
17.1477
Eigenvectors
0.9396 0.3388 0.0494 0.0034
-0.3311 0.8628 0.3781 0.0545
0.0853 -0.3648 0.8558 0.3568
-0.0167 0.0879 -0.3497 0.9326
Error estimate for the eigenvalues
1.9e-15
Error estimates for the eigenvectors
6.6e-16 6.6e-16 3.7e-16 2.2e-16
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015