有关线性方程组求解的理解

线性方程粗求解无非是把增广矩阵变成上三角矩阵、对角矩阵或阶梯矩阵。其求解过程大致相同,略有不同,对角矩阵少了回代过程,时间复杂度略高 , 但都是O(n^3) .  

利用到矩阵的性质是: 将其中一行的任意K倍加到另一行上去后,矩阵与原矩阵等价(解方程时是不是也可以将一个方程的任意倍加到另一个方程上去。。)

用(i , j ) 表示当前正在处理第 i 个方程的第 j 个变量。

上三角矩阵和对角处理过程是(1,1) ->  (2 , 2)  - > ...... -> (n , n) , 而阶梯矩阵处理过程是:处理( i ,j )  ,然后若系数m[ i ][ j ]=0 , 则下一步处理( i , j+1) 否则处理(i+1 , j+1) ,循环该过程。。

上三角矩阵处理后的理想状态是:主对角线以下的系数全为零 , 分解到每一步的目标是(当前正处理(i ,i )):将第i列,行数大于i的系数全变成零,方法是将的j(j>i)行减去第i行的k( k = m[ j ][ i ] / m[ i ][ i ])倍。。处理过程有些很重要的细节需要注意,分母m[ i ][ i ]不能为零 , 可以先将第abs( m[ u ][ i ]) 最大的第 u 行换到 第 i行,若max( m[ u][ i ])  = 0 , 则Xi没有唯一解。

回代过程是将Xj( j > i , Xj已经求出来了) 全部移到方程的等号右边。。其实就是类似对角矩阵的状态。。

对角矩阵处理目标是将第i列,行数不等于 i 的系数全变成零,并省略回代过程。

对于特殊情况的处理:以对角矩阵为例说明

(1) 若 m[ i ] [ i ] = 0  , m[ i ][ n ] > 0  , 则 Xi = inf

(2)若 m[ i ][ i ] = m[ i ][ n ] = 0 , 则 Xi不能确定

(3)否则Xi = m[ i ][ n ] / m[ i ][ i ].

你可能感兴趣的:(随笔)