# Eigenvalue problem (LAPACK)

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?

• What happen if you just make it symmetric? – nicoguaro Feb 10 '18 at 23:51
• I am not sure if my spectrum will stay the same. On the other hand by doing similarity transformation spectrum surely won't change. – Tino Feb 11 '18 at 11:08
• It won't preserve your spectrum. That's why I asked, you can just try it! – nicoguaro Feb 11 '18 at 12:07
• 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). – Ian Bush Feb 11 '18 at 12:10
• 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. – Bill Greene Feb 11 '18 at 13:26