zoukankan      html  css  js  c++  java
  • 数值分析-方程组解法

    高斯消元

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

      得解

        

  • 相关阅读:
    美食小记
    美食小记
    移动端手势的七个事件库
    移动端手势的七个事件库
    利用PS把多张psd格式的图片转换为一张PDF格式
    利用PS把多张psd格式的图片转换为一张PDF格式
    常用的六个富文本编辑器
    常用的六个富文本编辑器
    如何获取公众号里面的歌曲
    快速幂算法
  • 原文地址:https://www.cnblogs.com/shensobaolibin/p/10028722.html
Copyright © 2011-2022 走看看