赞
踩
这里用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);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。