我试图解一个线性系统Ax=b,其中A是3x3对称正定的。
虽然它的规模很低,但我将不得不在不同A的数百万次中重复它。所以效率仍然很重要。
线性系统有许多求解者(C++,通过本征)。我个人更喜欢:HouseholderQr().solve()和llt().solve(),ldlt().solve()。
我知道当n很大的时候,基于Cholesky分解的求解器比Householder的更快,但是对于我的情况,当n只有3时,如何比较它们的相对效率呢?是否有精确的float operation分析公式?
谢谢
发布于 2013-12-20 20:45:25
是的,Cholesky还会更快。大约是n^3/3次失败。使用QR的唯一原因是如果你的矩阵是非常病态的。
如果您需要解决这些系统一百万次和效率是重要的,我建议直接调用LAPACK。您需要DPOSV函数。
http://www.netlib.org/lapack/lug/node26.html#1272
http://www.netlib.org/clapack/what/double/dposv.c
https://stackoverflow.com/questions/20694704
复制相似问题