[Math] Eigenvectors of singular matrices

eigenvalues-eigenvectorsMATLABmatrices

I have the following problem (need to state that I am not sure if this is the correct place to ask this question, hope it is):

  • for each velocity I have three set of eigenvalues: $\alpha_{12}$, $\alpha_{34}$, $\alpha_{56}$, where $\alpha_{2}$,=-$\alpha_{1}$ same is valid for 3,4 and 5,6. $\alpha_i$ can be complex depending on the velocity.

  • Then I substitute the corresponding velocity and eigenvalue into a matrix B, which then is singular. det(B)=$0$ (highest values is $-5.2\cdot 10^{-16}$ according to Matlab). B is a symmetric matrix

  • To obtain the eigenvector I use svd(B) in Matlab, which gives me three outputs: U, S, V

  • I check when the values of S are zero, and select the corresponding column of V as eigenvector.

So my questions are:

  1. Is this a correct approach to obtain the eigenvector of a singular matrix. If not what is a good way obtain these eigenvector.
  2. I have read that svd output singular vector of the matrix, not the eigenvector of the matrix. What is the difference between a singular vector of matrix and an eigenvector.
  3. If the approach is correct, than I would assume the eigenvector of $\alpha_1$ should be orthogonal to that of $\alpha_2$. Is this true, or am I bs'ing now?

Thanks in advance!

Best Answer

The singular vectors of a matrix $A$ are the eigenvectors of $A^* A$. In the case of a real symmetric matrix $B$, the eigenvectors of $B$ are eigenvectors of $B^* B = B^2$, but not vice versa (in the case where $\lambda$ and $-\lambda$ are both eigenvalues for some $\lambda \ne 0$).

To get the eigenvalues and eigenvectors of a matrix in Matlab, use eig.