diff options
author | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2009-08-22 20:12:47 +0100 |
---|---|---|
committer | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2009-08-22 20:12:47 +0100 |
commit | 90735b6a9cc4c91eb41ef1d2b6828f15a7f4fba3 (patch) | |
tree | f466895074e2e67fa734fe975da6fe6a984b37db /doc/snippets | |
parent | 37dede6077250156be084e55e629c68535456d2a (diff) |
Rewrite tutorial section on solving linear systems
Diffstat (limited to 'doc/snippets')
-rw-r--r-- | doc/snippets/Tutorial_solve_matrix_inverse.cpp | 6 | ||||
-rw-r--r-- | doc/snippets/Tutorial_solve_multiple_rhs.cpp | 10 | ||||
-rw-r--r-- | doc/snippets/Tutorial_solve_reuse_decomposition.cpp | 13 | ||||
-rw-r--r-- | doc/snippets/Tutorial_solve_singular.cpp | 9 | ||||
-rw-r--r-- | doc/snippets/Tutorial_solve_triangular.cpp | 8 | ||||
-rw-r--r-- | doc/snippets/Tutorial_solve_triangular_inplace.cpp | 6 |
6 files changed, 52 insertions, 0 deletions
diff --git a/doc/snippets/Tutorial_solve_matrix_inverse.cpp b/doc/snippets/Tutorial_solve_matrix_inverse.cpp new file mode 100644 index 000000000..fff324446 --- /dev/null +++ b/doc/snippets/Tutorial_solve_matrix_inverse.cpp @@ -0,0 +1,6 @@ +Matrix3f A; +Vector3f b; +A << 1,2,3, 4,5,6, 7,8,10; +b << 3, 3, 4; +Vector3f x = A.inverse() * b; +cout << "The solution is:" << endl << x << endl; diff --git a/doc/snippets/Tutorial_solve_multiple_rhs.cpp b/doc/snippets/Tutorial_solve_multiple_rhs.cpp new file mode 100644 index 000000000..fbb15165a --- /dev/null +++ b/doc/snippets/Tutorial_solve_multiple_rhs.cpp @@ -0,0 +1,10 @@ +Matrix3f A(3,3); +A << 1,2,3, 4,5,6, 7,8,10; +Matrix<float,3,2> B; +B << 3,1, 3,1, 4,1; +Matrix<float,3,2> X; +A.partialLu().solve(B, &X); +cout << "The solution with right-hand side (3,3,4) is:" << endl; +cout << X.col(0) << endl; +cout << "The solution with right-hand side (1,1,1) is:" << endl; +cout << X.col(1) << endl; diff --git a/doc/snippets/Tutorial_solve_reuse_decomposition.cpp b/doc/snippets/Tutorial_solve_reuse_decomposition.cpp new file mode 100644 index 000000000..b4112adc4 --- /dev/null +++ b/doc/snippets/Tutorial_solve_reuse_decomposition.cpp @@ -0,0 +1,13 @@ +Matrix3f A(3,3); +A << 1,2,3, 4,5,6, 7,8,10; +PartialLU<Matrix3f> luOfA(A); // compute LU decomposition of A +Vector3f b; +b << 3,3,4; +Vector3f x; +luOfA.solve(b, &x); +cout << "The solution with right-hand side (3,3,4) is:" << endl; +cout << x << endl; +b << 1,1,1; +luOfA.solve(b, &x); +cout << "The solution with right-hand side (1,1,1) is:" << endl; +cout << x << endl; diff --git a/doc/snippets/Tutorial_solve_singular.cpp b/doc/snippets/Tutorial_solve_singular.cpp new file mode 100644 index 000000000..da94ad445 --- /dev/null +++ b/doc/snippets/Tutorial_solve_singular.cpp @@ -0,0 +1,9 @@ +Matrix3f A; +Vector3f b; +A << 1,2,3, 4,5,6, 7,8,9; +b << 3, 3, 4; +cout << "Here is the matrix A:" << endl << A << endl; +cout << "Here is the vector b:" << endl << b << endl; +Vector3f x; +A.partialLu().solve(b, &x); +cout << "The solution is:" << endl << x << endl; diff --git a/doc/snippets/Tutorial_solve_triangular.cpp b/doc/snippets/Tutorial_solve_triangular.cpp new file mode 100644 index 000000000..ff876f687 --- /dev/null +++ b/doc/snippets/Tutorial_solve_triangular.cpp @@ -0,0 +1,8 @@ +Matrix3f A; +Vector3f b; +A << 1,2,3, 0,5,6, 0,0,10; +b << 3, 3, 4; +cout << "Here is the matrix A:" << endl << A << endl; +cout << "Here is the vector b:" << endl << b << endl; +Vector3f x = A.triangularView<UpperTriangular>().solve(b); +cout << "The solution is:" << endl << x << endl; diff --git a/doc/snippets/Tutorial_solve_triangular_inplace.cpp b/doc/snippets/Tutorial_solve_triangular_inplace.cpp new file mode 100644 index 000000000..64ae4eea1 --- /dev/null +++ b/doc/snippets/Tutorial_solve_triangular_inplace.cpp @@ -0,0 +1,6 @@ +Matrix3f A; +Vector3f b; +A << 1,2,3, 0,5,6, 0,0,10; +b << 3, 3, 4; +A.triangularView<UpperTriangular>().solveInPlace(b); +cout << "The solution is:" << endl << b << endl; |