第一次写CSDN博客,以前年幼无知玩新浪博客,文章仅代表个人观点,如有错误,欢迎各位大佬指出。废话不多说,马上献上这次博客的内容!
最近刚学习了高斯消元,老师要求我们用Python实现高斯消元的解求精技术。所谓高斯消元的解求精技术主要包含以下三种:
- 使用更多有效位
- 交换主元
- 缩放
一、使用更多有效位
大家都知道,对于病态方程组,是不能使用高斯消元法对其进行求解的。
那么,最简单的解决办法就是在计算中使用更多的有效位。
在此,我就不深入解释了,大家有空可以尝试一下。
二、交换主元
在方程的规范化过程中,会出现除零的问题。
所谓除零问题,就是:在方程组相应的系数矩阵中,主对角线的值出现0或全为0时,用编程方式实现高斯消元法时,就要对各个方程的顺序进行调整,称为除0。
因为计算机是不会像人类一样,知道出现0,就会自动地将方程调换顺序,对计算机来说,实现高斯消元还要加上除零这个步骤。这个时候,就需要交换主元。
首先要确定主元下的列的最大系数。
1.将最大系数的行和原主元的行进行交换,成为新的主元行,这个方法称为部分交换主元
2.将行和列都进行最大值的选择搜索并交换,成为新主元的行和列,这个方法称为完全交换主元
一般来说,常使用部分交换主元