Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?pteqr

Computes all eigenvalues and (optionally) all eigenvectors of a real symmetric positive-definite tridiagonal matrix.

Syntax

call spteqr
(
compz
,
n
,
d
,
e
,
z
,
ldz
,
work
,
info
)
call dpteqr
(
compz
,
n
,
d
,
e
,
z
,
ldz
,
work
,
info
)
call cpteqr
(
compz
,
n
,
d
,
e
,
z
,
ldz
,
work
,
info
)
call zpteqr
(
compz
,
n
,
d
,
e
,
z
,
ldz
,
work
,
info
)
call rpteqr
(
d
,
e
[
,
z
]
[
,
compz
]
[
,
info
]
)
call pteqr
(
d
,
e
[
,
z
]
[
,
compz
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine computes all the eigenvalues and (optionally) all the eigenvectors of a real symmetric positive-definite tridiagonal matrix
T
. In other words, the routine can compute the spectral factorization:
T
=
Z
*
Λ
*
Z
T
.
Here
Λ
is a diagonal matrix whose diagonal elements are the eigenvalues
λ
i
;
Z
is an orthogonal matrix whose columns are eigenvectors. Thus,
T
*
z
i
=
λ
i
*
z
i
for
i
= 1, 2, ...,
n
.
(The routine normalizes the eigenvectors so that
||
z
i
||
2
= 1
.)
You can also use the routine for computing the eigenvalues and eigenvectors of real symmetric (or complex Hermitian) positive-definite matrices
A
reduced to tridiagonal form
T
:
A
=
Q*T*Q
H
. In this case, the spectral factorization is as follows:
A
=
Q*T*Q
H
= (
QZ
)*
Λ
*(
QZ
)
H
. Before calling
?pteqr
, you must reduce
A
to tridiagonal form and generate the explicit matrix
Q
by calling the following routines:
 
for real matrices:
for complex matrices:
full storage
?sytrd
,
?orgtr
?hetrd
,
?ungtr
packed storage
?sptrd
,
?opgtr
?hptrd
,
?upgtr
band storage
?sbtrd
(vect
=
'V'
)
?hbtrd
(vect
=
'V'
)
The routine first factorizes
T
as
L*D*L