我们学过高等代数(或者线性代数)知道,求解线性方程组可以用克莱姆法则,但是在实际交给机器计算时,因为克莱姆法则需要计算乘除(n-1)(n+1)!+n次,计算量太复杂。我们需要寻找更好的数值解法。
高斯消元法
它包括两部分:消元和回代。
它的乘除计算量约为
![equation?tex=%5Cfrac%7B2%7D%7B3%7Dn%5E%7B3%7D](https://i-blog.csdnimg.cn/blog_migrate/1ad3bf6b350233766445a39c7088a1ca.png)
列主元消去法
它只是在高斯消元法的基础上,进行了找每列绝对值最大的数作为除数的步骤。
因此运算量与高斯消去法相当。
直接三角分解法(LU法)
转化为求解两个简单三角形方程问题。
![equation?tex=A%3DLU%28L%E4%B8%BA%E5%8D%95%E4%BD%8D%E4%B8%8B%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5%EF%BC%8CU%E4%B8%BA%E4%B8%8A%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5%29](https://i-blog.csdnimg.cn/blog_migrate/beaae17e724c73ca26eda394c5003389.png)
则求解下面两个方程即可
![equation?tex=Ly%3Db%5C%5C+Ux%3Dy](https://i-blog.csdnimg.cn/blog_migrate/d05f7df605e3fa28e92979c95cf4b7cc.png)
上述A的分解也叫Doolittle分解。它的乘除计算量大约
![equation?tex=%5Cfrac%7Bn%5E%7B3%7D%7D%7B3%7D](https://i-blog.csdnimg.cn/blog_migrate/3dfb8c1b1e1c88d33088ab76e46444ab.png)
好处:若实现了A的D分解,且L、U保存在A的相应位置。则对于系数相同,只是b不同的方程组而言,只需计算
![equation?tex=n%5E%7B2%7D](https://i-blog.csdnimg.cn/blog_migrate/e746517442aa9ddb6fc7a8ac6996b73c.png)
平方根法
针对的是正定对称矩阵。
对于对称矩阵,若它的所有顺序主子式均不为0,则A可唯一分解为
![equation?tex=A%3DLDL%5E%7BT%7D](https://i-blog.csdnimg.cn/blog_migrate/0a3eec565d3918cf45df50bc49a787f4.png)
![equation?tex=L%E4%B8%BA%E5%8D%95%E4%BD%8D%E4%B8%8B%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5%EF%BC%8CD%E4%B8%BA%E5%AF%B9%E8%A7%92%E7%9F%A9%E9%98%B5](https://i-blog.csdnimg.cn/blog_migrate/10da1a306d185951944103ef77b4edea.png)
对于正定对称矩阵,说明上述D中的对角线上的元素都是正的。
若A是正定对称矩阵,则存在一个实的非奇异下三角矩阵L,使得
![equation?tex=A%3DLL%5E%7BT%7D](https://i-blog.csdnimg.cn/blog_migrate/82846ce1474a0e33967ae0219fc40bc6.png)
平方根法约需
![equation?tex=%5Cfrac%7Bn%5E%7B3%7D%7D%7B6%7D](https://i-blog.csdnimg.cn/blog_migrate/7af7bc88690cb5182d6770343cf77a30.png)
追赶法
![781abf1e39c35cf2945ff4e2ad31e5dc.png](https://i-blog.csdnimg.cn/blog_migrate/d3e04fbeb0c72a2d14fb091d8b58bb9f.jpeg)
追赶法解决的是系数矩阵满足上述条件的方程组
它将A分解为下面的形式
![6147a827eadce3bac30cead3c6401e9b.png](https://i-blog.csdnimg.cn/blog_migrate/3fdfd1f4522245505d2aa62013ad90e2.jpeg)
计算量为5n-4次乘除。后面均为高斯消元法的变形。