求解线性系统的最佳方法(就结果的准确性而言)是什么?是使用迭代方法(例如共轭梯度...)还是分解方法(例如SVD或LU)?
如果可以推荐使用C ++的任何求解器。
谢谢。
答案 0 :(得分:1)
在数值方法中,通常没有最好的方法来做任何事情。如果有解决线性系统的最佳算法,那么每个人都会使用它。直接方法和迭代方法在某种程度上彼此正交:直接方法在系统规模较小且您需要精确的解决方案时很有用,迭代方法可用于大得多的系统并且可以容忍某些错误。线性求解器的选择还取决于系统矩阵的类型(密集或稀疏)及其属性(对称性,正定性等)。
在C ++中有很多线性求解器。例如,看Intel MKL library。现在免费。