British Journal of Mathematics & Computer Science 4(9): 1246-1267, 2014
SCIENCEDOMAIN international www.sciencedomain.org
Algorithms for Solving Doubly Bordered Tridiagonal Linear Systems Moawwad El-Mikkawy∗1 and Faiz Atlan1 1 Mathematics Department, Faculty of Science, Mansoura University, Mansoura 35516, Egypt.
Original Research Article Received: 31 December 2013 Accepted: 02 February 2014 Published: 27 February 2014
Abstract In this paper we focus on solving doubly bordered tridiagonal linear systems of equations via transformation. It investigates numeric and symbolic algorithms for solving such systems. The computational cost of the algorithms are given. A MAPLE procedure based on these algorithms is listed. Some illustrative examples are introduced. Keywords: Doubly bordered; Tridiagonal matrices; Partitioned matrices; Algorithm; LU factorization; MAPLE. 2010 Mathematics Subject Classification:15A09, 15A23, 15B05, 65F05, 65Fxx, 68W30.
1
Introduction and Basic Definitions
We begin this section by giving the following definitions: Definition 1.1 [1]. An n × n matrix A = (aij )n i,j=1 is said to have upper bandwidth p if p is the smallest integer such that: aij = 0, j − i ≥ p, and similarly, to have lower bandwidth q if q is the smallest integer such that: aij = 0,
i − j ≥ q.
The bandwidth, w for the matrix A is defined to be w = p + q − 1. Definition 1.2 [2]. The symmetric matrix A = (aij )n i,j=1 is called positive definite if and only if x T A x > 0,
for all
x ∈ Rn ,
x 6= 0.
Definition 1.3 [2]. An n × n matrix A is called diagonally dominant if |aii | ≥
n X
|aij |,
holds for each i = 1, 2, ..., n,
j=1, j6=i
*Corresponding author: E-mail: m−
[email protected]
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
and strictly diagonally dominant if |aii | >
n X
|aij |,
holds for each i = 1, 2, ..., n.
j=1, j6=i
In many scientific and engineering applications, different special linear systems of equations arise. For such systems the coefficient matrix has special structure. Sparse matrices which contain a majority of zeros occur are often encountered. It is usually more efficient to solve these systems using tailor-made algorithms, much faster and with less storage than a full matrix. This can be achieved by taking advantage of the special structure of the coefficient matrix. Important examples are band matrices, and the most common cases are the matrices of tridiagonal type for which p = q = w − 1 = 2. Tridiagonal systems of linear equations take the form: T x = f,
(1.1)
where
d1
a1
0
T =
b1
d2 .. . .. . ...
0 .. . 0
a2 .. .
... .. . .. .
0 .. .
bn−2 0
dn−1 bn−1
an−1 dn
0
,
(1.2)
x = [x1 , x2 , ..., xn ]T and f = [f1 , f2 , ..., fn ]T . The superscript T corresponds to the transpose operation. This type of matrices frequently appears in many applications. For example in parallel computing, telecommunication system analysis, solving differential equations using finite differences, heat conduction and fluid flow problems. A general n × n tridiagonal matrix of the form (1.2) can be stored in 3n − 2 memory locations, rather than n2 memory locations for a full matrix, by using three vectors a = [a1 , a2 , . . . , an−1 ], b = [b1 , b2 , . . . , bn−1 ], and d = [d1 , d2 , . . . , dn ]. This is always a good habit in computation in order to save memory space. To study tridiagonal matrices it is convenient to introduce vector c defined by ([3], [4]): c = [c1 , c2 , ..., cn ],
(1.3)
where
( ci =
for i = 1
d1 , di −
ai−1 bi−1 ci−1 ,
for i = 2, 3, ..., n.
(1.4)
In [5] it is shown that the tridiagonal matrix (1.2) is positive definite if and only if ci > 0, for all i = 1, 2, ..., n. This is an easy way to check weather a tridiagonal matrix is positive definite or not. For some important results concerning tridiagonal matrix the reader may refer to ([6], [7], [8], [5], [9], [10], [4], [11], [12], [13], [14], [15], [16], [17], [18], [19]). The motivation of the current paper is to derive algorithms for solving doubly bordered tridiagonal linear systems of two types of the forms:
1247
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
d1 b1
a1 d2 b2 .. .
0 a2 d3 .. .
... .. .
...
a3 .. .
..
.
0 .. . .. .
..
.
0
p3 .. .
bn−3 0 ...
dn−2 bn−2 qn−2
an−2 dn−1 bn−1
pn−2 an−1 dn
0 .. . .. . 0 q1
... q2
d1 b1
a1 d2
pn−2 a2
... 0
b2
d3 .. . .. .
a3 .. .
..
. ... q3
p1
p2
x1 x2 x3 .. . xn−2 x n−1 xn
f1 f2 f3 .. .
= fn−2 fn−1 fn
,
(1.5)
and
qn−2 . . . q3 q2 q1
0 .. . .. . 0
...
bn−3 .. . ...
p3 ... .. . .. .
p2 ...
dn−2
an−2
0
bn−2 0
dn−1 bn−1
an−1 dn
..
.
p1 0 .. . .. .
x1 x2 x3 .. . xn−2 x n−1 xn
g1 g2 g3 .. .
= gn−2 gn−1 gn
(1.6)
respectively. The linear systems (1.5) and (1.6) frequently occur in engineering computation and analysis, e.g. in computation of electric power system and in solution of partial differential equations, as referred in ([20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30]). The linear systems defined by (1.5) and (1.6) are called doubly bordered tridiagonal linear systems of type (A) and of type (B), respectively. Throughout this paper, the word ’simplify’ means simplify the expression under consideration to its simplest rational form. The organization of the paper is as follows. The main results are given in Section 2 and Section 3. In Section 4, a MAPLE procedure is introduced. Some illustrative examples are given in Section 5.
2
Algorithms for Solving Doubly Bordered Tridiagonal Linear Systems of Type (A)
In this section, we are going to consider the construction of new algorithms for solving doubly bordered tridiagonal linear systems of type (A) via transformation. For this purpose it is convenient to introduce the vector c = [c1 , c2 , ..., cn ] whose first (n − 1) components, c1 , c2 , ..., cn−1 are given by (1.4). The system (1.5) can be completely described by the augmented matrix, G given by:
1248
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
d1
a1
0
G := Tn , f =
b1
d2
a2
0 .. . .. . 0 q1
b2 .. .
d3 .. . .. . ... q3
... q2
... .. .
...
p1
f1
p2
f2 f3 .. . fn−2 fn−1 fn
.
a3 .. .
..
.
0 .. . .. .
..
.
0
p3 .. .
bn−3 0 ...
dn−2 bn−2 qn−2
an−2 dn−1 bn−1
pn−2 an−1 dn
(2.1)
The matrix G contains all the information about the system (1.5) that is necessary to determine its solution, but in a compact form. Let Ri denotes the i-th row of the matrix G. Performing the following row operations on G, in the same order: R1 ←− R1 /c1 For i = 2, 3, ..., n − 1 do Ri ←− Ri − bi−1 Ri−1 Ri ←− Ri /ci End do. For j = 1, 2, ..., n − 1 do Rn ←− Rn − hj Rj End do. Rn ←− Rn /cn . Then we have the resulting transformed linear system of the form:
1
y1
0
0 .. . .. . .. . 0
1 .. .
y2 .. . .. .
...
... .. . .. . 1 .. . ...
0 .. .
v1
z1
0
v2 .. .
z2 .. .
yn−2
vn−2
zn−2
1 0
vn−1 1
zn−1 zn
,
(2.2)
1249
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
where p1 a1 , v1 = , c1 c1 For i = 2, 3, ..., n − 2 do
c 1 = d1 ,
y1 =
z1 =
f1 , c1
h 1 = q1 ,
ci = di − bi−1 yi−1 , yi = acii , vi = c1i (pi − bi−1 vi−1 ), zi = c1i (fi − bi−1 zi−1 ). hi = qi − hi−1 yi−1 , End do. cn−1 = dn−1 − bn−2 yn−2 , 1 vn−1 = (an−1 − bn−2 vn−2 ), cn−1 1 (fn−1 − bn−2 zn−2 ), zn−1 = cn−1
(2.3)
hn−1 = bn−1 − hn−2 yn−2 , cn = dn −
n−1 X
hi v i ,
i=1 n−1
zn =
X 1 (fn − hi zi ). cn i=1
It is well known that [1] the reduced system (2.2) has the same solution as the original linear system (1.5). At this stage, the determinant of the coefficient matrix in (1.5) can be computed using the following computational symbolic algorithm. It is an extension of the DETGTRI algorithm in [3] and the PERTRI algorithm in [10]. The parameter ’s’ in the algorithm is just a symbolic name. It is a dummy argument and its actual value is zero.
Algorithm 2.1. An algorithm for computing the determinant of doubly bordered tridiagonal matrices of type (A). To compute the determinant of the coefficient matrix in (1.5), we may proceed as follows: INPUT: Order of the coefficient matrix n and the components, ai , di , bi , pi , qi . OUTPUT: The determinant of the coefficient matrix in (1.5). Step 1: Set c1 = d1 . If c1 = 0 then c1 = s end if. Step 2: For i = 2, 3, ..., n − 1 do Compute and simplify: a bi−1 ci = di − i−1 ci−1 . If ci = 0 then ci = s end if. End do. Step 3: Compute cn using (2.3). Step 4: Compute and simplify: n Q P (s) = cr . r=1
Step 5: det(Tn ) = P (0). The Algorithm 2.1, will be referred to as DETDBTRI-A algorithm. The transformed system (2.2)
1250
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
is triangular and easy to solve by backward substitution. Consequently, the linear system (1.5) can be solved using the following algorithm:
Algorithm 2.2. Numeric algorithm for solving doubly bordered tridiagonal linear system of type (A). To solve the linear system of the form (1.5), we may proceed as follows: INPUT: Order of the coefficient matrix n and the components, ai , di , bi , fi , pi , qi . OUTPUT: The determinant of the coefficient matrix in (1.5) and the solution vector x = [x1 , x2 , . . . , xn ]T . Step 1: Set c1 = d1 , y1 = ac11 , v1 = pc11 , z1 = fc11 , and h1 = q1 . Step 2: For i = 2, 3, ..., n − 2 do Compute and simplify: ci = di − bi−1 yi−1 , yi = acii , vi = c1i (pi − bi−1 vi−1 ), zi = c1i (fi − bi−1 zi−1 ), hi = qi − hi−1 yi−1 , End do. Step 3: Set cn−1 = dn−1 − bn−2 yn−2 , 1 (a vn−1 = cn−1 n−1 − bn−2 vn−2 ), 1 zn−1 = cn−1 (fn−1 − bn−2 zn−2 ), hn−1 = bn−1 − hn−2 yn−2 . n−1 P Step 4: Set cn = dn − hi v i , i=1 n−1
Step 5: Step 6: Step 7:
Step 8:
P zn = c1n (fn − hi zi ). i=1 Use the DETDBTRI-A algorithm to check the non-singularity of the coefficient matrix of the system (1.5). If the determinant of the coefficient matrix in (1.5) equals zero, then Exiterror(’No solutions’) end if. Compute the solution vector x = [x1 , x2 , . . . , xn ]T using x n = zn xn−1 = zn−1 − vn−1 xn For i = n − 2, n − 3, ..., 1 do xi = zi − yi xi+1 − vi xn End do.
The Algorithm 2.2, will be referred to as TRANSDBTRI-AI algorithm. The cost of the algorithm is (11n − 16) multiplications/divisions and (8n − 13) addtions/subtractions. Note that the algorithm TRANSDBTRI-AI works properly only if ci 6= 0 for all i = 1, 2, ..., n. The following symbolic version algorithm is developed in order to remove the cases where the numeric algorithm TRANSDBTRI-AI fails.
Algorithm 2.3. Symbolic version algorithm for TRANSDBTRI-AI algorithm. To solve the linear system of the form (1.5), we may proceed as follows:
1251
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
INPUT: Order of the matrix n and the components, ai , di , bi , fi , pi , qi . OUTPUT: The determinant of the coefficient matrix in (1.5) and the solution vector x = [x1 , x2 , . . . , xn ]T . Step 1: Set c1 = d1 . If c1 = 0 then c1 = s end if. y1 = ac11 , v1 = pc11 , z1 = fc11 , and h1 = q1 . Step 2: For i = 2, 3, ..., n − 2 do Compute and simplify: ci = di − bi−1 yi−1 . If ci = 0 then ci = s end if. yi = acii , vi = c1i (pi − bi−1 vi−1 ), zi = c1i (fi − bi−1 zi−1 ), hi = qi − hi−1 yi−1 , End do. Step 3: Set cn−1 = dn−1 − bn−2 yn−2 . If cn−1 = 0 then cn−1 = s end if. 1 (a vn−1 = cn−1 n−1 − bn−2 vn−2 ), 1 zn−1 = cn−1 (fn−1 − bn−2 zn−2 ), hn−1 = bn−1 − hn−2 yn−2 . n−1 P Step 4: Set cn = dn − hi vi . If cn = 0 then cn = s end if. i=1 n−1
P zn = c1n (fn − hi zi ). i=1 Step 5: Use the DETDBTRI-A algorithm to check the non-singularity of the coefficient matrix of the system (1.5). Step 6: If the determinant of the coefficient matrix in (1.5) equals zero, then Exiterror(’No solutions’) end if. Step 7: Compute the solution vector x = [x1 , x2 , . . . , xn ]T using x n = zn xn−1 = zn−1 − vn−1 xn Step 8: For i = n − 2, n − 3, ..., 1 do xi = zi − yi xi+1 − vi xn End do. Step 9: Substitute s = 0 in all expressions of the solution vector xi , i = 1, 2, ..., n. The Algorithm 2.3, will be referred to as TRANSDBTRI-AII algorithm. At this point it is worth mentioned that: • The values zi , i = 1, 2, ..., n in (2.3) satisfy:
c1
0
b1
c2
0 .. . .. . 0 h1
b2 .. .
... .. . c3 .. . ..
... h2
. ... h3
... ..
.
..
.
bn−3 0 ...
..
...
.
cn−2 bn−2 hn−2
..
. cn−1 hn−1
0 .. . .. . .. . .. . 0 cn
z1 z2 z3 . .. zn−2 z n−1 zn
f1 f2 f3 .. .
= fn−2 fn−1 fn
.
(2.4)
1252
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
• The solution vector, x = [x1 , x2 , ..., xn ]T of the system (1.5) satisfies:
1
y1
0
0 .. . .. . .. . 0
1 ..
y2 .. . .. .
.
... .. . .. .
0 .. .
1 ..
v1
0
v2 .. .
yn−2
vn−2
1 0
vn−1 1
. ...
...
x1 x2 .. . .. . xn−2 xn−1 xn
z1 z2 .. . .. .
= zn−2 zn−1 zn
.
(2.5)
Hence using (2.4) and (2.5), we get
c1
0
b1
c2
0 .. . .. . 0 h1
b2 .. . ... h2
... .. .
...
c3 .. . .. . ... h3
..
.
..
.
..
bn−3 0 ...
...
0 .. . .. . .. . .. . 0 cn
. ..
cn−2 bn−2 hn−2
.
cn−1 hn−1
1
y1
0
0 .. . .. . .. . 0
1 ..
y2 .. . .. .
.
...
... .. . .. . 1 ..
0 .. .
v1
x1 x2 v2 .. .. . . .. . vn−2 x n−2 vn−1 xn−1 xn 1
0 yn−2
. ...
1 0
f1 f2 . . . . = . . fn−2 fn−1 fn (2.6)
From (1.5) and (2.6), we obtain the Crout LU factorization [1] of the matrix in (1.5) in the form:
Tn = L1 U1
where
c1
0
L1 =
b1
c2
0 .. . .. . 0 h1
b2 .. .
... .. . c3 .. . ..
... h2
. ... h3
... ..
.
..
.
bn−3 0 ...
..
...
.
cn−2 bn−2 hn−2
..
.
cn−1 hn−1
0 .. . .. . .. . .. . 0 cn
1 0 . . . and U1 = . . . . .. 0
y1
0
1 ..
y2 .. . .. .
.
...
... .. . .. . 1 ..
. ...
0 .. .
v1
0
v2 .. .
yn−2
vn−2
1 0
vn−1 1
.
(2.7) The Doolittle LU factorization of the coefficient matrix in (1.5) is given by:
Tn = L2 U2
1253
.
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
where
1
0
b 1 c1 0 L2 = ... . . . 0
1
h1 c1
b2 c2
..
.
... .. .
...
1 .. . .. .
..
.
..
.
bn−3 cn−3
...
...
0
h2 c2
h3 c3
...
..
...
0 .. . .. . .. . .. .
c1 0 . . . and U2 = . . . . .. 0 0 1
. ..
1 bn−2 cn−2 hn−2 cn−2
.
1 hn−1 cn−1
a1
0
c2 .. .
a2 .. . .. .
... .. . .. . cn−2 .. . ...
...
0 .. .
c1 v1
0
c2 v2 .. .
an−2
cn−2 vn−2
cn−1 0
cn−1 vn−1 cn
.
(2.8) • The values vi , i = 1, 2, ..., n − 1 in (2.3) satisfy:
c1
0
b1
c2
0 .. . .. . 0
b2 .. .
... .. .
...
c3 .. . ..
...
. ...
..
.
..
.
..
bn−3 0
0 .. . .. .
.
cn−2 bn−2
0 cn−1
v1 v2 v3 . .. vn−2 vn−1
p1 p2 p3 = . .. pn−2 an−1
(2.9)
• The values hi , i = 1, 2, ..., n − 1 in (2.3) satisfy:
1
0
y1
1
0 .. . .. . 0
y2 .. . ...
... .. .
...
1 .. . .. . ...
..
.
..
.
..
yn−3 0
.
1 yn−2
0 .. h1 . h2 h3 .. .. . . hn−2 0 hn−1 1
q1 q2 q3 .. .
= qn−2 bn−1
.
(2.10)
Armed with (2.7)-(2.10) we may write the partitioned forms:
d1
a1
0
b1
d2
a2
0 .. . .. . 0 q1
b2 .. .
d3 .. . .. . ... q3
... q2
... .. .
...
p1
p2
a3 .. .
..
.
0 .. . .. .
..
.
0
p3 .. .
bn−3 0 ...
dn−2 bn−2 qn−2
an−2 dn−1 bn−1
pn−2 an−1 dn
1254
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
c1
0
=
b1
c2
0 .. . .. . 0 h1
b2 .. .
... .. .
... h2
c3 .. . .. . ... h3
... .. ..
0 .. .
. ..
.
bn−3 0 ...
.. .
.
cn−2 bn−2 hn−2
0 cn−1 hn−1
0 .. . .. . .. . .. . 0 cn
1
y1
0
0 .. . .. . .. . 0 0
1 .. .
y2 1 .. .
... ...
... ...
a1
0
c2 .. .
a2
... .. .
...
y3 .. . .. . ...
..
.
0 .. . .. .
..
.
0
v1
v2
,
v3 .. .
1 0 ...
yn−2 1 0
...
vn−2 vn−1 1 (2.11)
and
d1
a1
0
b1
d2
a2
0 .. . .. . 0 q1
b2 .. .
d3 .. . .. . ... q3
... q2
1
0
=
b1 c1
1
0 .. . .. .
b2 c2
0 h1
..
.
... h2
... .. . 1 .. . .. . ... h3
... .. . a3 .. .
..
.
0 .. . .. .
..
.
0
p3 .. .
bn−3 0 ...
dn−2 bn−2 qn−2
an−2 dn−1 bn−1
pn−2 an−1 dn
...
...
.. ..
...
0 .. .
.
0 ...
1
0
..
.
bn−3 cn−3
.
.. .
bn−2 cn−2
hn−2
1 hn−1
p1
p2
=
0 c1 .. . 0 . .. .. . . .. .. . . . . 0 0 0 1
... ...
c3 .. . ... ...
... .. . a3 .. . .. . ...
v1
v2
.
..
.
0 .. . .. .
..
.
0
v3 .. .
an−2 cn−1 0
vn−2 vn−1 cn
cn−2 0 ...
(2.12)
3
Algorithms for Solving Doubly Bordered Tridiagonal Linear Systems of Type (B)
In this section, we are going to consider the construction of new algorithms for solving doubly bordered tridiagonal linear systems of type (B) via transformation. For this purpose it is convenient to introduce the vector e = [e1 , e2 , ..., en ] whose components en , en−1 , ..., e2 are given by:
( ei =
dn , di −
ai bi , ei+1
for i = n for i = n − 1, n − 2, ..., 2.
(3.1)
1255
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
The system (1.6) can be completely described by the augmented matrix, H given by:
d1 b1
qn−2 . ˆ H := Tn , g = .. q3 q2 q1
a1 d2
pn−2 a2
... 0
b2
d3 .. .
a3 .. .
0 .. . .. . 0
..
.
...
bn−3 .. . ...
p3 ... .. . .. .
p2 ...
p1 0 .. . .. .
g1 g2
dn−2
an−2
0
gn−2
bn−2 0
dn−1 bn−1
an−1 dn
gn−1 gn
..
.
g3 .. .
.
(3.2)
The matrix H contains all the information about the system (1.6) that is necessary to determine its solution, but in a compact form. Let Ri denotes the i-th row of the matrix H. Performing the following row operations on H, in the same order: Rn ←− Rn /en For i = n − 1, n − 2, ..., 2 do Ri ←− Ri − ai Ri+1 Ri ←− Ri /ei End do. For j = 1, 2, ..., n − 1 do R1 ←− R1 − vj Rn−j+1 End do. R1 ←− R1 /e1 . Then we have the resulting transformed linear system of the form:
1
h n−1 hn−2 .. . h3 h2 h1
0 1 Y2 0 .. . .. . 0
... .. . 1 .. . .. . ...
... .. ..
...
. .
Yn−3 .. . ...
..
.
1
..
Yn−2 0
1 Yn−1
.
Z1
Z2
,
0 .. . .. . .. . .. .
Zn−2
0 1
Zn−1 Zn
Z3 .. .
(3.3)
1256
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
where gn q1 , Zn = , en en For i = n − 1, n − 2, ..., 2 do en = dn ,
h1 =
v 1 = p1 ,
bi , Yi = ei+1 ei = di − ai Yi , Zi = e1i (gi − ai Zi+1 ). End do. For i = 2, 3, ..., n − 2 do 1 (qi − hi−1 an−i+1 ), hi = en−i+1 vi = pi − Yn−i+1 vi−1 ,
(3.4)
End do. 1 (b1 − hn−2 a2 ), e2 = a1 − Y2 vn−2 ,
hn−1 = vn−1
e1 = d1 −
n−1 X
hr vr ,
r=1
Z1 =
n−1 X 1 (g1 − vr Zn−r+1 ). e1 r=1
At this stage, the determinant of the coefficient matrix in (1.6) can be computed using the following computational symbolic algorithm.
Algorithm 3.1. An algorithm for computing the determinant of doubly bordered tridiagonal matrices of type (B). To compute the determinant of the coefficient matrix in (1.6), we may proceed as follows: INPUT: Order of the coefficient matrix n and the components, ai , di , bi , pi , qi . OUTPUT: The determinant of the coefficient matrix in (1.6). Step 1: Set en = dn . If en = 0 then en = s end if. Step 2: For i = n − 1, n − 2, ..., 2 do Compute and simplify: i bi ei = di − a ei+1 . If ei = 0 then ei = s end if. End do. Step 3: Compute e1 from (3.4). Step 4: Compute and simplify: n Q P (s) = er . r=1
Step 5: det(Tˆn ) = P (0). The Algorithm 3.1, will be referred to as DETDBTRI-B algorithm. The reduced transformed system (3.3) is triangular and easy to solve by forward substitution. Consequently, the linear system (1.6) can be solved using the following symbolic algorithm:
1257
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
Algorithm 3.2. Symbolic version algorithm for solving doubly bordered tridiagonal linear system of type (B). To solve the linear system of the form (1.6), we may proceed as follows: INPUT: Order of the matrix n and the components, ai , di , bi , gi , pi , qi . OUTPUT: The determinant of the coefficient matrix in (1.6) and the solution vector x = [x1 , x2 , . . . , xn ]T . Step 1: Set en = dn . If en = 0 then en = s end if. h1 = eqn1 , Z1 = genn , and v1 = p1 . Step 2: For i = n − 1, n − 2, ..., 2 do Compute and simplify: bi , Yi = ei+1 ei = di − ai Yi . If ei = 0 then ei = s end if. Zi = e1i (gi − ai Zi+1 ). End do. Step 3: For i = 2, 3, ..., n − 2 do Compute and simplify: 1 hi = en−i+1 (qi − an−i+1 hi−1 ), vi = pi − Yn−i+1 vi−1 , End do. Step 4: Set hn−1 = e12 (b1 − a2 hn−2 ), vn−1 = a1 − Y2 vn−2 . n−1 P Step 5: Set e1 = d1 − hr vr . If e1 = 0 then e1 = s end if. r=1
Z1 =
1 (g1 e1
−
n−1 P
vr Zn−r+1 ).
r=1
Step 6: Use the DETDBTRI-B algorithm to check the non-singularity of the coefficient matrix of the system (1.6). Step 7: If the determinant of the coefficient matrix in (1.6) equals zero, then Exiterror(’No solutions’) end if. Step 8: Compute the solution vector x = [x1 , x2 , . . . , xn ]T using x1 = Z1 x2 = Z2 − hn−1 x1 Step 9: For i = 3, 4, ..., n do xi = Zi − Yi−1 xi−1 − hn−i+1 x1 End do. Step 9: Substitute s = 0 in all expressions of the solution vector xi , i = 1, 2, ..., n. The Algorithm 3.2, will be referred to as TRANSDBTRI-BI algorithm. The cost of this algorithm is exactly the same as the cost of the TRANSDBTRI-AI algorithm. Similar to the situation with the doubly bordered tridiagonal linear systems of type (A), the following points are worth to mention:
1258
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
• The solution vector, x = [x1 , x2 , ..., xn ]T of the system (1.6) satisfies: 1 0 ... ... ... 0 .. .. h x1 Z1 . . n−1 1 Z2 x 2 . .. .. hn−2 Y2 x3 Z3 . 1 .. .. .. .. .. .. .. = . . . . 0 . . . xn−2 Zn−2 .. .. .. .. . Yn−3 . . 1 . x h3 Zn−1 n−1 .. .. Zn x n h2 . . Yn−2 1 0 h1 0 ... ... 0 Yn−1 1 • The values Zi , i = 1, 2, ..., n in (3.4) satisfy: e1 vn−1 . . . ... v2 0 e2 a2 0 ... . .. .. .. .. .. . . . . . .. . . en−2 an−2 . .. .. . . en−1 0 ... ... 0
v1 0 .. . 0 an−1 en
Z1 Z 2 Z 3 .. . Zn−2 Zn−1 Zn
g1 g2 g3 .. .
.
(3.5)
= gn−2 gn−1 gn
.
(3.6)
Hence using (3.5) and (3.6), we get
e1 0 .. . .. . .. . 0
vn−1 e2 .. .
... a2 .. . .. .
... 0 .. .
v2 ... .. .
v1 0 .. .
1 h n−1 hn−2 .. . h3 h2 h1
0
... .. .
...
...
0 .. . .. . .. . .. .
x1 g1 x2 g2 .. x3 g3 . Y2 1 . .. .. .. .. = .. . . . 0 . en−2 an−2 0 .. xn−2 .. .. gn−2 .. . . Yn−3 1 . gn−1 . en−1 an−1 xn−1 .. .. xn gn ... ... 0 en . Yn−2 1 0 . 0 ... ... 0 Yn−1 1 (3.7) From (1.6) and (3.7), we obtain the Doolittle U L factorization [1] of the matrix in (1.6) in the form:
1
Tˆn = U1 L1 where U1 =
e1 0 .. . .. . .. . 0
vn−1 e2 .. .
...
... a2 .. . .. .
... 0 .. .
v2 ... .. .
v1 0 .. .
en−2 .. . ...
an−2
0
en−1 0
an−1 en
1
0
h n−1 hn−2 .. and L1 = . h3 h2 h1
1 Y2 0 .. . .. . 0
... .. . 1 .. . .. . ...
... ..
.
..
.
Yn−3 .. . ...
..
...
.
1 Yn−2 0
..
.
1 Yn−1 (3.8)
1259
0 .. . .. . .. . .. .
. 0 1
.
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
The Crout U L factorization of the coefficient matrix in (1.6) is given by:
Tˆn = U2 L2
where
U2 =
1 0 .. . .. . .. . 0
vn−1 e2
1 .. .
... a2 e3
.. ..
. .
...
... 0 .. .
v2 en−1
v1 en
... .. .
0 .. .
1 .. . ...
an−2 en−1
0
1 0
an−1 en
e1
0
e h 2 n−1 e3 hn−2 .. and L2 = . en−2 h3 en−1 h2 en h1
1
e2 b2 0 .. . .. . 0
... .. . e3 .. . .. . ...
... ..
.
..
.
bn−3 .. . ...
..
...
.
en−2 bn−2 0
..
.
en−1 bn−1 (3.9)
• The values vi , i = 1, 2, ..., n − 1 in (3.4) satisfy:
1
Yn−1 0 .. . .. . 0
0 1 Yn−2 .. . ...
... .. . 1 .. . .. . ...
... ..
.
..
.
Y3 0
..
.
1 Y2
0 .. v1 . v 2 v3 . .. .. . vn−2 0 vn−1 1
p1 p2 p3 .. .
q1 q2 q3 .. .
= pn−2 a1
(3.10)
• The values hi , i = 1, 2, ..., n − 1 in (3.4) satisfy:
en
an−1 0 . . . . .. 0
0 en−1 an−2 .. . ...
... .. . 1 .. . .. . ...
... ..
.
..
.
a3 0
..
.
e3 a2
0 .. h1 . h2 h3 .. .. . . hn−2 0 hn−1 e2
= qn−2 b1
.
(3.11)
1260
0 .. . .. . .. . .. .
. 0 en
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
Armed with (3.8)-(3.11) we have the partitioned form: d1 b1
qn−2 . . . q3 q2 q1 e1 0 .. . . = .. .. . . .. 0
a1 d2
pn−2 a2
... 0
b2
d3 .. .
a3 .. .
0 .. . .. . 0
..
.
bn−3 .. . ...
...
p3 ... .. . .. .
p2 ...
dn−2
an−2
0
bn−2 0
dn−1 bn−1
an−1 dn
vn−1 e2
vn−2 a2
vn−3 0
0 .. .
e3 .. .
a3 .. . .. .
.. . 0
...
..
.
... ... .. . .. . en−2 .. . ...
p1 0 .. . .. .
v2 ... ..
v1 0 .. . .. .
.
an−2
0
en−1 0
an−1 en
1 hn−1 hn−2 .. . h2 h1
0 1
... 0
Y2
1 .. . .. . ...
0 .. . 0
... ... .. . .. .
... ...
Yn−2 0
1 Yn−1
..
.
0 0 .. . .. .
, 0 1 (3.12)
and
d1 b1
qn−2 . . . q3 q2 q1 =
1 0 .. . .. . .. . .. . 0
a1 d2
pn−2 a2
... 0
b2
d3 .. .
a3 .. .
0 .. . .. . 0 vn−1 e2
1 0 .. .
..
.
...
bn−3 .. . ...
vn−2 e3 a2 e3
vn−3 e4
1 .. .
a3 e4
0
.. ..
.. . 0
. .
...
p3 ... .. . .. .
p2 ...
dn−2
an−2
0
bn−2 0
dn−1 bn−1
an−1 dn
..
.
p1 0 .. . .. .
... ... .. . .. .
v2 en−1
v1 en
...
0 .. . .. .
1 .. . ...
an−2 en−1
0
1 0
an−1 en
..
.
e1 e2 hn−1 e h 3 n−2 .. . en−1 h2 en h1
0 e2
... 0
b2
e3 .. .
0 .. . 0
..
. ...
... ... .. . .. .
... ...
bn−2 0
en−1 bn−1
..
.
0 0 .. . .. .
, 0 en
1 (3.13)
1261
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
4
Computer Program
In this section, we are going to introduce a MAPLE procedure for solving linear systems of doubly bordered tridiagonal types (A) and (B) in (1.5) and (1.6), respectively. The procedure is based on the algorithms DETDBTRI-A, TRANSDBTRI-AII, DETDBTRI-B and TRANSDBTRI-BI. #################################################### restart: doublytritrans:= proc(d::vector, a::vector, b::vector,q::vector,p::vector,f::vector, n::posint,indic::nonnegint) local i,r: global x,T,detA: x:= vector(n): #################################################### #Apply TRANDBTRI-AII algorithm if indic =1# if indic=1 then if d[1] = 0 then d[1]:=t fi: a[1]:=simplify(a[1]/d[1]): f[1]:=simplify(f[1]/d[1]): p[1]:=p[1]/d[1]: for i from 2 to n-2 do d[i] := simplify(d[i]-a[i-1]*b[i-1]);if d[i] = 0 then d[i] := t; fi: a[i] := simplify(a[i]/d[i]); p[i] := simplify((p[i] - p[i-1]*b[i-1])/d[i]); f[i] := simplify((f[i]-f[i-1]*b[i-1])/d[i]); q[i] := simplify(q[i] - q[i-1]*a[i-1]); od: d[n-1] := simplify(d[n-1]-a[n-2]*b[n-2]); if d[n-1] = 0 then d[n-1] := t; fi: p[n-1] := simplify((a[n-1] - p[n-2]*b[n-2])/d[n-1]): f[n-1] := simplify((f[n-1] - f[n-2]*b[n-2])/d[n-1]): q[n-1] := simplify((b[n-1] - q[n-2]*a[n-2])): d[n] := simplify(d[n]-sum(q[r]*p[r],r=1..n-1)): f[n] := simplify((f[n]-sum(q[r]*f[r],r=1..n-1))/d[n]): if d[n] = 0 then d[n] := t; fi: #To compute the determinant of the doubly bordered tridiagonal matrix# T := simplify(subs(t =0,simplify(product(d[r],r= 1..n)))): detA:= eval(T); if T = 0 then error(”Singular Matrix”); fi; # To compute the Solution of the system X. # x[n]:=simplify(f[n]); x[n-1]:=simplify((f[n-1]-p[n-1]*x[n])); for i from n-2 by -1 to 1 do x[i]:=simplify((f[i]-a[i]*x[i+1]-p[i]*x[n])); od; eval(x); #################################################### #Apply TRANDBTRI-BI algorithm if indic = 2# elif indic=2 then if d[n] = 0 then d[n]:=t fi; g[n]:=simplify(g[n]/d[n]): q[1]:=simplify(q[1]/d[n]): for i from n-1 by -1 to 2 do b[i] := simplify(b[i]/d[i+1]); d[i] := simplify(d[i]-b[i]*a[i]);if d[i] = 0 then d[i] := t; fi:
1262
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
g[i] := simplify((g[i]-g[i+1]*a[i])/d[i]); od: for i from 2 to n-2 do q[i] := simplify((q[i] - q[i-1]*a[n-i+1])/d[n-i+1]); p[i] := simplify(p[i] - p[i-1]*b[n-i+1]); od: q[n-1] := simplify((b[1] - q[n-2]*a[2])/d[2]): p[n-1] := simplify(a[1] - p[n-2]*b[2]): d[1] := simplify(d[1]-sum(q[r]*p[r],r=1..n-1)): if d[1] = 0 then d[1] := t; fi: g[1] := simplify((g[1]-sum(p[r]*f[n-r+1],r=1..n-1))/d[1]): #To compute the determinant of the doubly bordered tridiagonal matrix# T := simplify(subs(t =0,simplify(product(d[r],r= 1..n)))): detA:= eval(T); if T = 0 then error(”Singular Matrix”);fi; # To compute the Solution of the system X. # x[1]:=simplify(g[1]): x[2]:=simplify((g[2]-q[n-1]*x[1])): for i from 3 to n do x[i]:=simplify((g[i]-b[i-1]*x[i-1]-q[n-i+1]*x[1])); od: eval(x); elif (indic1 and indic2) then print(”Error. The value of indic is out of range”): fi: end proc:
5
Illustrative Examples
Example 5.1. [17]. Consider the singly bordered tridiagonal matrix A=
2 1 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0 0 0 0
0 1 2 1 0 0 0 0 0 0
0 0 1 2 1 0 0 0 0 0
0 0 0 1 2 1 0 0 0 0
0 0 0 0 1 2 1 0 0 0
0 0 0 0 0 1 2 1 0 0
0 0 0 0 0 0 1 2 1 0
0 0 0 0 0 0 0 1 2 1
p1 p2 p3 p4 p5 p6 p7 p8 1 2
,
find det(A). Solution: We have n = 10, indic = 1, a = [1, 1, 1, 1, 1, 1, 1, 1, 1], d = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2], b = [1, 1, 1, 1, 1, 1, 1, 1, 1], p = [p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , 0]T and q = [0, 0, 0, 0, 0, 0, 0, 0, 0]. By applying the DETDBTRI-A algorithm , we obtain • c=[2, 23 , 43 , 45 , 65 , 67 , 87 , 98 , • detA=
10 Q
i=1
10 11 , 9 10
+ 45 p8 −
7 p 10 7
+ 35 p6 − 21 p5 + 25 p4 −
3 p 10 3
+ 15 p2 −
ci = 11 + 8p8 − 7p7 + 6p6 − 5p5 + 4p4 − 3p3 + 2p2 − p1 = 11 +
8 P
1 p ]. 10 1
(−1)i i pi .
i=1
1263
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
This result is in complete agreement with the result in [17]. Example 5.2. Solve the doubly bordered tridiagonal linear system
5 2 0 0 0 0 0 0 0 3
2 1 −2 0 0 0 0 0 0 2
0 1 5 1 0 0 0 0 0 −2
0 0 2 2 3 0 0 0 0 7
0 0 0 7 10 1 0 0 0 −6
0 0 0 0 2 15 9 0 0 1
0 0 0 0 0 3 2 1 0 4
0 0 0 0 0 0 5 1 3 5
0 0 0 0 0 0 0 7 4 1
4 12 7 2 5 3 6 2 2 1
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
=
5 −5 8 12 13 22 19 24 16 34
Solution: We have a doubly bordered tridiagonal linear systems of type (A) for which: n = 10, indic = 1, a = [2, 1, 2, 7, 2, 3, 5, 7, 2], d = [5, 1, 5, 2, 10, 15, 2, 1, 4, 1], b = [2, −2, 1, 3, 1, 9, 1, 3, 1], p = [4, 12, 7, 2, 5, 3, 6, 2, 0]T , q = [3, 2, −2, 7, −6, 1, 4, 5, 0] and f = [5, −5, 8, 12, 13, 22, 19, 24, 16, 34]T . By applying the TRANSDBTRI-AII, we get • c=[5, 15 , 15, • detA=
10 Q
28 −5 83 31 −384 729 −161620 , 4 , 5 , 83 , 31 , 128 , 567 ]. 15
ci = −4363740.
i=1
• The solution vector is x=[1, 2, 3, 2, 1, 1, 3, 2, 3, −1]T . By using TRANSDBTRI-AI, we obtained the same results. Example 5.3. Solve the doubly bordered tridiagonal linear system
1 1 0 0 0 0 0 0 0 3
1 1 9 0 0 0 0 0 0 2
0 12 2 3 0 0 0 0 0 1
0 0 5 15 2 0 0 0 0 7
0 0 0 1 3 7 0 0 0 5
0 0 0 0 10 1 −5 0 0 −2
0 0 0 0 0 2 2 2 0 4
0 0 0 0 0 0 2 1 5 2
0 0 0 0 0 0 0 1 2 1
5 3 2 1 5 2 7 12 4 5
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
=
6 16 14 35 2 8 12 15 10 33
Solution: We have a doubly bordered tridiagonal linear systems of type (A) for which: n = 10, indic = 1, a = [1, 12, 5, 1, 10, 2, 2, 1, 4], d = [1, 1, 2, 15, 3, 1, 2, 1, 2, 5], b = [1, 9, 3, 2, 7, −5, 2, 5, 1], p = [5, 3, 2, 1, 5, 2, 7, 12, 0]T , q = [3, 2, 1, 7, 5, −2, 4, 2, 0] and f = [6, 16, 14, 35, 2, 8, 12, 15, 10, 33]T . By applying the TRANSDBTRI-AII, we have s−108 1 41 s−4644 s−108756 • c=[1, s, 2 s−54 , 15 , , − 1009 , 24 s 2 s−54 15 s−108 41 s−4644 403 s−43227 1 80797 s−8813606 8 607 s−65988 , − 8 403 s−43227 ].
• detA=(
10 Q
67 s−7128 s−65988 , − 16 607 , 1009 s−108756 67 s−7128
ci )s=0 = (−323188 ∗ s + 35254424)s=0 = 35254424.
i=1
• The solution vector is x = [1, 0, 1, 2, 1, −1, 0, 0, 3, 1]T .
1264
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
Example 5.4. Solve the doubly bordered tridiagonal linear system 5 2 2 6 3 5 2 7 12 4 2 1 1 0 0 0 0 0 0 0 5 −2 5 2 0 0 0 0 0 0 4 0 1 2 7 0 0 0 0 0 1 0 0 3 10 2 0 0 0 0 −6 0 0 0 1 15 3 0 0 0 7 0 0 0 0 9 2 5 0 0 −2 0 0 0 0 0 1 1 7 0 2 0 0 0 0 0 0 3 1 1 3
0
0
0
0
0
0
0
1
1
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
=
34 5 4 3 0 18 32 3 9 4
Solution: We have a doubly bordered tridiagonal linear systems of type (B) for which: n = 10, indic = 2, a = [2, 1, 2, 7, 2, 3, 5, 7, 1], d = [5, 1, 5, 2, 10, 15, 2, 1, 1, 1], b = [2, −2, 1, 3, 1, 9, 1, 3, 1], p = [4, 12, 7, 2, 5, 3, 6, 2, 0]T , q = [3, 2, −2, 7, −6, 1, 4, 5, 0] and g = [34, 5, 4, 3, 0, 18, 32, 3, 9, 4]T . By applying the TRANSDBTRI-BI, we have • e=[ 11 ∗ 3 (s+14) , (s−21)
• detT=(
(104∗s−1637) ,3 (32∗s+43) (s−21) , s, 1]. s
10 Q
∗
(32∗s+43) (88∗s+107) −1 , (4∗s+11) , 2 (88∗s+107)
∗
(4∗s+11) 14 , (17∗s+13) 3
∗
(17∗s+13) ,3 (8∗s+7)
∗
(8∗s+7) , −3 (s+14)
∗
ei )s=0 = (24024 ∗ s − 378147)s=0 = −378147.
i=1
• The solution vector is x = [1, 2, 1, −1, 0, 1, 3, 2, 0, 1]T .
6
Conclusions
The current article focuses on solving doubly bordered tridiagonal linear systems of equations via transformation. It investigates numeric and symbolic algorithms for solving such systems. MAPLE was used to simulate the problem considered. If n is large (n>500), it may be preferable to use iterative methods for solving such systems. Consequently, the efficiency of the new methods in this paper should be compared with existing methods such as static and dynamic tuning method or the GPU accelerated tridiagonal solver. This will be the subject of the next paper.
Acknowledgment The authors are extremely thankful to the editorial team of SDI and anonymous referees for their useful comments and suggestions that have helped in improving the readability of this paper.
Competing interests The authors declare that they have no competing interests.
References [1] Burden R.L, Faires J.D. Numerical Analysis. Seventh ed., Books & Cole Publishing, Pacific Grove, CA. 2001.
1265
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
[2] Demmel J.W. Applied Numerical Linear Algebra. SIAM, Philadelphia. 1997. [3] El-Mikkawy M.E.A. A fast algorithm for evaluating nth order tri-diagonal determinants. J. Comput. Appl. Math. 2004;166:581-584. [4] El-Mikkawy M.E.A, Karawia A. Inversion of general tridiagonal matrices. Appl. Math. Lett. 2006;19:712-720. [5] El-Mikkawy M.E.A. A note on a three-term recurrence for a tridiagonal matrix. Appl. Math. Comput. 2003;139:503-511. [6] Akin H. On 1D reversible cellular automata with reflective boundary over the prime field of order p. Internat. J. Modern Phys. C. 2012;23(1):1-13. [7] Chant TF, Resascot DC. Generalized deflated block-elimination. SIAM J. Numer. Anal. 1986;23:913-924. [8] El-Mikkawy M.E.A. An algorithm for solving tridiagonal systems. J. Inst. Math. Comput. Sci. Comput. Sci. Ser. 1991;4(2):205-210. [9] El-Mikkawy M.E.A. On the inverse of a general tridiagonal matrix. Appl. Math. Comput. 2004;150:669-679. [10] El-Mikkawy M.E.A. A new computational algorithm for solving periodic tri-diagonal linear systems. Appl. Math. Comput. 2005;161:691-696. [11] El-Mikkawy M.E.A, Rahmo E. A new recursive algorithm for inverting general tridiagonal and anti-tridiagonal matrices. Appl. Math. Comput. 2008;204:368-372. [12] El-Mikkawy M.E.A, Rahmo E. A new recursive algorithm for inverting general periodic pentadiagonal and anti-pentadiagonal matrices. Appl. Math. Comput. 2009;207:164-170. [13] El-Mikkawy M.E.A. A generalized symbolic Thomas algorithm. Applied Mathematics. 2012;3(4):342-345. doi: 10.4236/am.2012.34052. [14] Kavcic A, Moura JMF. Matrices with banded inverses: Inversion algorithms and factorization of Gauss-Markov processes, IEEE Trans. Inform. Theory. 2000;46(4):1495-1509. [15] Li H.B, Huang T.Z, Liu X.P, Li H. On the inverses of general tridiagonal matrices. Linear Algebra Appl. 2010;433:965-983. [16] Shapiro L.W. Positive definite matrices and catalan numbers. revisited, Proc. Amer. Math. Soc. 1984;90:488-496. [17] Sogabe T. On a two-term recurrence for the determinant of a general matrix. Appl. Math. Comput. 2007;187:785-788. [18] Sugimoto T. On an inverse formula of a tridiagonal matrix. Operators and Matrices. 2012;6(3):465-480. doi:10.7153/oam-06-30. [19] Usmani R. Inversion of a tridiagonal Jacobi matrix. Linear Algebra Appl. 1994;212/213:413-414. [20] Akbudak K, Kayaaslan E, Aykanat C. Analyzing and enhancing OSKI for sparse matrix-vector multiplication. Available on-line at www.prace-ri.eu [21] Amodio P, Gladwelly I, Romanazzi G. Numerical solution of general bordered ABD linear systems by cyclic reduction. J. Numer. Anal. Ind. Appl. Math. 2006;1(1):5-12. [22] Doedel E. Numerical analysis and control of bifurcation problems (I) Bifurcation in finite dimensions. Internat. J. Bifur. Chaos Appl. Sci. Engrg. 1991;1(3):493-520. [23] Duff I.S, Scott JA. Stabilized bordered block diagonal forms for parallel sparse solvers. RAL-TR2004-006. Available on-line http://www.numerical.rl.ac.uk/reports/reports.html. [24] da Fonseca C.M. A note on the inversion of acyclic matrices. Int. J. Pure Appl. Math. 2006;31(3):307-317.
1266
British Journal of Mathematics and Computer Science 4(9), 1246-1267, 2014
[25] Karawia A.A. New Symbolic Algorithms for Solving A General Bordered Tridiagonal Linear System. (2013). avaliable at http://arxiv.org/pdf/1303.0738v1.pdf. [26] Martin A, Boyd I.D. Variant of the Thomas Algorithm for opposite-bordered tridiagonal systems of equations. Int. J. Numer. Meth. Biomed. Engng. 2010;26:752-759. [27] Pajic S. Power system state estimation and contingency constrained optimal power flow a numerically robust implementation. Ph,D. Thesis. Worcester-Polytechnic Institute. 2007. [28] Rashidinia J, Jalilian R. Non-Polynomial Spline Solution of Fourth-Order Obstacle BoundaryValue Problems. World Academy of Science, Engineering and Technology. 28 2009. [29] Udala A, Reedera R, Velmrea E, Harrisonb P. Comparison of methods for solving the Schrodinger equation for multiquantum well heterostructure applications. Proc. Estonian Acad. Sci. Eng. 2006;12:246-261. [30] Xing-Bo W. A new algorithm with its scilab implementation for solution of bordered tridiagonal linear equations. Open-source Software for Scientific Computation (OSSC), 2009 IEEE International Workshop on Computing & Processing (Hardware/Software). 2009:11-14. —————————————————————————————————————————————c
2014 El-Mikkawy & Atlan; This is an Open Access article distributed under the terms of the Creative Commons Attribution License http://creativecommons.org/licenses/by/3.0, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Peer-review history: The peer review history for this paper can be accessed here (Please copy paste the total link in your browser address bar) www.sciencedomain.org/review-history.php?iid=448&id=6&aid=3854
1267