Hello. I already have a lot of time and can not really figure out how to count eigenvecs in the AlgLib library.
Here is an example with a solution in the matkad with which I try to reduce my results:
http://old.exponenta.ru/soft/mathcad/learn/la/mathcad/ex3/ex3.htm
There is a matrix:
Code:
{ 1, 2, 3 },
{ 0, 1, 2 },
{ 3, 4, 1 }
Next, I use the alglib.rmatrixevd
Code:
alglib.rmatrixevd(M, 3, 3, out wr, out wi, out vl, out vr);
Here are the results:
Code:
матрица wr
Eigenvals
-2,710+0,000i
0,271+0,000i
5,439+0,000i
This corresponds to the eigenvalues ??in the same example of the mitkad, even in an inverted form.
But here's the trouble.
The library function gives me the result as left and right vectors:
Code:
Eigenvec
Матрица vr
0.518 -1.000 -0.879
0.539 0.803 -0.451
-1.000 -0.293 -1.000
Матрица vl
0.809 -0.708 -0.561
0.642 1.000 -1.000
-1.000 0.172 -0.829
In the description they write:
Quote:
VL, VR - arrays of left and right eigenvectors (if they are needed).
If WI[i]=0, the respective eigenvalue is a real number,
and it corresponds to the column number I of matrices VL/VR.
If WI[i]>0, we have a pair of complex conjugate numbers with
positive and negative imaginary parts:
the first eigenvalue WR[i] + sqrt(-1)*WI[i];
the second eigenvalue WR[i+1] + sqrt(-1)*WI[i+1];
WI[i]>0
WI[i+1] = -WI[i] < 0
In that case, the eigenvector corresponding to the first
eigenvalue is located in i and i+1 columns of matrices
VL/VR (the column number i contains the real part, and the
column number i+1 contains the imaginary part), and the vector
corresponding to the second eigenvalue is a complex conjugate to
the first vector.
Arrays whose indexes range within [0..N-1, 0..N-1].
How much I did not get into it and did not even try the required result even close.
Should be:
Code:
0,625 0,76 -0,415
0,321 -0,611 -0,432
0,711 0,222 0,801
In general, please poke my nose that where and how do I count to come to the specified result?
Thank you.