Given a $4\times 4$ symmetric matrix, is there an efficient way to find its eigenvalues and diagonalize it?

Solution 1:

I didn't notice the OP was asking for an easier way to unitary diagonalize a matrix. I'll leave this answer here, just because I find this algorithm interesting.


Regarding points 1) and 2), let me introduce an interesting algorithm to diagonalize a real symmetric matrix using only elementary row operations (taken from Schaum's Outline of Theory and Problems of Linear Algebra, by Lipschutz and Lipson).


Congruence Diagonalization of a Symmetric Matrix


And here is a worked example of the above mentioned algorithm:

enter image description here

Solution 2:

This is what I get in a session with Pari-GP:

? M=[8,11,4,3;11,12,4,7;4,4,7,12;3,7,12,17]
%1 =
[8 11 4 3]

[11 12 4 7]

[4 4 7 12]

[3 7 12 17]

? charpoly(M)
%2 = x^4 - 44*x^3 + 340*x^2 + 1096*x - 569
? qfsign(M)
%3 = [3, 1]
? qfjacobi(M)
%4 = [[-2.7711067095643205005042713725054278775,
       0.45792421148127108739250530588654614018, 
       13.784936206564400480761522475780657126, 
       32.528246291518648932350243590838224611]~, 
      [0.56546566894067682530206059221727842481, 
       0.48618155778071956234867882744958918213, 
       0.54955525973510618817381976083023906288, 
       0.37664981962144319750903998279270607039; 
      -0.46810465013958985829800140380345548297, 
      -0.47042263023491137214267988086021197332, 
       0.55128143386128172202765139532340765196, 
       0.50563758380920349835989610695765410760; 
      -0.54210521905381975449864154038806958910, 
       0.64436536825618266659441254842846620785, 
      -0.31320991082067338855031289595942215904, 
       0.43910676996647412411072995204550132449; 
       0.40896032233185550464871681388665378512, 
      -0.35654356540099667600450300414305218092, 
      -0.54403800321396212602733917384888354204, 
       0.64003967985456572726102891872973617133]]

The first four numbers after $\mathtt{qfjacobi(M)}$ are the eigenvalues, the rest is a matrix $P$ that diagonalizes $A$. I don't think it's possible to explicitly compute the roots of the characteristic polynomial, in this case.