• 数值分析-方程组解法


    高斯消元

    的有线性方程组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  

      得解

        

  • 相关阅读:
    0714买卖股票的最佳时机含手续费 Marathon
    0070爬楼梯 Marathon
    0045跳跃游戏II Marathon
    0343整数拆分 Marathon
    0406根据身高重建队列 Marathon
    0096不同的二叉搜索树 Marathon
    0763划分子母区间 Marathon
    0435无重叠区间 Marathon
    0452用最少数量的箭引爆气球 Marathon
    0509斐波那契数 Marathon
  • 原文地址:https://www.cnblogs.com/shensobaolibin/p/10028722.html
Copyright © 2020-2023  润新知