高斯消元中按列消元比按行消元更为直观且计算更加方便,更加易于理解和编程。因为按行消元过程中对一行进行消元需要根据待消去元素所在列调用不同的对角元素,而按列消元中对一列进行消元只需要调用一次对角元素。因此,本实验将使用“逐行规格化,按列消元”的含规格化高斯消元法。
“逐行规格化,按列消元”的特点:先根据第i行对角元素对第i行元素进行规格化,在对i列对角元以下元素进行消元。
对称稀疏矩阵技术
对称稀疏矩阵技术是指选择算法和编制程序时,尽可能避免储存稀疏矩阵中的零元素和避免对零元素进行运算同时充分利用矩阵的对称性的技术。本实验主要运用对称稀疏矩阵的运算技术,不考虑对称稀疏矩阵的储存问题。
利用对称稀疏矩阵技术的进行含规格化高斯消元法
进行高斯消元过程中为了充分利用对称稀疏技术,需要在每一轮消元过程中需要找出将参加运算的的元素中的非零元素,每行元素在消元前后、规格化之前,其对角元以右非零元素的交叉元素与对角元以下非零的消元元素的数值相等、位置对称。而在规格化之后,对角元以右非零的交叉元素均除以对角元素,此时虽然与对角元以下的消元元素数值不等,但其位置仍然对称。可以利用这个特点增加一倍查找非零元素的速度。
按列消元的目的将矩阵化简成上三角元素,将对角元以下元素变成零。根据四角规则,在消去每i列元素时,如果该列中的第j个元素元素为零元素,则不必对j行进行消去运算;同时如果第i行中的第k个元素为零元素,则对第i行进行消去运算时该行的第k个元素不变,不需要进行运算。
function gauss_symmet