I am trying to diagonalize the following matrix \begin{equation} \left(\begin{array}{cccc} { \frac{1-K\left(x_{2}^{2}+x_{3}^{2}\right)}{1-K|x|^{2}}} & { \frac{K x_{1} x_{2}}{1-K |x|^{2} }} & { \frac{K x_{1} x_{3}}{1-K|x|^{2}}} \\ { \frac{K x_{1} x_{2}}{1-K|x|^{2}}} & { \frac{1-K\left(x_{1}^{2}+x_{3}^{2}\right)}{1-K|x|^{2}}} & { \frac{K x_{2} x_{3}}{1-K|x|^{2}}} \\ {\frac{K x_{1} x_{3}}{1-K|x|^{2}}} & { \frac{K x_{2} x_{3}}{1-K|x|^{2}}} & { \frac{1-K\left(x_{1}^{2}+x_{2}^{2}\right)}{1-K|x|^{2}}} \end{array}\right) \end{equation} with a quick substitution of the variables from $x_{1},x_{2},x_{3} \rightarrow x,y,z$. My attempt is as follows,

B = Norm[{x, y, z}];
r = 1 - K*B^{2}
A = 
  {{(1 - K (y^{2} + z^{2}))/r, (K*x*y)/r, (K*x*z)/r}, 
   {(K*x*y)/r, (1 - K (x^{2} + z^{2}))/r, (K*y*z)/r}, 
   {(K*x*z)/r, (K*y*z)/r, (1 - K (x^{2} + y^{2}))/r}};
A //  MatrixForm
evecs = Eigenvectors[A];
Inverse[Transpose[evecs]].A.Transpose[evecs] // Chop // MatrixForm;

After attempting to find the eigenvectors of the above matrix I get an error saying

Eigenvectors:Argument$ "at position 1 is not a non-empty square matrix.

Did I make a mistake when writing the matrix? I apologize as I have near to no experience typing in Mathematica, hence, I am not even sure if Mathematica can perform such symbolic calculations as I was told that it could. Any help would be greatly appreciated.


1 Answer 1


Just remove all the extra {} stuff you have in exponents. i.e. do not write x^{2} but use x^2 etc.. for all the other places.

B = Norm[{x, y, z}]
r = 1 - K*B^2
A = {
   {(1 - K (y^2 + z^2))/r, (K*x*y)/r, (K*x*z)/r},
   {(K*x*y)/r, (1 - K (x^2 + z^2))/r, (K*y*z)/r},
   {(K*x*z)/r, (K*y*z)/r, (1 - K (x^2 + y^2))/r}
A // MatrixForm
evecs = Eigenvectors[A];
Inverse[Transpose[evecs]].A.Transpose[evecs] // Chop // MatrixForm

Btw, to get rid of all the Abs stuff which makes the norm hard to read, replace your first line with this


 B = Norm[{x, y, z}]

Mathematica graphics


 B = Assuming[Element[{x, y, z}, Reals], Simplify@Norm[{x, y, z}]]

Mathematica graphics

  • $\begingroup$ Thank you so much!! This works $\endgroup$ Commented Feb 6, 2020 at 2:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.