From 2d74f1ac9292dab56cf725ba9c09e22a77f5fb10 Mon Sep 17 00:00:00 2001 From: Jitse Niesen Date: Tue, 4 May 2010 17:11:32 +0100 Subject: Document SelfAdjointEigenSolver and add examples. --- ...intEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp (limited to 'doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp') diff --git a/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp b/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp new file mode 100644 index 000000000..3599b17a0 --- /dev/null +++ b/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp @@ -0,0 +1,17 @@ +MatrixXd X = MatrixXd::Random(5,5); +MatrixXd A = X + X.transpose(); +cout << "Here is a random symmetric 5x5 matrix, A:" << endl << A << endl << endl; + +SelfAdjointEigenSolver es(A); +cout << "The eigenvalues of A are:" << endl << es.eigenvalues() << endl; +cout << "The matrix of eigenvectors, V, is:" << endl << es.eigenvectors() << endl << endl; + +double lambda = es.eigenvalues()[0]; +cout << "Consider the first eigenvalue, lambda = " << lambda << endl; +VectorXd v = es.eigenvectors().col(0); +cout << "If v is the corresponding eigenvector, then lambda * v = " << endl << lambda * v << endl; +cout << "... and A * v = " << endl << A * v << endl << endl; + +MatrixXd D = es.eigenvalues().asDiagonal(); +MatrixXd V = es.eigenvectors(); +cout << "Finally, V * D * V^(-1) = " << endl << V * D * V.inverse() << endl; -- cgit v1.2.3