Eigenvectors are not orthogonal for some skew-symmetric matrices, why?

35 visualizzazioni (ultimi 30 giorni)
Rahul Singh il 1 Mag 2015
Risposto: Christine Tobler il 20 Set 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 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

Risposta accettata

Roger Stafford il 1 Mag 2015
Modificato: Walter Roberson il 20 Set 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 CommentiMostra 7 commenti meno recentiNascondi 7 commenti meno recenti
Lorenzo il 20 Set 2018
Modificato: Lorenzo il 20 Set 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

Accedi per commentare.

Più risposte (2)

Rahul Singh il 2 Mag 2015
Is there any other way (other than Matlab) of computing orthogonal eigenvectors for this particular skew-symmetric matrix ? I tried NumPy package also, which gave me same results as Matlab.
4 CommentiMostra 3 commenti meno recentiNascondi 3 commenti meno recenti
Roger Stafford il 3 Mag 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.

Accedi per commentare.

Christine Tobler il 20 Set 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 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

Categorie

Scopri di più su Linear Algebra in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by