Eigenvectors are not orthogonal for some skew-symmetric matrices, why?
22 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rahul Singh
am 1 Mai 2015
Beantwortet: Christine Tobler
am 20 Sep. 2018
0 -0.5000 0 0 0 0.5000
0.5000 0 -0.5000 0 0 0
0 0.5000 0 -0.5000 0 0
A = 0 0 0.5000 0 -0.5000 0
0 0 0 0.5000 0 -0.5000
-0.5000 0 0 0 0.5000 0
The above matrix is skew-symmetric. When I use [U E] = eig(A), to find the eigenvectors of the matrix. These eigenvectors must be orthogonal, i.e., U*U' matix must be Identity matrix. However, I am getting U*U' as
0.9855 -0.0000 0.0410 -0.0000 -0.0265 0.0000
-0.0000 0.9590 0.0000 0.0265 -0.0000 0.0145
0.0410 0.0000 0.9735 -0.0000 -0.0145 0.0000
-0.0000 0.0265 -0.0000 1.0145 0.0000 -0.0410
-0.0265 -0.0000 -0.0145 0.0000 1.0410 -0.0000
0.0000 0.0145 0.0000 -0.0410 -0.0000 1.0265
Here we can observe a substantial error. This happens for some other skew-symmetric matrices also. Why this large error is being observed and how do I get correct eigen-decomposition for all skew-symmetric matrices?
0 Kommentare
Akzeptierte Antwort
Roger Stafford
am 1 Mai 2015
Bearbeitet: Walter Roberson
am 20 Sep. 2018
Your matrix A is "defective" , meaning that its eigenvalues are not all distinct. In fact, it has only three distinct eigenvalues. Consequently the space of eigenvectors does not fully span six-dimensional vector space. See the Wikipedia article:
What you are seeing is not an error on Matlab's part. It is a mathematical property of such matrices. You cannot achieve what you call "correct eigen-decomposition" for such matrices.
8 Kommentare
Lorenzo
am 20 Sep. 2018
Bearbeitet: Lorenzo
am 20 Sep. 2018
That matrix is not defective (1i times the matrix is hermitian and so it has a complete set of eigenvectors), it has however degenerate eigenvalues and this is the reason why U fails to be unitary. You should use schur in this case, which always return a unitary matrix
Weitere Antworten (2)
Rahul Singh
am 2 Mai 2015
4 Kommentare
Roger Stafford
am 3 Mai 2015
Yes, all the eigenvectors come out orthogonal after that adjustment I described. The fact that U'*U gives the identity matrix implies that. You should be able to check that for yourself.
Christine Tobler
am 20 Sep. 2018
Since, as Lorenzo points out in a comment above, 1i*A is hermitian, you could apply eig to that matrix:
>> [U, D] = eig(1i*A);
>> D = D/1i;
>> norm(U'*U - eye(6))
ans =
1.4373e-15
>> norm(A*U - U*D)
ans =
7.8098e-16
0 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!