I am working on a project in numerical analysis which I have to program in C (using Lapack and Blas). Matrix is given which is tridiagonal and "almost" symmetric (one element is to be changed to make it symmetric). In order to calculate certain eigenvalues and eigenvectors I am planning to use dsyevx() routine which works only for symmetric matrices. Is there any routine for orthogonal similarity transformation to make it symmetric, or should I opt for different routine for calculating eigenvalues of general $N\times N$ matrix?

  • 1
    $\begingroup$ What happen if you just make it symmetric? $\endgroup$
    – nicoguaro
    Feb 10 '18 at 23:51
  • $\begingroup$ I am not sure if my spectrum will stay the same. On the other hand by doing similarity transformation spectrum surely won't change. $\endgroup$
    – Tino
    Feb 11 '18 at 11:08
  • $\begingroup$ It won't preserve your spectrum. That's why I asked, you can just try it! $\endgroup$
    – nicoguaro
    Feb 11 '18 at 12:07
  • 1
    $\begingroup$ Why do you think your matrix is similar to a symmetric one? The fact that most non-symmetric matrices are not is what makes the non-symmetric eigenvalue problem hard(er). $\endgroup$
    – Ian Bush
    Feb 11 '18 at 12:10
  • 4
    $\begingroup$ Maybe you should consider an alternate way of applying the boundary conditions so that the matrix is tridiagonal and symmetric. Take a look at this post, scicomp.stackexchange.com/questions/26183/…, for a discussion and, in particular, the link to a book by Leveque. $\endgroup$ Feb 11 '18 at 13:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.