I need to compute the 3 eigenvalues and 3 eigenvectors of a symmetric 3x3 matrix, namely a stress tensor, computationaly (in C++). More specific details http://en.wikipedia.org/wiki/Principal_stress#Principal_stresses_and_stress_invariants". Basically 2 questions: 1. I am running into trouble in finding the 3 real roots. http://en.wikipedia.org/wiki/Cubic_equation#General formula of roots" we have the general formula for the roots. According to Wikipedia, again, "The characteristic equation has three real roots λ, i.e. not imaginary due to the symmetry of the stress tensor.", then I'm sure these huge formulas can be simplified, and it is indeed a hard work to try simplifying it. Have you ever seen a simplified formula for cubic equations where the discriminant is always greater than zero (then, three real roots). 2. After finding the eigenvalues how to find the eigenvectors? I read about general purpose methods like the Power Method but these are for nxn matrices. For a 3x3 matrix there must be a much simpler technique. Thanks in advance.