Gauss-Jordan消除与LU分解

时间:2016-01-22 16:10:07

标签: algorithm linear-algebra

在“黑皮书”,Numerical Recipes第3版中,给出了求解线性方程组的Gauss-Jordan算法。之后直接是关于计算LU分解然后使用它来解决线性方程组的部分(参见第53页的LUdcmp :: solve)。不幸的是,这本书没有解释为什么人们更喜欢一种方法而另一种方法。这两种方法是否相同,或者是否有理由在特定情况下更喜欢一种方法?

2 个答案:

答案 0 :(得分:7)

使用LU分解的优点是可以重复使用它来计算多个解决方案。

例如,如果你想解决方程式

Ax = b

对于常量A和许多不同的b s,您只需计算一次A的LU分解,并且可以为每个b重复使用它。但是,如果消除Gauss-Jordan,则必须为每个b

重新完成所有工作

这更快的原因是因为高斯 - 乔丹消除量级为O(n ^ 3),但LU分解方法的替换步骤仅缩放为O(n ^ 2)。因此,对于LU案例,您只需为每个b执行一次昂贵的O(n ^ 3)步骤。

可以在here

找到一套合理的注释

答案 1 :(得分:1)

实际上,高斯·乔丹比LU快得多。执行一些C代码,您将无法理解,因为与LU相比,在Gauss-Jordan中使用的代码更少,for循环更少。