Chapter 12 - Eigenvalues and Eigenvectors

Section 12.7 - A Mathematica EigenFunction

The function Eigen

Eigen[m_,j_]:=({vals,vecs}=N[Eigensystem[m]];
diagm=DiagonalMatrix[vals];
Qm=Transpose[vecs];
detQm=Chop[Det[Qm]];
If[Transpose[m]==m && Conjugate[m]==m,(diagm=Re[diagm])&&(Qm=Re[Qm]),Null];
If[ConjugateTranspose[m]==emphm,diagm=Re[diagm],Null];
If[detQm==0,Return["non-diagonalizable"],
If[detQm ≠ 0&&j==1,Return["diagonalizable"],
If[detQm ≠ 0&&j==2,diagm,
If[detQm ≠ 0&&j==3,Qm,Null]]]])

(m={{-1,5},{5,3}})//MatrixForm

Eigen[m,1]

Eigen[m,2]//MatrixForm

Eigen[m,3]//MatrixForm

Eigen[m,3].Eigen[m,2].Inverse[Eigen[m,3]]//MatrixForm

Qm.diagm.Inverse[Qm]//MatrixForm

(m2={{5,2 I,-I},{-2 I,3,3+4 I},{I,3-4 I,1}})//MatrixForm

Eigen[m2,1]

Eigen[m2,2]//MatrixForm

Eigen[m2,3]//MatrixForm

Eigen[m2,3].Eigen[m2,2].Inverse[Eigen[m2,3]]//MatrixForm

Chop[%]//MatrixForm

(m3={{-5,1,7},{0,8,3},{0,0,-5}})//MatrixForm

Eigen[m3,1]

Eigen[m3,2]

Eigen[m3,3]