lapeighi#
Purpose#
Computes eigenvalues only of a real symmetric or complex Hermitian matrix selected by index.
Format#
- ve = lapeighi(x, il, iu, abstol)#
- Parameters:
x (NxN matrix) – real symmetric or complex Hermitian.
il (scalar) – index of the smallest desired eigenvalue ranking them from smallest to largest.
iu (scalar) – index of the largest desired eigenvalue, iu must be greater than il.
abstol (scalar) – the absolute error tolerance for the eigenvalues. An approximate eigenvalue is accepted as converged when it is determined to lie in an interval \([a, b]\) of width less than or equal to \(abstol + EPS*max(|a|, |b|)\), where EPS is machine precision. If abstol is less than or equal to zero, then \(EPS*||T||\) will be used in its place, where T is the tridiagonal matrix obtained by reducing the input matrix to tridiagonal form.
- Returns:
ve ((iu-il+1)x1 vector) – eigenvalues.
Examples#
// Define x matrix
x = { 5 2 1,
2 6 2,
1 2 9 };
// Index of smallest desired eigenvalue
il = 2;
// Index of largest desired eigenvalue
iu = 3;
// Compute eigenvalues with indices between
// il and iu
ve = lapeighi(x, il, iu, 0);
// Print eigenvalues
print ve;
The code above calculates the second and third eigenvalues and returns:
6.0000
10.6056
To calculate the first, second and third eigenvalues, reusing the same x from above:
// Index of smallest desired eigenvalue
il = 1;
// Index of largest desired eigenvalue
iu = 3;
// Compute eigenvalues with indices between
// il and iu
ve = lapeighi(x, il, iu, 0);
// Print eigenvalues
print ve;
The output from this code is:
3.3944
6.0000
10.6056
Remarks#
lapeighi()
computes \(iu-il+1\) eigenvalues only given a range of indices,
i.e., the ith to jth eigenvalues, ranking them from smallest to largest.
To find eigenvalues within a specified range see lapeighxb()
. For
eigenvectors see lapeighvi()
, or lapeighvb()
. lapeighi()
is based on the
LAPACK drivers DSYEVX and ZHEEVX. Further documentation of these
functions may be found in the LAPACK User’s Guide.
See also
Functions lapeighb()
, lapeighvi()
, lapeighvb()