Answers:
在不考虑使用直接求解器还是迭代求解器的讨论时,我只想补充两点:
对于具有多个右侧的系统,存在Krylov方法(称为块Krylov方法)。另外,由于Krylov空间是由较大的向量集合构成的,因此与标准Krylov方法相比,它们的收敛速度通常更快。请参阅Dianne P.O'Leary,块共轭梯度算法和相关方法。线性代数及其应用29(1980),第239-322页。和Martin H. Gutknecht,具有多个右侧的线性系统的Block Krylov空间方法:简介(2007)。
如果具有相同稀疏模式的不同矩阵,则可以为第一个矩阵预先计算符号分解,可以在计算此矩阵和后续矩阵的数值分解时重复使用该符号分解。(在UMFPACK中,您可以使用umfpack di symbolic
并将结果传递给umfpack_di_numeric
。)
当您谈论“相同的非零元素(只是不同的值)”时,您对问题的陈述并不十分清楚。您是说矩阵具有恒定的稀疏性模式,但实际值却发生变化吗?或者,您是说矩阵实际上是常数吗?
对于多个右侧和这种大小的方程组,迭代方法通常不值得使用。
您提到的所有软件包都提供了直接的因式分解方法(尽管PetSc的迭代求解器最为人所知。)但是,您的系统是如此之小,以致不可能获得实质性的并行加速,特别是在分布式内存环境中。
我建议使用Umfpack来完成这项工作-PaStix和PetSc太过分了。