Obtain eigs from matrix and partially known eigenvector
2 visualizaciones (últimos 30 días)
Jiali el 5 de Jul. de 2023
The issue is that I have an input square matrix P, The values in some diagonal elements of P matrix are very big imaginary numbers which corresponds to the zero positions in eigenvectors. Thus, I remove the values in the diagonal of P matrix since no other elements are related to the pre-defined valule (0). Then I try to solve the eigenvalues and eigenvectors of P. However, the eigenvectors of original P and the deleted P are different (V2~=V). Why it happens? I got confused and please give me some suggestions.
Thank you for your help, Jeniffer.
Christine Tobler el 5 de Jul. de 2023
You are right that matrix P here is a block-diagonal matrix with three blocks:
[A 0 0;
0 B 0
0 0 C]
And for such a matrix, the eigenvalues of the whole matrix are the union of the eigenvalues of matrices A, B and C. The eigenvectors of the whole matrix can also be computed from the eigenvectors of the submatrices, like you do in the code above.
Two issues to keep in mind:
1) The eigs call returns the 20 eigenvalues with largest absolute value. It seems to me that this is likely to be the ones in matrix B, since they have a very large imaginary part. That would mean that D and D2 are not the same, and you have to call eigs with an option that will return the eigenvalues in A and C instead.
2) Another thing to keep in mind is that the eigenvectors aren't uniquely defined, each eigenvector can be multiplied with any complex number of absolute value 1. The easiest way to check a matrix of eigenvectors is to compute norm(A*V - V*D), to see if they satisfy their definition to sufficient accuracy.
Más respuestas (1)
Animesh el 5 de Jul. de 2023
The issue you're experiencing is likely due to the removal of diagonal elements from the matrix P. When you remove the values in the diagonal, you are essentially modifying the matrix P by deleting certain rows and columns. This modification can affect the eigenvectors and eigenvalues of the matrix.
Eigenvectors are determined by the relationships between the elements of the matrix. When you remove diagonal elements, you are altering these relationships and, consequently, the eigenvectors can change. Even though the deleted positions correspond to zero values, other elements in the matrix may still have an influence on the eigenvectors.
To address this issue, you can consider a different approach. Instead of removing the diagonal elements, you can set them to a small non-zero value, such as a small imaginary number or a small real number, rather than completely removing them. By doing so, you can preserve the structure of the matrix while minimizing the impact on the eigenvectors.