# How to obtain the orthogonal matrix that diagonalize a symmetric matrix [closed]

I have a real symmetric matrix H which is in symbolic form, I need a matrix P that can diagonalize H; also P is orthogonal and its columns are the eigenvectors of H.

How can I doing this in mathematica? Below is my sample matrix.

 H = {{λ - u, -t, -Δ, 0},
{-t, -λ - u, 0, -Δ},
{-Δ, 0, -λ + u,  t},
{0, -Δ, t, λ + u}} // MatrixForm

• Try searching the documentation. Mar 7, 2014 at 12:39
• This question is not trival I think. The Eigenvetors only give the eigenvetors of my matrix. However, they do not form a orthogonal matrix P. @SimonWoods Mar 7, 2014 at 13:18
• @b.gatessucks How to do this neatly also ensure P is an orthogonal matrix? As the answer below, you can easily check that column 3 and column 4 are not orthogonal(their inner product is not zero). Though you can normalize each row to make any two rows are orthogonal, but how can you ensure any columns are orthogonal at the same time? Mar 7, 2014 at 13:41
• @SimonWoods After doing P = Transpose[Eigenvectors[H]] as you suggested, a normalization procedure of each column in P should also be done. After that, P will be an orthogonal matrix with its columns are the eigenvectors of H. Am I right? Mar 7, 2014 at 14:29

H = {{λ - u, -t, -Δ, 0},
{-t, -λ - u, 0, -Δ},
{-Δ, 0, -λ + u,  t},
{0, -Δ, t, λ + u}};
P=Transpose[Eigenvectors[H]] // Simplify;


Now you have to orthogonalize the matrix:

POrt = P.Inverse[Sqrt[Simplify[Transpose[P].P]]];

• Please look my question details. @bcp >Require "P is orthogonal" Mar 7, 2014 at 13:12