问题:求解Ax=b的解,其中,A为大型稀疏矩阵,长和宽分别为1500^2。
一般思路:
(1)A为对称正定矩阵,对A使用cholesky分解。
(2)A为对称不定矩阵,使用LDL‘分解,即:
PAP'=LDL'
其中,L为单位下三角矩阵,D由阶数为1或者2的对角块构成,P是置换矩阵。
(3)不对称矩阵:LU分解。
(4)长方形矩阵(长>宽):QR分解或者两边同乘以A’,构建对称矩阵,即:
A'Ax=A'b
这里使用LU分解:
流程:
(1)安装MKL。
(2)新建VS工程,设置mkl并行,添加Eigen引用。
(3)头文件定义宏:#define EIGEN_USE_MKL_ALL 表示使用MKL加速。