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)