数值分析-方程组解法

高斯消元

的有线性方程组An×n * X n*1= Bn*1

当A满秩是方程组有唯一解

高斯消元就是一个简单的解方程组的办法

 

高斯消元就是简单的通过初等行变换,将A变成一个上三角矩阵

这样就能从下到上一个一个的解出每个x的值,从而获得方程组的解

 

简单解释:

  获取上三角矩阵之后方程变为

  a11x1 + a12x2+ ... + a1nxn = b1

      a22x2 + ....+a2nxn = b2

              .

              .

            annxn = bn

 

  这样就可以从下往上解出x

 

时间复杂度

  初等行变换做n次,每次把第k列,k+1 - n行全部变为0

  每做一次时间复杂度为n2

  做n次的时间复杂度为n3

  

  回带反向求解时,时间复杂度n2

  

  总时间复杂度 O(n3)

 

优缺点

   优点:简单实在

  缺点:当顺序主子式=0时算法报错(除数为0)

     当除数很小时,会增大误差(计算机的储存丢失精度导致的误差)

 

列主元消去法

这个挺简单的

就是在做高斯消去的时候

每次将这一列的最大值放在对角线上即可

就是比高斯消去多了一个初等行变换而已

 

他的优点是,避免对角线上出现0导致不能解和对角线上出现非常小的数字,导致计算出来的误差非常大

 

 

矩阵三角分解法

LU分解:

  由高斯消元的方法可以看到,高斯消元主要就是对A矩阵进行初等行变换使其变成上三角矩阵

  那么进行初等行变换的过程可理解为矩阵乘法

  设Ln为第n次初等行变换所乘的矩阵

  则高斯消元可表示为Ln*Ln-1*.....*L1*A = U

  Ln*Ln-1*.....*L= L

  A = L-1 * U

  即为LU分解   L为上三角矩阵, U为下三角矩阵

 

  每个矩阵的LU分解唯一

    证明

    A = LU = L1U1

    因为秩不为0所有两个矩阵均可逆    

    L-1L1 = UU-1

    因为左边均为下三角矩阵, 右边均为上三角矩阵

    所以左右两边均为单位阵

    所以L = LU = U1

    

  

直接三角分解法  

  对与A = LU

  求解Ly = b求出y

  Ux = y 求出x  

  得解

 

    

posted @ 2018-11-27 20:12  shensobaolibin  阅读(503)  评论(0编辑  收藏  举报