![]() |
1
2
对于稀疏系统,我们通常使用 迭代的 方法。一个原因是像鲁这样的直接求解者。。。因子分解填充初始矩阵(填充的意义是初始零分量被非零分量替换)。在大多数情况下 密集矩阵 无法再放入内存(-> 您的内存错误 ). 简而言之,迭代求解器不会改变稀疏模式,因为它们只涉及矩阵向量积(无填充)。 也就是说,您必须首先知道您的系统是否 对称正定 (又名SPD)在这种情况下,您可以使用 conjugate gradient method . 否则,必须使用非对称系统的方法,如 BiCGSTAB 或 GMRES . 你必须知道,大多数时候我们使用 preconditioner ,尤其是当您的系统处于病态状态时。 查看我发现的特征doc(没有预条件afaik的示例):
这可能是一个好的开始(如果矩阵是SPD,则使用共轭梯度法)。注意,这里没有预条件,因此收敛速度肯定会很慢。 概述:大矩阵->迭代法+预条件器。 这真的是第一个“基本/天真”的解释,你可以在 Saad's book: Iterative Methods for Sparse Linear Systems . 同样,这个话题很大,你可以找到很多其他关于这个主题的书。 我不是特征用户,但是有 precondtioners here . -&燃气轮机;不完全LU(非对称系统)或不完全Cholesky(SPD系统)通常是良好的通用预条件,需要首先进行测试。 |
![]() |
avgn · 为什么我的特征代码不能扩展到更多线程 6 年前 |
![]() |
avgn · 特征稠密稀疏矩阵积是线程化的吗? 6 年前 |
![]() |
Askold Ilvento · 在Eigen中应用逆换位 7 年前 |
![]() |
jkjkjk · 带特征参数的模板推导 7 年前 |
![]() |
shanksk · 通过参考传递的特征参数 7 年前 |