13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)MatrixXd A = MatrixXd::Random(6,6); 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cout << "Here is a random 6x6 matrix, A:" << endl << A << endl << endl; 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EigenSolver<MatrixXd> es(A); 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)cout << "The eigenvalues of A are:" << endl << es.eigenvalues() << endl; 6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)cout << "The matrix of eigenvectors, V, is:" << endl << es.eigenvectors() << endl << endl; 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)complex<double> lambda = es.eigenvalues()[0]; 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)cout << "Consider the first eigenvalue, lambda = " << lambda << endl; 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)VectorXcd v = es.eigenvectors().col(0); 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)cout << "If v is the corresponding eigenvector, then lambda * v = " << endl << lambda * v << endl; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)cout << "... and A * v = " << endl << A.cast<complex<double> >() * v << endl << endl; 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MatrixXcd D = es.eigenvalues().asDiagonal(); 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MatrixXcd V = es.eigenvectors(); 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)cout << "Finally, V * D * V^(-1) = " << endl << V * D * V.inverse() << endl; 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)