我正在尝试解决线性系统Ax=b
,其中A
是3x3
对称正定。
虽然它的规模很小,但我必须在不同的A
百万次重复它。因此效率仍然很重要。
线性系统有许多解算器(C ++,通过Eigen)。
我个人更喜欢:HouseholderQr().solve()
和llt().solve()
,ldlt().solve()
。
我知道当n
非常大时,基于Cholesky分解的求解器比Householder的求解器快。但是对于n
只有3的情况,我怎样才能比较它们的相对效率?是否有任何准确的float operation
分析公式?
感谢
答案 0 :(得分:0)
是的,Cholesky仍然会更快。它将是大约n ^ 3/3的触发器。使用QR的唯一原因是你的矩阵是非常恶劣的。
如果您需要解决这些系统一百万次并且效率很重要,我建议您直接调用LAPACK。你想要DPOSV
函数。