Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120339932
TutorialInplaceLU.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Jul 3, 15:42
Size
1 KB
Mime Type
text/x-c
Expires
Sat, Jul 5, 15:42 (1 d, 12 h)
Engine
blob
Format
Raw Data
Handle
27174700
Attached To
rDLMA Diffusion limited mixed aggregation
TutorialInplaceLU.cpp
View Options
#include <iostream>
struct init {
init() { std::cout << "[" << "init" << "]" << std::endl; }
};
init init_obj;
// [init]
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
MatrixXd A(2,2);
A << 2, -1, 1, 3;
cout << "Here is the input matrix A before decomposition:\n" << A << endl;
cout << "[init]" << endl;
cout << "[declaration]" << endl;
PartialPivLU<Ref<MatrixXd> > lu(A);
cout << "Here is the input matrix A after decomposition:\n" << A << endl;
cout << "[declaration]" << endl;
cout << "[matrixLU]" << endl;
cout << "Here is the matrix storing the L and U factors:\n" << lu.matrixLU() << endl;
cout << "[matrixLU]" << endl;
cout << "[solve]" << endl;
MatrixXd A0(2,2); A0 << 2, -1, 1, 3;
VectorXd b(2); b << 1, 2;
VectorXd x = lu.solve(b);
cout << "Residual: " << (A0 * x - b).norm() << endl;
cout << "[solve]" << endl;
cout << "[modifyA]" << endl;
A << 3, 4, -2, 1;
x = lu.solve(b);
cout << "Residual: " << (A0 * x - b).norm() << endl;
cout << "[modifyA]" << endl;
cout << "[recompute]" << endl;
A0 = A; // save A
lu.compute(A);
x = lu.solve(b);
cout << "Residual: " << (A0 * x - b).norm() << endl;
cout << "[recompute]" << endl;
cout << "[recompute_bis0]" << endl;
MatrixXd A1(2,2);
A1 << 5,-2,3,4;
lu.compute(A1);
cout << "Here is the input matrix A1 after decomposition:\n" << A1 << endl;
cout << "[recompute_bis0]" << endl;
cout << "[recompute_bis1]" << endl;
x = lu.solve(b);
cout << "Residual: " << (A1 * x - b).norm() << endl;
cout << "[recompute_bis1]" << endl;
}
Event Timeline
Log In to Comment