Mathematical Problems in Engineering

Mathematical Problems in Engineering / 2015 / Article

Research Article | Open Access

Volume 2015 |Article ID 232456 | 9 pages | https://doi.org/10.1155/2015/232456

On Solving Pentadiagonal Linear Systems via Transformations

Academic Editor: George S. Dulikravich
Received04 Jan 2015
Revised18 Mar 2015
Accepted18 Mar 2015
Published31 Mar 2015

Abstract

Many authors have studied numerical algorithms for solving the linear systems of pentadiagonal type. The well-known fast pentadiagonal system solver algorithm is an example of such algorithms. The current paper describes new numerical and symbolic algorithms for solving pentadiagonal linear systems via transformations. The proposed algorithms generalize the algorithms presented in El-Mikkawy and Atlan, 2014. Our symbolic algorithms remove the cases where the numerical algorithms fail. The computational cost of our algorithms is better than those algorithms in literature. Some examples are given in order to illustrate the effectiveness of the proposed algorithms. All experiments are carried out on a computer with the aid of programs written in MATLAB.

1. Introduction

The pentadiagonal linear systems, denoted by (PLS), take the following forms: where is pentadiagonal matrix given bywhere and are vectors of length .

This kind of linear systems is well known in the literature [111] and often these types of linear systems are widely used in areas of science and engineering, for example, in numerical solution of ordinary and partial differential equations (ODE and PDE), interpolation problems, boundary value problems (BVP), parallel computing, physics, and matrix algebra [414]. The authors in [7] have developed an efficient algorithm to find the inverse of a general pentadiagonal matrix. In [8], the author presented an efficient computational algorithm for solving periodic pentadiagonal linear systems. The algorithm depends on the LU factorization of the periodic pentadiagonal matrix. New algorithms are used for solving periodic pentadiagonal linear systems based on the use of any pentadiagonal linear solver. The author described a symbolic algorithm for solving pentadiagonal linear systems [9]. In [10], the authors discussed the general nonsymmetric problem and proposed an algorithm for solving nonsymmetric pentadiagonal Toeplitz linear systems. A fast algorithm for solving a large system with a symmetric Toeplitz pentadiagonal coefficient matrix has been presented [11]. This efficient method depends on the idea of a system perturbation followed by corrections and is competitive with standard methods. In [12], the authors described an efficient computational algorithm and symbolic algorithm for solving nearly pentadiagonal linear systems based on the LU factorization of the nearly pentadiagonal matrix.

In this paper, we introduce more efficient algorithms based on transformations which can be described as a natural generalization of the efficient algorithms in [15].

The current paper is organized as follows. In Section 2, new numerical algorithms for solving a pentadiagonal linear system are presented. New symbolic algorithms for solving a pentadiagonal linear system are constructed in Section 3. In Section 4, three illustrative examples are presented. Conclusions of the work are given in Section 5.

2. Numerical Algorithms for Solving PLS

In this section, we will focus on the construction of new numerical algorithms for computing the solution of pentadiagonal linear system. For this purpose it is convenient to give five vectors , , , , and , whereBy using those vectors together with the suitable elementary row operations, one can see that system (1) may be transformed to the equivalent linear system as follows:The transformed system (8) is easy to solve by a backward substitution. Consequently, the PLS (1) can be solved using Algorithm 1.

    To find the solution of PLS (1) using the transformed system (8), we proceed as follows:
INPUT Order of the matrix and the components , , .
OUTPUT The solution vector .
Step  1. Use DETGPENTA algorithm [14] or DETGPENTA algorithm [16] to check the non-singularity of the coefficient matrix
   of the system (1).
Step  2. If , then Exit and Print Message (“No solutions”) end if.
Step  3. Set , , , and .
Step  4. Set , , , , and .
Step  5. For do
    Compute and simplify:
    ,
    ,
    ,
    ,
    ,
   End do.
   ,
   ,
   ,
   ,
   ,
   ,
   ,
Step  6. Compute the solution vector using , .
   For do
   Compute and simplify:
   
   End do.

The numerical Algorithm 1 will be referred to as PTRANS-I algorithm in the sequel. The computational cost of PTRANS-I algorithm is operations. The conditions , , are sufficient for its validity.

In a similar manner, we may consider five vectors , , , , and , whereNow we will present another algorithm for solving PLS. As in PTRANS-I algorithm, by using the vectors , , , , and , together with the suitable elementary row operations, we see that system (1) may be transformed to the equivalent linear system as follows:The transformed system (14) is easy to solve by a forward substitution. Consequently, the PLS (1) can be solved using Algorithm 2.

     To find the solution of PLS (1) using the transformed system (14), we proceed as follows:
INPUT Order of the matrix and the components , , .
OUTPUT The solution vector .
Step  1. Use DETGPENTA algorithm [14] or DETGPENTA algorithm [16] to check the non-singularity of the coefficient matrix
   of the system (1).
Step  2. If , then Exit and Print Message (“No solutions”) end if.
Step  3. Set , , , and .
Step  4. Set , , , , and .
Step  5. For do
    Compute and simplify:
    ,
    ,
    ,
    ,
    ,
   End do.
   ,
   ,
   ,
   ,
   ,
   ,
   ,
Step  6. Compute the solution vector using ,  .
   For do
    Compute and simplify:
    
   End do.

The numerical Algorithm 2 will be referred to as PTRANS-II algorithm in the sequel. The computational cost of PTRANS-II algorithm is operations. Also, the conditions , , are sufficient for its validity.

If or for any then PTRANS-I and PTRANS-II algorithms fail to solve pentadiagonal linear systems, respectively. So, in the next section, we develop two symbolic algorithms in order to remove the cases where the numerical algorithms fail. The parameter “” in the following symbolic algorithms is just a symbolic character. It is a dummy argument and its actual value is zero.

3. Symbolic Algorithms for Solving PLS

In this section, we will focus on the construction of new symbolic algorithms for computing the solution of pentadiagonal linear systems. Algorithm 3 is a symbolic version of PTRANS-I algorithm.

    To find the solution of PLS (1) using the transformed system (8), we proceed as follows:
INPUT Order of the matrix and the components , , .
OUTPUT The solution vector .
Step  1. Use DETGPENTA algorithm [14] or DETGPENTA algorithm [16] to check the non-singularity of the coefficient matrix
   of the system (1).
Step  2. If , then Exit and Print Message (“No solutions”) end if.
Step  3. Set . If then end if.
Step  4. Set , , and .
Step  5. Set . If then end if.
Step  6. Set , , and .
Step  7. For do
    Compute and simplify:
    ,
    ,
    If then end if.
    ,
    ,
    ,
   End do.
   ,
   . If then end if.
   ,
   ,
   . If then end if.
   ,
   ,
Step  8. Compute the solution vector using , .
   For do
    Compute and simplify:
    
   End do.
Step  9. Substitute in all expressions of the solution vector .

The symbolic Algorithm 3 will be referred to as SPTRANS-I algorithm in the sequel.

Algorithm 4 gives the symbolic version of PTRANS-II algorithm.

     To find the solution of PLS (1) using the transformed system (14), we proceed as follows:
INPUT Order of the matrix and the components , , .
OUTPUT The solution vector .
Step  1. Use DETGPENTA algorithm [14] or DETGPENTA algorithm [16] to check the non-singularity of the coefficient matrix
   of the system (1).
Step  2. If , then Exit and Print Message (“No solutions”) end if.
Step  3. Set . If then end if.
Step  4. , , and .
Step  5. Set . If then end if.
Step  6. , , and .
Step  7. For do
    Compute and simplify:
    ,
    ,
    If then end if.