Computes for an N-by-N real nonsymmetric matrix A, the
eigenvalues and, optionally, the left and/or right eigenvectors.
Namespace: Extreme.Mathematics.ImplementationAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
public abstract void EigenvalueDecompose(
char jobvl,
char jobvr,
int n,
Array2D<TReal> a,
Array1D<TReal> wr,
Array1D<TReal> wi,
Array2D<TReal> vl,
Array2D<TReal> vr,
out int info
)
Public MustOverride Sub EigenvalueDecompose (
jobvl As Char,
jobvr As Char,
n As Integer,
a As Array2D(Of TReal),
wr As Array1D(Of TReal),
wi As Array1D(Of TReal),
vl As Array2D(Of TReal),
vr As Array2D(Of TReal),
<OutAttribute> ByRef info As Integer
)
public:
virtual void EigenvalueDecompose(
wchar_t jobvl,
wchar_t jobvr,
int n,
Array2D<TReal> a,
Array1D<TReal> wr,
Array1D<TReal> wi,
Array2D<TReal> vl,
Array2D<TReal> vr,
[OutAttribute] int% info
) abstract
abstract EigenvalueDecompose :
jobvl : char *
jobvr : char *
n : int *
a : Array2D<'TReal> *
wr : Array1D<'TReal> *
wi : Array1D<'TReal> *
vl : Array2D<'TReal> *
vr : Array2D<'TReal> *
info : int byref -> unit
Parameters
- jobvl
- Type: SystemChar
= 'N': left eigenvectors of A are not computed;
= 'V': left eigenvectors of A are computed.
- jobvr
- Type: SystemChar
= 'N': right eigenvectors of A are not computed;
= 'V': right eigenvectors of A are computed.
- n
- Type: SystemInt32
The order of the matrix A. N >= 0.
- a
- Type: Extreme.CollectionsArray2DTReal
A is TReal array, dimension (LDA,N)
On entry, the N-by-N matrix A.
On exit, A has been overwritten.
The leading dimension of the array A. LDA >= max(1,N).
- wr
- Type: Extreme.CollectionsArray1DTReal
WR is TReal array, dimension (N)
- wi
- Type: Extreme.CollectionsArray1DTReal
WI is TReal array, dimension (N)
WR and WI contain the real and imaginary parts,
respectively, of the computed eigenvalues. Complex
conjugate pairs of eigenvalues appear consecutively
with the eigenvalue having the positive imaginary part
first.
- vl
- Type: Extreme.CollectionsArray2DTReal
VL is TReal array, dimension (LDVL,N)
If JOBVL = 'V', the left eigenvectors u(j) are stored one
after another in the columns of VL, in the same order
as their eigenvalues.
If JOBVL = 'N', VL is not referenced.
If the j-th eigenvalue is real, then u(j) = VL(:,j),
the j-th column of VL.
If the j-th and (j+1)-st eigenvalues form a complex
conjugate pair, then u(j) = VL(:,j) + i*VL(:,j+1) and
u(j+1) = VL(:,j) - i*VL(:,j+1).
The leading dimension of the array VL. LDVL >= 1; if
JOBVL = 'V', LDVL >= N.
- vr
- Type: Extreme.CollectionsArray2DTReal
VR is TReal array, dimension (LDVR,N)
If JOBVR = 'V', the right eigenvectors v(j) are stored one
after another in the columns of VR, in the same order
as their eigenvalues.
If JOBVR = 'N', VR is not referenced.
If the j-th eigenvalue is real, then v(j) = VR(:,j),
the j-th column of VR.
If the j-th and (j+1)-st eigenvalues form a complex
conjugate pair, then v(j) = VR(:,j) + i*VR(:,j+1) and
v(j+1) = VR(:,j) - i*VR(:,j+1).
The leading dimension of the array VR. LDVR >= 1; if
JOBVR = 'V', LDVR >= N.
- info
- Type: SystemInt32
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value.
> 0: if INFO = i, the QR algorithm failed to compute all the
eigenvalues, and no eigenvectors have been computed;
elements i+1:N of WR and WI contain eigenvalues which
have converged.
The right eigenvector v(j) of A satisfies
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue.
The left eigenvector u(j) of A satisfies
u(j)**T * A = lambda(j) * u(j)**T
where u(j)**T denotes the transpose of u(j).
The computed eigenvectors are normalized to have Euclidean norm
equal to 1 and largest component real.
This method corresponds to the LAPACK routine ?GEEV.
Numerical Libraries
Supported in: 5.x
Reference