Stone method

From Infogalactic: the planetary knowledge core
(Redirected from Stone's method)
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. Lua error in package.lua at line 80: module 'strict' not found.

In numerical analysis, Stone's method, also known as the strongly implicit procedure or SIP, is an algorithm for solving a sparse linear system of equations. The method uses an incomplete LU decomposition, which approximates the exact LU decomposition, to get an iterative solution of the problem. The method is named after Herbert L. Stone, who proposed it in 1968.

The LU decomposition is an excellent general purpose linear equation solver. The biggest disadvantage is that it fails to take advantage of coefficient matrix to be a sparse matrix. The LU decomposition of a sparse matrix is usually not sparse, thus, for large system of equations, LU decomposition may require a prohibitive amount of memory and number of arithmetical operations.

In the preconditioned iterative methods, if the preconditioner matrix M is a good approximation of coefficient matrix A then the convergence is faster. This brings us to idea of using approximate factorization LU of A as the iteration matrix M.

A version of incomplete lower-upper decomposition method was proposed by H. L. Stone in 1968. This method is designed for equation system arising from discretisation of partial differential equations and was firstly used for a pentadiagonal system of equation obtained while solving an elliptic partial differential equation in a two dimensional space by a finite difference method. The LU approximate decomposition was looked in the same pentadiagonal form as the original matrix (three diagonal for L and three diagonals for U) as the best match of the seven possible equations for the five unknowns for the each row of the matrix.

Algorithm

        For the linear system Ax = b
        calculate Incomplete LU factorization of matrix A
           Ax = (M-N)x = (LU-N)x = b
           Mx(k+1) = Nx(k)+b , with ||M|| >> ||N||
           Mx(k+1) = LUx(k+1) = c(k)
           LUx(k) = L(Ux(k+1)) = Ly(k) = c(k)
        set a guess
           k = 0, x(k)
           r(k)=b - Ax(k)
        while ( ||r(k)||2 ≥ ε ) do
           evaluate new right hand side
              c(k) = Nx(k) + b
           solve Ly(k) = c(k) by forward substitution
              y(k) = L−1c(k)
           solve Ux(k+1) = y(k) by back substitution
              x(k+1) = U−1y(k)
        end while

References

  • Lua error in package.lua at line 80: module 'strict' not found. - the original article
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • This article incorporates text from the article Stone's_method on CFD-Wiki that is under the GFDL license.