1. 程式人生 > >Eigen 稀疏矩陣LU分解解方程組

Eigen 稀疏矩陣LU分解解方程組

下載Eigen、配置目錄

這裡用LU分解舉例

 #include <Eigen/Dense>
   #include <Eigen/Sparse>
   #include <Eigen/SparseLU>
   using namespace Eigen;
   //處理矩陣部分
   vector<Triplet<float>> triple;//用三元組賦值
   triple.push_back(Triplet<float>(i, j,A[i][j]));//ij處的值是A[i][j]
   SparseMatrix<float
> A(n, n);//定義n*n的係數矩陣 A.setFromTriplets(triple.begin(), triple.end());//三元數給矩陣賦值 SparseLU<SparseMatrix<float>> solver solver.compute(A);//對A進行預分解 if (solver.info()!=Success) { cout << "Compute Matrix is error" << endl; return; } //右端項 VectorXf b(n);//n行的方程組
//求解 x = solver.solve(b);