matlab线性方程求法分类

    matlab中线性方程组Ax=b求解方法众多,容易糊涂,这里对各种方法进行概述:

  1、求逆法

        x = A \ b    或    x=inv(A) * b

 

以下是矩阵分解法:

 

  2、LU分解

        [L, U] = lu(A)                        使得 A=LU     即    x=U\(L\b)

        [L, U, P] = lu(A)                   使得 PA = U   其中P为置换阵    即     x=U\(L\P*b)

  3、QR分解

        [Q, R]=qr(A)                        使得  A=QR         即    x=R\(Q\b)          

        [Q, R, E]=qr(A)                        使得  AE=QR     其中E为置换阵     即    x=E(R\(Q\b)  )    

  4、奇异值分解SVD

        [U, S, V] = svd(A)                 使得 A=U * S * V'  即   x= V*inv(S) * U' *b

  5、Hessenbeg分解            

       [P, H]=hess(A)                     使得 A=P*H*P'    即    x=P * inv(H) * P' * b

  6、Schur分解

      [U, T] = schur(A)                   使得 A=U * T* U'    即 x= U * inv(T) * U' * b

 

以下是迭代法;

 

   7、逐次逼近法

 

  8、理查森迭代法

            x = (I - A)x + b

       [ x, n] = richason(A, b, x0, eps, M)

  9、Jacobi迭代法

        D是由A的主对角元素组成的对角阵,则有:

       B= I - inv(D) * A                          r = inv(D) * b            x = B x + r

      [x, n]=jacobi(A, b, x0, eps, varargin)

  10、Gauss-Seidel迭代法

     A=(D-L)-U     D意义同上,L为下三角矩阵, U为上三角矩阵

    x= inv(D-L) * U * x  + inv(D-L) * b

    [x, n] = gauseidel(A, b, x0, eps, M)

  11、超松弛迭代法

        对以上选  A =(D - wL)-((1-w)D +wU)        则有   x = inv(D- wL) * [ (1-w)D +wU]x + w* inv(D-wL) * b

        [x, n] = SOR(A, b, x0, w, eps, M)

  12、逐次超松弛迭代法  SSOR

       [x, n] = SSOR(A, b, x0, w, eps, M)

  13、两边迭代法

      [x, n] = twostep(A, b, x0, eps, varargin)

  14、梯度法

     (1) 最速下降法

             [x, n]=fastdown(A, b, x0, eps)

     (2)共轭梯度法

            [x, n] = conjgrad(A, b, x0)

     (3)预处理的共轭梯度法

         

    其它迭代法

     15、  x=symmlq(A,b)       线性方程组的LQ算法

     16、 x=bicg(A,b)              线性方程组的双共轭梯度解法

     17、 x=bicgstab(A,b)      线性方程组的稳定双共轭梯度算法

     18、 x=lsqr(A,b)              线性方程组的共轭梯度的LSQR解法

     19、 x=gmres(A,b)         线性方程组的广义最小残差解法

     20、 x=minres(A,b)       线性方程组的最小残差解法

     21、 x=qmr(A,b)            线性方程组的准最小残差解法

 

   

 

       

你可能感兴趣的:(matlab)