Rewrite tutorial section on solving linear systems

This commit is contained in:
Jitse Niesen
2009-08-22 20:12:47 +01:00
parent 37dede6077
commit 90735b6a9c
11 changed files with 267 additions and 71 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;