^{1}

^{*}

^{1}

^{*}

In this paper we consider the numerical method of characteristics for the numerical solution of
*initial value problems* (IVPs) for quasilinear hyperbolic Partial Differential Equations, as well as the difference scheme Central Time Central Space (CTCS), Crank-Nicolson scheme,
*ω* scheme and the method of characteristics for the numerical solution of initial and boundary value prob-lems for the one-dimension homogeneous wave equation. The initial deriva-tive condition is approximated by different second order difference quotients in order to examine which gives more accurate numerical results. The local truncation error, consistency and stability of the difference schemes CTCS, Crank-Nicolson and
*ω* are also considered.

A second order quasilinear PDE in two independent variables x, y is an equation of the form

A ∂ 2 U ( x , y ) ∂ x 2 + B ∂ 2 U ( x , y ) ∂ x ∂ y + C ∂ 2 U ( x , y ) ∂ y 2 + D = 0 , (1)

where A, B, C, D may be functions of x, y, U ( x , y ) , ∂ U ( x , y ) ∂ x and ∂ U ( x , y ) ∂ y .

We assume that the PDE (1) is of hyperbolic type, which means that we are restricted to a region of the xy-plane where B 2 − 4 A C > 0 .

The second order quasilinear hyperbolic Partial Differential Equations (PDEs) with appropriate initial and boundary conditions serve as models in many branches of physics, engineering, biology, etc. Thus, the numerical solution of such PDEs plays an important rule in the current research. During the last decades, a variety of numerical methods have been developed to solve these PDEs some of which can be found in [

In this paper, a modification of the numerical method of characteristics is proposed to solve special cases of initial and boundary value problems (IBVPs) for second order hyperbolic PDEs. To test the method it is applied for the numerical solution of IBVPs for the one-dimension homogeneous wave equation and it is compared with the following well-known finite difference methods: Central Time Central Space (CTCS), Crank-Nicolson and ω scheme.

The CTCS method is the classic explicit scheme to approach the wave equation which can be very accurate under certain restriction. The ω-method is an implicit scheme first introduced by von Neumann [

The common thing among the schemes CTCS, Crank-Nicolson and ω is that it is required to compute the solution on the first time step before they can be employed [

The manuscript is organized as follows. In Section 2 we describe briefly the numerical method of characteristics and we apply it into two specific quasilinear hyperbolic PDEs, in order to examine the accuracy of the method. In Section 3 we consider the one-dimensional homogeneous wave equation

c 2 ∂ 2 U ( x , t ) ∂ x 2 − ∂ 2 U ( x , t ) ∂ t 2 = 0 , 0 < x < L , t > 0 , c , L ∈ ℝ + , (2)

which is a special case of (1). We consider that (2) satisfies the following boundary (BCs) and initial conditions (ICs)

BCs ( U ( 0 , t ) = 0 U ( L , t ) = 0 , t > 0 (3)

ICs ( U ( x , 0 ) = f ( x ) ∂ U ( x , 0 ) ∂ t = g ( x ) , 0 ≤ x ≤ L . (4)

and we give the numerical schemes for the methods CTCS, Crank-Nicolson, ω and characteristics. For each of the methods CTCS, Crank-Nicolson and ω we use second order forward, centered and backward differences to approximate the initial derivative condition. In Section 4 we use the methods mentioned in Section 3 to solve an IBVP for (2) for different values of c ( c = 0.2 , 1 , 2 ). Firstly, we investigate which of the forward, centered and backward differences give better results from numerical aspect. Secondly, we compare the methods mentioned previously taking into consideration the accuracy of the numerical results and the machine time needed for the calculations. In Section 5 we summarize the results of the present work.

Finally, we note that the algorithms of the numerical methods presented in the current paper were written in Fortran 95 and were tested on a 32-bit processor Intel Celeron E1200, 1.60 GHz with 3 GB RAM. A “slow” processor was chosen intentionally to distinguish time consuming methods.

Consider the hyperbolic PDE (1). It is well-known [

A ( d y d x ) 2 − B ( d y d x ) + C = 0. (5)

Let us denote by ξ = d y d x the slope at every point of the first characteristic curve through a point P ( x , y ) of the solution domain (which is said to be a ξ-characteristic) and by η = d y d x the slope at every point of the other characteristic through the point P (η-characteristic).We also assume that along an initial curve, say φ, (non characteristic) U, p = ∂ U ∂ x and q = ∂ U ∂ y are known.

Let Q ( x Q , y Q ) , R ( x R , y R ) be points on φ and let us denote by P ( x P , y P ) the intersection point of the ξ-characteristic through Q and the η-characteristic through R (see

( y P − y Q = ξ Q ( x P − x Q ) , y P − y R = η R ( x P − x R ) . (6)

Then, we calculate approximation values for p and q at P by the equations

( A Q ξ Q ( p P − p Q ) + C Q ( q P − q Q ) + D Q ( y P − y Q ) = 0, A R η R ( p P − p R ) + C R ( q P − q R ) + D R ( y P − y R ) = 0. (7)

Finally, to obtain an approximation value for U at P we can use the following approximation

U P = U Q + p Q ( x P − x Q ) + q Q ( y P − y Q ) . (8)

An improved approximation to U P is obtained by averaging the values of p and q at the points P, Q and P, R respectively and is given by the equation

U P = U Q + 1 2 ( p Q + p P ) ( x P − x Q ) + 1 2 ( q Q + q P ) ( y P − y Q ) . (9)

A similar averaging approach can be used to improve the accuracy of the approximation values of x P , y P , p P and q P computed by the equations (6), (7). Then we can calculate an improved approximation value of U P by the Equation (9). With this way an iteration scheme is developed. The iterations are terminated when the errors from one step to the next are less than a prespecified error tolerance or an upper limit is placed on the number of iterations. Suppose three points are given on the initial curve φ, say Q, R, S, instead of two (see

n ( n − 1 ) 2 points.

Example 2.1. Consider the PDE

∂ 2 U ∂ x 2 + ( 1 − 2 ∂ U ∂ x ) ∂ 2 U ∂ x ∂ y + ( ( ∂ U ∂ x ) 2 − ∂ U ∂ x ) ∂ 2 U ∂ y 2 + 1 4 x 3 = 0. (10)

This has the general form of the PDE (1) with A = 1 , B = 1 − 2 ∂ U ∂ x , C = ( ∂ U ∂ x ) 2 − ∂ U ∂ x and D = 1 4 x 3 . The PDE (10) is hyperbolic since B 2 − 4 A C = 1 > 0 . We consider the initial curve as φ = { ( x , y ) | x ∈ ℝ + , y = 0 }

with U = x − 1 , p = 1 2 x and q = 1 on φ. In view of (5), the slope of the characteristics is given by

d y d x = 1 − ∂ U ∂ x = ξ and d y d x = − ∂ U ∂ x = η . (11)

At first we start with n = 10 points Q i , 1 ≤ i ≤ 10 , on φ with Q 1 ( 0.5,0 ) and a step size of h = 0.1 . Hence a grid of 45 points is created. The calculation of the approximation value for U at a grid point is terminated when

| U ( r ) − U ( r − 1 ) U ( r ) | ⋅ 100 ≤ 1 2 10 − 3 (where U ( r ) is the approximation value for U at the point after r iterations) or when the number of iterations exceeds 100. The machine time needed for the calculation of x, y, U, p and q at 45 grid points is less than 0.01s. The actual solution of (10) with the given initial conditions is U ( x , y ) = x + y − 1 . Hence in view of (11) we see that the characteristics are given as y ( x ) = x − x + c 1 and y ( x ) = − x + c 2 , c 1 , c 2 ∈ ℝ and the grid that they form is shown in

Points on φ | x | y | U | p | q | r | e |
---|---|---|---|---|---|---|---|

(0.50, 0), (0.60, 0) | 0.56753734 | 0.02124904 | −0.22535345 | 0.66364004 | 1.00022892 | 5 | 0.02212982% |

(0.60, 0), (0.70, 0) | 0.66209020 | 0.02297473 | −0.16331189 | 0.61445905 | 1.00010789 | 5 | 0.01719141% |

... | ... | ... | ... | ... | ... | ... | ... |

(1.20, 0), (1.30, 0) | 1.24473492 | 0.02450144 | 0.14018015 | 0.44815906 | 1.00000906 | 4 | 0.00337138% |

(1.30, 0), (1.40, 0) | 1.34304443 | 0.02432066 | 0.18321994 | 0.43144511 | 1.00000707 | 4 | 0.00217536% |

(0.50, 0), (0.70, 0) | 0.62962457 | 0.04317622 | −0.16325993 | 0.63002662 | 1.00034125 | 4 | 0.04900196% |

... | ... | ... | ... | ... | ... | ... | ... |

(1.20, 0), (1.40, 0) | 1.28777931 | 0.04841766 | 0.18322483 | 0.44060574 | 1.00001576 | 4 | 0.00484438% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.50, 0), (1.30, 0) | 0.93314793 | 0.17418945 | 0.14032112 | 0.51740523 | 1.00047707 | 4 | 0.10393566% |

(0.60, 0), (1.40, 0) | 1.00868095 | 0.17889873 | 0.18331277 | 0.49774851 | 1.00025857 | 4 | 0.05283959% |

(0.50, 0), (1.40, 0) | 0.97618298 | 0.19520636 | 0.18336621 | 0.50586075 | 1.00047837 | 4 | 0.08201072% |

As we can see for smaller step size the number of iterations as well as the error e at same grid points are decreased.

Example 2.2. Consider the PDE

∂ 2 U ∂ x 2 − U 2 ∂ 2 U ∂ y 2 = 0.

The above PDE is quasilinear and is hyperbolic away from U = 0 . We consider the initial curve as φ = { ( x , y ) | 0 ≤ x ≤ 1 , y = 0 } with U = 0.2 + 5 x 2 , p = 10 x and q = 3 x along φ. The slope of the characteristics is given by d y d x = U = ξ and d y d x = − U = η . As in the previous example, we use two different step sizes of h = 0.1 and h = 0.01 with starting point Q 1 ( 0.1,0 ) and the same stopping criteria. The number of initial points taken on φ is n = 10 and n = 91 , respectively. In the first case the grid consists of 45 points and in the second of 4095 points.

Even though the number of iterations is smaller by decreasing the step size, there is no significant difference between the errors, approximately 1/10 of the corresponding error of the first case.

Points on φ | x | y | U | p | q | r | e |
---|---|---|---|---|---|---|---|

(0.50, 0), (0.52, 0) | 0.51400398 | 0.00416958 | −0.27888924 | 0.69740716 | 1.00000249 | 3 | 0.00018142% |

(0.52, 0), (0.54, 0) | 0.53373711 | 0.00427382 | −0.26515264 | 0.68439369 | 1.00000208 | 3 | 0.00016606% |

... | ... | ... | ... | ... | ... | ... | ... |

(1.36, 0), (1.38, 0) | 1.36854366 | 0.00488632 | 0.17473404 | 0.42740607 | 1.00000006 | 3 | 0.00001743% |

(1.38, 0), (1.40, 0) | 1.38848197 | 0.00487733 | 0.18321599 | 0.42432624 | 1.00000005 | 3 | 0.00001612% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.50, 0), (0.60, 0) | 0.56749183 | 0.02127627 | −0.22540130 | 0.66372561 | 1.00000932 | 3 | 0.00090305% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.60, 0), (0.70, 0) | 0.66206445 | 0.02298676 | −0.16333883 | 0.61449609 | 1.00000437 | 3 | 0.00069857% |

... | ... | ... | ... | ... | ... | ... | ... |

(1.20, 0), (1.30, 0) | 1.24473050 | 0.02450064 | 0.14017562 | 0.44815925 | 1.00000036 | 3 | 0.00013554% |

... | ... | ... | ... | ... | ... | ... | ... |

(1.30, 0), (1.40, 0) | 1.34304069 | 0.02431974 | 0.18321612 | 0.43144501 | 1.00000028 | 3 | 0.00008739% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.50, 0), (1.30, 0) | 0.93307188 | 0.17421938 | 0.14018133 | 0.51761377 | 1.00001930 | 3 | 0.00420993% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.60, 0), (1.40, 0) | 1.00862179 | 0.17891488 | 0.18321986 | 0.49785454 | 1.00001043 | 3 | 0.00213246% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.50, 0), (1.38, 0) | 0.96763029 | 0.19105243 | 0.17474006 | 0.50828622 | 1.00001935 | 3 | 0.00346243% |

(0.52, 0), (1.40, 0) | 0.98210863 | 0.19220248 | 0.18322149 | 0.50452677 | 1.00001695 | 3 | 0.00301873% |

(0.50, 0), (1.40, 0) | 0.97611219 | 0.19523248 | 0.18322204 | 0.50607295 | 1.00001935 | 3 | 0.00332074% |

Points on φ | x | y | U | p | q | r | e |
---|---|---|---|---|---|---|---|

(0.10, 0), (0.20, 0) | 0.15565676 | 0.01636097 | 0.33792386 | 1.49699924 | 1.95370626 | 4 | 0.00007794% |

(0.20, 0), (0.30, 0) | 0.25577809 | 0.02668067 | 0.55667070 | 2.52872472 | 1.67647100 | 4 | 0.00021855% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.80, 0), (0.90, 0) | 0.85259361 | 0.20427892 | 4.36820566 | 9.09572434 | 2.67778972 | 5 | 0.00007108% |

(0.90, 0), (1.00, 0) | 0.95232895 | 0.25438967 | 5.47272209 | 10.25014226 | 2.95315548 | 5 | 0.00018604% |

(0.10, 0), (0.30, 0) | 0.22206412 | 0.04481244 | 0.51895204 | 1.89753969 | 2.84864639 | 4 | 0.00020284% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.80, 0), (1.00, 0) | 0.90974916 | 0.49298582 | 5.73430056 | 10.38676102 | 2.92878781 | 5 | 0.00015383% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.10, 0), (0.90, 0) | 0.67162608 | 1.05926769 | 5.42151878 | 3.30115686 | 3.82475670 | 6 | 0.00005101% |

(0.20, 0), (1.00, 0) | 0.75997657 | 1.44380251 | 7.23518898 | 6.07472266 | 3.56250295 | 5 | 0.00040948% |

(0.10, 0), (1.00, 0) | 0.74638995 | 1.54425948 | 7.55244635 | 3.69616814 | 3.88405010 | 6 | 0.00006218% |

Points on φ | x | y | U | p | q | r | e |
---|---|---|---|---|---|---|---|

(0.10, 0), (0.11, 0) | 0.10505137 | 0.00127725 | 0.25570387 | 1.05331944 | 0.51084533 | 3 | 0.00001381% |

(0.11, 0), (0.12, 0) | 0.11505394 | 0.00133239 | 0.26676919 | 1.15345945 | 0.53274990 | 3 | 0.00001669% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.98, 0), (0.99, 0) | 0.98502419 | 0.02544421 | 5.12667661 | 9.92610038 | 2.96489591 | 3 | 0.00004564% |

(0.99, 0), (1.00, 0) | 0.99502397 | 0.02594486 | 5.22793456 | 10.02760475 | 2.99470565 | 3 | 0.00004836% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.10, 0), (0.20, 0) | 0.15581730 | 0.01622768 | 0.34152684 | 1.48727809 | 2.00839191 | 3 | 0.00004561% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.20, 0), (0.30, 0) | 0.25592568 | 0.02653642 | 0.56032966 | 2.51670474 | 1.71017403 | 3 | 0.00003429% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.80, 0), (0.90, 0) | 0.85271915 | 0.20374804 | 4.36984923 | 9.08156057 | 2.68101493 | 3 | 0.00002173% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.90, 0), (1.00, 0) | 0.95245444 | 0.25368064 | 5.47376149 | 10.23404159 | 2.95606782 | 3 | 0.00004482% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.10, 0), (0.90, 0) | 0.67246944 | 1.05574970 | 5.42447416 | 3.12098463 | 3.86069530 | 3 | 0.00016360% |

... | ... | ... | ... | ... | ... | ... | ... |

(0.20, 0), (1.00, 0) | 0.76093717 | 1.43784349 | 7.23484790 | 5.87000190 | 3.59376186 | 3 | 0.00011402% |

⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

(0.10, 0), (0.99, 0) | 0.73994271 | 1.48214172 | 7.30237139 | 3.43940264 | 3.91095979 | 3 | 0.00017141% |

(0.11, 0), (1.00, 0) | 0.74882941 | 1.52703854 | 7.50921740 | 3.75179139 | 3.88112412 | 3 | 0.00016465% |

(0.10, 0), (1.00, 0) | 0.74741967 | 1.53765015 | 7.54550489 | 3.48300661 | 3.91683165 | 3 | 0.00017223% |

Consider the IBVP (2)-(4). Approximating ∂ 2 U ∂ x 2 and ∂ 2 U ∂ t 2 by various divided differences formulae, a number of difference schemes is created and some of them are presented below. Before doing that, we need to discretize the space of solutions. Let h > 0 be an increment in x and k > 0 be an increment in t. The grid in xt-plane on which a numerical solution is to be computed is given as ( x i , t j ) = ( i h , j k ) , with i = 0 , 1 , ⋯ , n , j = 0 , 1 , ⋯ , m . The x step size is h = L n and the time step is k. We denote by U i , j the value of U at the grid point ( i h , j k ) and by u i , j the approximation value for U i , j . We also denote by f i and g i the values of f ( x i ) = f ( i h ) and g ( i h ) , respectively.

We approximate ∂ 2 U ∂ x 2 and ∂ 2 U ∂ t 2 by centered second order divided differences in x and t, respectively. This yields

c 2 u i + 1 , j − 2 u i , j + u i − 1 , j h 2 = u i , j + 1 − 2 u i , j + u i , j − 1 k 2 . (12)

We put r = ( c k h ) 2 and express (12) as

u i , j + 1 = r u i − 1 , j + ( 2 − 2 r ) u i , j + r u i + 1 , j − u i , j − 1 . (13)

Putting j = 0 in (13) yields

u i , 1 = r u i − 1 , 0 + ( 2 − 2 r ) u i , 0 + r u i + 1 , 0 − u i , − 1 (14)

and approximating the initial derivative condition by a centered second order divided difference in t gives

g i = u i , 1 − u i , − 1 2 k . (15)

Eliminating u i , − 1 between (14), (15), the values u i ,1 can be computed from the equation

u i , 1 = 1 2 ( r u i − 1 , 0 + ( 2 − 2 r ) u i , 0 + r u i + 1 , 0 + 2 k g i ) . (16)

In view of (14), Equation (16) is expressed as

u i , 1 = 1 2 ( r f i − 1 + ( 2 − 2 r ) f i + r f i + 1 + 2 k g i ) . (17)

After calculating the values u i ,1 from (17), we continue with the scheme (13) for j ≥ 1 . We consider also two alternative ways of calculating the values u i ,1 . We do this by approximating the initial derivative condition by a backward and forward second order divided differences in t. By Taylor’s expansion of U with respect to t about the point ( i h , − k ) and solving for ( ∂ U ∂ t ) i ,0 the result

( ∂ U ∂ t ) i ,0 = U i ,0 − U i , − 1 k + 1 2 k ( ∂ 2 U ∂ t 2 ) i ,0 + O (k2)

is obtained, which in view of (2) and (4) becomes (provided f is smooth enough)

( ∂ U ∂ t ) i ,0 = U i ,0 − U i , − 1 k + 1 2 k c 2 f ″ i + O ( k 2 ) .

So, the initial derivative condition can be approximated by a backward second order divided difference formula

g i = u i ,0 − u i , − 1 k + 1 2 k c 2 f ″ i . (18)

Eliminating u i , − 1 between (14), (18) and considering (4) gives

u i , 1 = r f i − 1 + ( 1 − 2 r ) f i + r f i + 1 + k g i − 1 2 k 2 c 2 f ″ i .

Similarly, expanding U about the point ( i h , k ) in a Taylor series with respect to t, the initial derivative condition can be approximated by a forward second order divided difference formula

g i = u i , 1 − u i , 0 k − 1 2 k c 2 f ″ i .

Solving for u i ,1 and considering (4) we get

u i , 1 = f i + k g i + 1 2 k 2 c 2 f ″ i .

To summarise, the CTCS numerical scheme can be given as

Expanding (13) by Taylor’s theorem about the point ( i h , j k ) , j ≥ 1 , and considering (2), the truncation error T i , j is found to be

T i , j = 1 12 c 2 h 2 ( 1 − r ) ( ∂ 4 U ∂ x 4 ) i , j + 2 6 ! c 2 h 4 ( 1 − r 2 ) ( ∂ 6 U ∂ x 6 ) i , j + O ( h 6 + k 6 ) (23)

We notice that for r = 1 the truncation error vanishes completely. As h , k → 0 (with r constant), T i , j → 0 , so the difference scheme (13) is consistent with the wave Equation (2). The CTCS method is also stable for r ≤ 1 , [

The Crank-Nicolson scheme is obtained by approximating ∂ 2 U ∂ t 2 by a centered second order divided difference in t and ∂ 2 U ∂ x 2 by the mean of centered second order divided difference in x evaluated at the jth and (j + 1)th time levels. The difference scheme is given as

u i , j + 1 − 2 u i , j + u i , j − 1 k 2 = 1 2 c 2 ( u i + 1 , j + 1 − 2 u i , j + 1 + u i − 1 , j + 1 h 2 + u i + 1 , j − 2 u i , j + u i − 1 , j h 2 ) (24)

As with the CTCS method, the Crank-Nicolson can be written as

The truncation error at the point ( i h , j k ) , j ≥ 1 is defined by

T i , j = c 2 2 ( U i + 1 , j + 1 − 2 U i , j + 1 + U i − 1 , j + 1 h 2 + U i + 1 , j − 2 U i , j + U i − 1 , j h 2 ) − U i , j + 1 − 2 U i , j + U i , j − 1 k 2 (29)

Expansion of the terms U i + 1, j + 1 , U i − 1, j + 1 about the point ( i h , ( j + 1 ) k ) and the terms U i + 1, j , U i − 1, j , U i , j + 1 , U i , j − 1 about the point ( i h , j k ) by Taylors series and substitution into (29) leads to

T i , j = c 2 ∑ ν = 1 3 h 2 ( ν − 1 ) ( 2 ν ) ! ( ∂ 2 ν U ∂ x 2 ν ) i , j + 1 + c 2 ∑ ν = 1 3 h 2 ( ν − 1 ) ( 2 ν ) ! ( ∂ 2 ν U ∂ x 2 ν ) i , j − ∑ ν = 1 3 2 k 2 ( ν − 1 ) ( 2 ν ) ! ( ∂ 2 ν U ∂ t 2 ν ) i , j + O ( h 6 + k 6 )

Expansion of the terms ( ∂ 2 ν U ∂ x 2 ν ) i , j + 1 , for ν = 1 , 2 , 3 , about the point ( i h , j k ) and substitution into the expression for T i , j then gives

T i , j = c 2 2 ∑ ν = 0 4 k ν ν ! ∂ ν ∂ t ν ( ∂ 2 U ∂ x 2 ) i , j + c 2 h 2 24 ∑ ν = 0 4 k ν ν ! ∂ ν ∂ t ν ( ∂ 4 U ∂ x 4 ) i , j + c 2 h 4 6 ! ∑ ν = 0 4 k ν ν ! ∂ ν ∂ t ν ( ∂ 6 U ∂ x 6 ) i , j + c 2 ∑ ν = 1 3 h 2 ( ν − 1 ) ( 2 ν ) ! ( ∂ 2 ν U ∂ x 2 ν ) i , j − ∑ ν = 1 3 2 k 2 ( ν − 1 ) ( 2 ν ) ! ( ∂ 2 ν U ∂ t 2 ν ) i , j + O ( k 5 + h 2 k 5 + h 4 k 5 + h 6 )

Finally, taking into consideration (2), T i , j can be written as

T i , j = 1 12 c 2 h 2 ( 1 + 2 r ) ( ∂ 4 U ∂ x 4 ) i , j + 1 2 k ( ∂ 3 U ∂ t 3 ) i , j + O ( h 3 + k 3 + h 2 k + h 4 k ) . (30)

As h , k → 0 (with r constant), T i , j → 0 , so the scheme (24) is consistent with the wave equation (2). To determine the von Neumann stability condition for the scheme, we insert u i , j = ξ i e i β j h ( ξ ∈ ℂ , i = − 1 , β ≥ 0 ) into (24) and after some simplification we obtain the quadratic equation A ξ 2 + ( A − 3 ) ξ + 1 = 0 , where A = 2 r s i n 2 ( β h / 2 ) + 1 ≥ 1 , r = ( c k / h ) 2 . Hence, the values of ξ are ξ 1 , 2 = ( − A + 3 ± ( A − 1 ) ( A − 9 ) ) / 2 A . If A ≥ 9 , then r s i n 2 ( β h / 2 ) ≥ 4 which gives no useful result for r. When A < 9 , i.e., r sin 2 ( β h / 2 ) < 4 , which is true for r < 4 , the two roots are complex conjugates and the squared modulus of ξ 1,2 satisfy | ξ 1,2 | 2 ≤ 1 / A ≤ 1 . Thus a necessary condition for von Neumann stability is r < 4 .

The ω scheme is obtained by approximating ∂ 2 U ∂ t 2 by a centered second order divided difference in t and ∂ 2 U ∂ x 2 by a weighted average of centered divided difference in x evaluated at the (j − 1)th, jth and (j + 1)th time levels, with the nonnegative weights ω, 1 − 2 ω , and ω ( 0 ≤ ω ≤ 1 2 ), respectively. The ω scheme is given as

u i , j + 1 − 2 u i , j + u i , j − 1 k 2 = c 2 [ ω u i + 1 , j − 1 − 2 u i , j − 1 + u i − 1 , j − 1 h 2 + ( 1 − 2 ω ) u i + 1 , j − 2 u i , j + u i − 1 , j h 2 + ω u i + 1 , j + 1 − 2 u i , j + 1 + u i − 1 , j + 1 h 2 ] (31)

We note that for ω = 0 the ω scheme coincide with the CTCS scheme. Similarly, the ω scheme can be written as

The truncation error at the point ( i h , j k ) , j ≥ 1 is given by

T i , j = 1 12 c 2 h 2 ( 1 − r + 12 ω r ) ( ∂ 4 U ∂ x 4 ) i , j + 2 6 ! c 2 h 4 ( 1 − r 2 + 30 ω ( r 2 + r ) ) ( ∂ 6 U ∂ x 6 ) i , j + O ( k 5 + h 6 + h 2 k 4 ) (36)

As h , k → 0 (with r constant), the truncation error tends to zero, so the scheme (24) is consistent with the wave Equation (2). If 0 ≤ ω < 1 4 the scheme is von Neumann stable for r ≤ 1 1 − 4 ω . For 1 4 ≤ ω ≤ 1 2 the scheme is unconditionally von Neumann stable.

Equation (2) has the form of the PDE (1) and is hyperbolic. The initial curve is φ = { ( x , t ) | 0 ≤ x ≤ L , t = 0 } with U = f , p = f ′ (provided f is smooth enough) and q = ∂ U ∂ t = g on φ. In view of (5), the slope of the characteristics is given by

d t d x = 1 c = ξ and d t d x = − 1 c = η .

and therefore the characteristics are

t ( x ) = 1 c x + c 1 and t ( x ) = − 1 c x + c 2 , c 1 , c 2 ∈ ℝ . (37)

Let P ( x P , t P ) be a point in the xt-plane. Then the ξ,η-characteristics through P are given by

t ( x ) = 1 c ( x − x P ) + t P and t ( x ) = − 1 c ( x − x P ) + t P , (38)

respectively. Hence, the grid of points is always inside the triangle defined by the lines t = 0 , t ( x ) = 1 c x and t ( x ) = − 1 c ( x − L ) no matter how many initial points are considered along φ. However, we will see in the next section that approximation values for U can be calculated at any point P ( x P , t P ) , 0 ≤ x P ≤ L , t ≥ 0 . We also notice that we can have only one iteration of the scheme due to the fact that the coefficients of (2) and the slope of characteristics are constants. Therefore, in view of (6), (7), and (9), the scheme takes the form

( t P − t Q = 1 c ( x P − x Q ) ( 39 ) t P − t R = − 1 c ( x P − x R ) (40)

( c ( p P − p Q ) − ( q P − q Q ) = 0 ( 41 ) c ( p P − p R ) + ( q P − q R ) = 0 (42)

U P = U Q + 1 2 ( p Q + p P ) ( x P − x Q ) + 1 2 ( q Q + q P ) ( t P − t Q ) (43)

Finally, it is easy to verify that the solutions of (39)-(42) give also the true values of x P , t P and p P , q P , respectively.

Consider the wave Equation (2) with L = 1 , f ( x ) = sin ( π x ) and g ( x ) = 0 . The analytical solution of (2) satisfying these conditions is

U ( x , t ) = s i n ( π x ) c o s ( c π t ) . (44)

In the following, we apply the methods discussed in the previous section for c = 2 , 1 , 0.2 . We also mention that the implicit schemes Crank-Nicolson and ω lead to tridiagonal systems of equations, which we solve by the method of Gauss-Seidel [

We apply these schemes for different x-step sizes and time steps. For each step size and time step we run the schemes three times considering the center, backward and forward approximation for the 1^{st} time level in order to examine which one produce better results. In the following Tables by Error we mean the absolute percent relative error for U (or the absolute percent error if | U | ≤ 10 − 7 ).

Studying

T i , 0 c d = r ( U i − 1 , 0 + U i + 1 , 0 ) + ( 2 − 2 r ) U i , 0 + 2 k ( ∂ U ∂ t ) i , 0 − 2 U i , 1 . (45)

Expansion of the terms U i − 1,0 , U i + 1,0 , U i ,1 about the point ( i h ,0 ) by Taylors series and substitution into (45) gives

T i , 0 c d = r [ ∑ ν = 0 3 2 h 2 ν ( 2 ν ) ! ( ∂ 2 ν U ∂ x 2 ν ) i , 0 ] + ( 2 − 2 r ) U i , 0 + 2 k ( ∂ U ∂ t ) i , 0 − 2 [ ∑ ν = 0 6 k ν ν ! ( ∂ ν U ∂ t ν ) i , 0 ] + O ( h 8 + k 7 ) .

In view of (2), and few algebraic steps lead to an expression for T i ,0 c d

c = 2 | |||||||
---|---|---|---|---|---|---|---|

Analytical Solution | Approximate Solution | Error | |||||

FD | CD | BD | FD | CD | BD | ||

x = 0.2 | h = 0.1 , k = 0.05 , r = 1 , n = 10 , m = 20 , Number of Grid Points = 200 | ||||||

t = 0.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.47552826 | 0.47507598 | 0.47552826 | 0.47598055 | 0.095113% | 0.000000% | 0.095113% |

t = 0.2 | 0.18163562 | 0.18090380 | 0.18163562 | 0.18236743 | 0.402904% | 0.000000% | 0.402904% |

t = 0.3 | −0.18163567 | −0.18236748 | −0.18163567 | −0.18090385 | 0.402904% | 0.000000% | 0.402904% |

t = 0.4 | −0.47552829 | −0.47598058 | −0.47552829 | −0.47507601 | 0.095113% | 0.000000% | 0.095113% |

t = 0.7 | −0.18163557 | −0.18090385 | −0.18163567 | −0.18236748 | 0.402850% | 0.000054% | 0.402958% |

t = 0.8 | 0.18163571 | 0.18236743 | 0.18163562 | 0.18090380 | 0.402850% | 0.000054% | 0.402957% |

t = 1.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

h = 0.1 , k = 0.001 , r = 4 × 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.47552826 | 0.47640902 | 0.47641793 | 0.47642683 | 0.185217% | 0.187090% | 0.188962% |

t = 0.2 | 0.18163562 | 0.18450289 | 0.18451732 | 0.18453175 | 1.578586% | 1.586531% | 1.594477% |

t = 0.3 | −0.18163567 | −0.17731856 | −0.17730406 | −0.17728957 | 2.376796% | 2.384775% | 2.392754% |

t = 0.4 | −0.47552829 | −0.47194709 | −0.47193802 | −0.47192896 | 0.753101% | 0.755006% | 0.756912% |

t = 0.7 | −0.18163557 | −0.19168562 | −0.19169999 | −0.19171436 | 5.533084% | 5.540995% | 5.548906% |

t = 0.8 | 0.18163571 | 0.17007575 | 0.17006120 | 0.17004665 | 6.364366% | 6.372376% | 6.380387% |

t = 1.0 | 0.58778527 | 0.58759009 | 0.58758969 | 0.58758930 | 0.033206% | 0.033273% | 0.033340% |

h = 0.01 , k = 0.005 , r = 1 , n = 100 , m = 200 , Number of Grid Points = 20,000 | |||||||

t = 0.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.47552826 | 0.47552782 | 0.47552826 | 0.47552871 | 0.000094% | 0.000000% | 0.000094% |

t = 0.2 | 0.18163562 | 0.18163489 | 0.18163562 | 0.18163634 | 0.000398% | 0.000000% | 0.000398% |

t = 0.3 | −0.18163567 | −0.18163639 | −0.18163567 | −0.18163494 | 0.000398% | 0.000000% | 0.000398% |

t = 0.4 | −0.47552829 | −0.47552874 | −0.47552829 | −0.47552785 | 0.000094% | 0.000000% | 0.000094% |

t = 0.7 | −0.18163557 | −0.18163494 | −0.18163567 | −0.18163639 | 0.000344% | 0.000054% | 0.000451% |

t = 0.8 | 0.18163571 | 0.18163634 | 0.18163562 | 0.18163489 | 0.000344% | 0.000054% | 0.000451% |

t = 1.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.0 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.47552826 | 0.47553674 | 0.47553683 | 0.47553692 | 0.001783% | 0.001802% | 0.001821% |

t = 0.2 | 0.18163562 | 0.18166320 | 0.18166335 | 0.18166349 | 0.015189% | 0.015268% | 0.015348% |

t = 0.3 | −0.18163567 | −0.18159421 | −0.18159407 | −0.18159392 | 0.022823% | 0.022903% | 0.022982% |

t = 0.4 | −0.47552829 | −0.47549407 | −0.47549398 | −0.47549389 | 0.007196% | 0.007215% | 0.007234% |

t = 0.7 | −0.18163557 | −0.18173259 | −0.18173273 | −0.18173288 | 0.053416% | 0.053495% | 0.053575% |

t = 0.8 | 0.18163571 | 0.18152483 | 0.18152468 | 0.18152454 | 0.061050% | 0.061130% | 0.061209% |
---|---|---|---|---|---|---|---|

t = 1.0 | 0.58778527 | 0.58778525 | 0.58778525 | 0.58778525 | 0.000003% | 0.000003% | 0.000003% |

c = 1 | |||||||

x = 0.3 | h = 0.1 , k = 0.1 , r = 1 , n = 10 , m = 10 , Number of Grid Points = 100 | ||||||

t = 0.0 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.76942090 | 0.76909362 | 0.76942090 | 0.76974818 | 0.042536% | 0.000000% | 0.042536% |

t = 0.3 | 0.47552825 | 0.47467142 | 0.47552825 | 0.47638508 | 0.180184% | 0.000000% | 0.180184% |

t = 0.4 | 0.24999998 | 0.24899272 | 0.24999998 | 0.25100724 | 0.402904% | 0.000000% | 0.402904% |

t = 0.5 | −0.00000004 | −0.00105913 | −0.00000004 | 0.00105906 | 0.105910% | 0.000000% | 0.105910% |

t = 0.6 | −0.25000005 | −0.25100730 | −0.25000005 | −0.24899279 | 0.402904% | 0.000000% | 0.402904% |

t = 0.7 | −0.47552831 | −0.47638513 | −0.47552831 | −0.47467148 | 0.180184% | 0.000000% | 0.180184% |

t = 1.0 | −0.80901701 | −0.80901696 | −0.80901696 | −0.80901696 | 0.000006% | 0.000006% | 0.000006% |

h = 0.1 , k = 0.001 , r = 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.0 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.76942090 | 0.76973959 | 0.76974281 | 0.76974603 | 0.041420% | 0.041838% | 0.042257% |

t = 0.3 | 0.47552825 | 0.47804960 | 0.47805804 | 0.47806648 | 0.530221% | 0.531995% | 0.533770% |

t = 0.4 | 0.24999998 | 0.25395755 | 0.25396748 | 0.25397741 | 1.583029% | 1.587002% | 1.590975% |

t = 0.5 | −0.00000004 | 0.00520847 | 0.00521893 | 0.00522939 | 0.520850% | 0.521897% | 0.522943% |

t = 0.6 | −0.25000005 | −0.24404630 | −0.24403633 | −0.24402636 | 2.381497% | 2.385486% | 2.389475% |

t = 0.7 | −0.47552831 | −0.46960632 | −0.46959780 | −0.46958928 | 1.245349% | 1.247141% | 1.248932% |

t = 1.0 | −0.80901701 | −0.80894974 | −0.80894961 | −0.80894947 | 0.008315% | 0.008331% | 0.008348% |

h = 0.01 , k = 0.01 , r = 1 , n = 100 , m = 100 , Number of Grid Points = 10,000 | |||||||

t = 0.0 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.80861781 | 0.80861778 | 0.80861781 | 0.80861784 | 0.000004% | 0.000000% | 0.000004% |

t = 0.3 | 0.76942090 | 0.76942057 | 0.76942090 | 0.76942122 | 0.000042% | 0.000000% | 0.000042% |

t = 0.4 | 0.47552825 | 0.47552740 | 0.47552825 | 0.47552910 | 0.000178% | 0.000000% | 0.000178% |

t = 0.5 | 0.24999998 | 0.24999898 | 0.24999998 | 0.25000097 | 0.000398% | 0.000000% | 0.000398% |

t = 0.6 | −0.00000004 | −0.00000108 | −0.00000004 | 0.00000101 | 0.000105% | 0.000000% | 0.000105% |

t = 0.7 | −0.25000005 | −0.25000104 | −0.25000005 | −0.24999905 | 0.000398% | 0.000000% | 0.000398% |

t = 1.0 | −0.47552831 | −0.47552915 | −0.47552831 | −0.47552746 | 0.000178% | 0.000000% | 0.000178% |

t = 0.0 | −0.80901701 | −0.80901696 | −0.80901696 | −0.80901696 | 0.000006% | 0.000006% | 0.000006% |

h = 0.01 , k = 0.001 , r = 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.0 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.76942090 | 0.76942406 | 0.76942409 | 0.76942413 | 0.000411% | 0.000416% | 0.000420% |

t = 0.3 | 0.47552825 | 0.47555328 | 0.47555336 | 0.47555345 | 0.005263% | 0.005281% | 0.005299% |

t = 0.4 | 0.24999998 | 0.25003924 | 0.25003934 | 0.25003944 | 0.015705% | 0.015745% | 0.015785% |

t = 0.5 | −0.00000004 | 0.00005160 | 0.00005170 | 0.00005181 | 0.005163% | 0.005174% | 0.005184% |

t = 0.6 | −0.25000005 | −0.24994110 | −0.24994100 | −0.24994090 | 0.023579% | 0.023618% | 0.023658% |
---|---|---|---|---|---|---|---|

t = 0.7 | −0.47552831 | −0.47546976 | −0.47546968 | −0.47546959 | 0.012311% | 0.012329% | 0.012347% |

t = 1.0 | −0.80901701 | −0.80901696 | −0.80901696 | −0.80901696 | 0.000007% | 0.000007% | 0.000007% |

c = 0.2 | |||||||

x = 0.4 | h = 0.1 , k = 0.001 , r = 4 × 10 − 6 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | ||||||

t = 0.0 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.3 | 0.93421070 | 0.93434793 | 0.93434839 | 0.93434885 | 0.014690% | 0.014739% | 0.014788% |

t = 0.5 | 0.90450850 | 0.90488621 | 0.90488697 | 0.90488773 | 0.041758% | 0.041842% | 0.041926% |

t = 0.7 | 0.86054167 | 0.86127073 | 0.86127177 | 0.86127282 | 0.084721% | 0.084842% | 0.084964% |

t = 1.0 | 0.76942088 | 0.77085951 | 0.77086095 | 0.77086239 | 0.186976% | 0.187163% | 0.187350% |

h = 0.01 , k = 0.05 , r = 1 , n = 100 , m = 20 , Number of Grid Points = 2000 | |||||||

t = 0.0 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.3 | 0.93421070 | 0.93421047 | 0.93421070 | 0.93421093 | 0.000025% | 0.000000% | 0.000025% |

t = 0.5 | 0.90450850 | 0.90450813 | 0.90450850 | 0.90450888 | 0.000042% | 0.000000% | 0.000042% |

t = 0.7 | 0.86054167 | 0.86054115 | 0.86054167 | 0.86054219 | 0.000061% | 0.000000% | 0.000061% |

t = 1.0 | 0.76942088 | 0.76942016 | 0.76942088 | 0.76942161 | 0.000094% | 0.000000% | 0.000094% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 4 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.0 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.3 | 0.93421070 | 0.93421208 | 0.93421208 | 0.93421209 | 0.000147% | 0.000148% | 0.000148% |

t = 0.5 | 0.90450850 | 0.90451229 | 0.90451230 | 0.90451231 | 0.000419% | 0.000420% | 0.000420% |

t = 0.7 | 0.86054167 | 0.86054898 | 0.86054899 | 0.86054900 | 0.000850% | 0.000851% | 0.000852% |

t = 1.0 | 0.76942088 | 0.76943531 | 0.76943532 | 0.76943534 | 0.001875% | 0.001876% | 0.001878% |

T i , 0 c d = 1 12 h 4 r ( 1 − r ) ( ∂ 4 U ∂ x 4 ) i , 0 + 2 6 ! h 6 r ( 1 − r 2 ) ( ∂ 6 U ∂ x 6 ) i , 0 − 1 3 k 3 ( ∂ 3 U ∂ t 3 ) i , 0 + O ( h 8 + k 5 ) . (46)

Similarly, the truncation errors at the point ( i h ,0 ) for (20) and (21) are found to be

T i , 0 f d = − 1 3 k 3 ( ∂ 3 U ∂ t 3 ) i , 0 + O ( k 4 ) , (47)

T i , 0 b d = 1 4 ! h 4 r ( 2 − r ) ( ∂ 4 U ∂ x 4 ) i , 0 + 1 6 ! h 6 r ( 2 − r 2 ) ( ∂ 6 U ∂ x 6 ) i , 0 − 1 6 k 3 ( ∂ 3 U ∂ t 3 ) i , 0 + O ( h 8 + k 5 ) , (48)

respectively. We also notice that, according to (44), ∂ k U ( x , 0 ) ∂ t k = 0 , for k = 2 n + 1 ,

n ∈ ℕ . This yields, T i , 0 c d = 0 , T i , 0 f d = O ( k 4 ) and T i , 0 b d = O ( h 4 ) for r = 1 . Thus, in view of (23), T i , j = 0 , for j ≥ 0 , r = 1 and using the centered difference approach. Hence the errors vanish completely. We assume that, initiating the scheme with (20) or (21) introduces an error of order h^{4} and k^{4}, respectively at the 1^{st} time level which affect the rest calculations for j ≥ 1 . To confirm the latter assertion we run the scheme computing the values u i ,1 from (44) and then proceed with (13) for j ≥ 1 . As we can see in

For r < 1 , the forward difference approach gives more accurate results. This is possibly due to the fact that T i ,0 c d and T i ,0 b d are of order h^{4} and T i ,0 f d is of order k^{4} with k < h , usually. We also notice that when U ( i h , j k ) = 0 the error increases considerably at points near to ( i h , j k ) . From (44) we have that for c = 2 , U ( x , 0.25 ) = 0 = U ( x , 0.75 ) and U ( x , 0.5 ) = 0 for c = 1 . The results in

The Crank-Nicolson scheme is not quite as good as the CTCS scheme. Small values of h and k were employed in order to provide adequate numerical

c = 2 | |||
---|---|---|---|

Analytical Solution | Approximate Solution | Error | |

x = 0.2 | h = 0.1 , k = 0.05 , r = 1 , n = 10 , m = 20 | ||

t = 0.00 | 0.58778527 | 0.58778527 | 0.000000% |

t = 0.05 | 0.55901701 | 0.55901701 | 0.000000% |

t = 0.10 | 0.47552826 | 0.47552826 | 0.000000% |

t = 0.20 | 0.18163562 | 0.18163562 | 0.000000% |

t = 0.30 | −0.18163567 | −0.18163567 | 0.000000% |

t = 0.40 | −0.47552829 | −0.47552829 | 0.000000% |

t = 0.50 | −0.58778527 | −0.58778520 | 0.000012% |

t = 0.60 | −0.47552823 | −0.47552821 | 0.000006% |

t = 0.70 | −0.18163557 | −0.18163567 | 0.000054% |

t = 0.80 | 0.18163571 | 0.18163562 | 0.000054% |

t = 0.90 | 0.47552832 | 0.47552826 | 0.000013% |

t = 1.00 | 0.58778527 | 0.58778527 | 0.000000% |

c = 2 | |||||||
---|---|---|---|---|---|---|---|

Analytical Solution | Approximate Solution | Error | |||||

FD | CD | BD | FD | CD | BD | ||

x = 0.2 | h = 0.1 , k = 0.05 , r = 1 , n = 10 , m = 20 , Number of Grid Points = 200 | ||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.55901701 | 0.55877922 | 0.55970419 | 0.56058575 | 0.042536% | 0.122926% | 0.280625% |

t = 1.000 | 0.58778527 | 0.36051918 | 0.36033826 | 0.36016582 | 38.664816% | 38.695596% | 38.724933% |

h = 0.1 , k = 0.001 , r = 4 × 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777376 | 0.58777385 | 0.000000% | 0.000016% | 0.000032% |

t = 1.000 | 0.58778527 | 0.58184235 | 0.58184197 | 0.58184158 | 1.011069% | 1.011135% | 1.011201% |

h = 0.01 , k = 0.005 , r = 1 , n = 100 , m = 200 , Number of Grid Points = 20,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.005 | 0.58749523 | 0.58749521 | 0.58749522 | 0.58749523 | 0.000004% | 0.000001% | 0.000000% |

t = 1.000 | 0.58778527 | 0.55946067 | 0.55946068 | 0.55946069 | 4.818867% | 4.818866% | 4.818864% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777366 | 0.58777366 | 0.000000% | 0.000001% | 0.000000% |

t = 1.000 | 0.58778527 | 0.58201426 | 0.58201426 | 0.58201426 | 0.981822% | 0.981823% | 0.981822% |

c = 1 | |||||||

x = 0.3 | h = 0.1 , k = 0.1 , r = 1 , n = 10 , m = 10 , Number of Grid Points = 100 | ||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.100 | 0.76942090 | 0.76909362 | 0.77036673 | 0.77158027 | 0.042536% | 0.122928% | 0.280649% |

t = 1.000 | −0.80901701 | −0.63430476 | −0.63414648 | −0.63399557 | 21.595621% | 21.615186% | 21.633840% |

h = 0.1 , k = 0.001 , r = 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901305 | 0.80901308 | 0.000000% | 0.000004% | 0.000008% |

t = 0.000 | −0.80901701 | −0.80696433 | −0.80696420 | −0.80696406 | 0.253725% | 0.253741% | 0.253758% |

h = 0.01 , k = 0.01 , r = 1 , n = 100 , m = 100 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.010 | 0.80861781 | 0.80861778 | 0.80861781 | 0.80861784 | 0.000004% | 0.000000% | 0.000004% |

t = 1.000 | −0.80901701 | −0.78922993 | −0.78922993 | −0.78922994 | 2.445818% | 2.445817% | 2.445817% |

h = 0.01 , k = 0.001 , r = 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 |

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |
---|---|---|---|---|---|---|---|

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901302 | 0.80901302 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | −0.80901701 | −0.80701858 | −0.80701858 | −0.80701858 | 0.247020% | 0.247020% | 0.247020% |

c = 0.2 | |||||||

x = 0.4 | h = 0.1 , k = 0.001 , r = 4 × 10 − 6 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | ||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.77087121 | 0.77087265 | 0.77087409 | 0.188496% | 0.188683% | 0.188870% |

h = 0.01 , k = 0.05 , r = 1 , n = 100 , m = 20 , Number of Grid Points = 2000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.95058724 | 0.95058720 | 0.95058725 | 0.95058730 | 0.000004% | 0.000001% | 0.000006% |

t = 1.000 | 0.76942088 | 0.77001501 | 0.77001598 | 0.77001687 | 0.077217% | 0.077343% | 0.077460% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 4 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.76944355 | 0.76944356 | 0.76944357 | 0.002946% | 0.002947% | 0.002948% |

c = 2 | |||||||
---|---|---|---|---|---|---|---|

Analytical Solution | Approximate Solution | Error | |||||

FD | CD | BD | FD | CD | BD | ||

x = 0.2 | h = 0.1 , k = 0.05 , r = 1 , n = 10 , m = 20 , Number of Grid Points = 200 | ||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.55901701 | 0.55877922 | 0.55970419 | 0.56062916 | 0.042536% | 0.122926% | 0.288391% |

t = 1.000 | 0.58778527 | 0.58631380 | 0.58608352 | 0.58585324 | 0.250341% | 0.289518% | 0.328696% |

h = 0.1 , k = 0.001 , r = 4 × 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777376 | 0.58777385 | 0.000000% | 0.000016% | 0.000032% |

t = 1.000 | 0.58778527 | 0.58758962 | 0.58758923 | 0.58758884 | 0.033285% | 0.033352% | 0.033418% |

h = 0.01 , k = 0.005 , r = 1 , n = 100 , m = 200 , Number of Grid Points = 20,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.005 | 0.58749523 | 0.58749521 | 0.58749522 | 0.58749532 | 0.000004% | 0.000001% | 0.000015% |

t = 1.000 | 0.58778527 | 0.58778260 | 0.58778269 | 0.58778287 | 0.000453% | 0.000439% | 0.000407% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 |

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |
---|---|---|---|---|---|---|---|

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777366 | 0.58777366 | 0.000000% | 0.000001% | 0.000001% |

t = 1.000 | 0.58778527 | 0.58778227 | 0.58778226 | 0.58778226 | 0.000511% | 0.000511% | 0.000511% |

c = 1 | |||||||

x = 0.3 | h = 0.1 , k = 0.1 , r = 1 , n = 10 , m = 10 , Number of Grid Points = 100 | ||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.100 | 0.76942090 | 0.76909362 | 0.77036673 | 0.77163985 | 0.042536% | 0.122928% | 0.288392% |

t = 1.000 | −0.80901701 | −0.80858946 | −0.80843087 | −0.80827227 | 0.052848% | 0.072451% | 0.092055% |

h = 0.1 , k = 0.001 , r = 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901305 | 0.80901308 | 0.000000% | 0.000004% | 0.000008% |

t = 1.000 | −0.80901701 | −0.80894970 | −0.80894957 | −0.80894943 | 0.008320% | 0.008336% | 0.008353% |

h = 0.01 , k = 0.01 , r = 1 , n = 100 , m = 100 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.010 | 0.80861781 | 0.80861778 | 0.80861781 | 0.80861794 | 0.000004% | 0.000000% | 0.000017% |

t = 1.000 | −0.80901701 | −0.80899630 | −0.80899638 | −0.80899659 | 0.002560% | 0.002550% | 0.002524% |

h = 0.01 , k = 0.001 , r = 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901302 | 0.80901302 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | −0.80901701 | −0.80901647 | −0.80901647 | −0.80901647 | 0.000067% | 0.000067% | 0.000067% |

c = 0.2 | |||||||

x = 0.4 | h = 0.1 , k = 0.001 , r = 4 × 10 − 6 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | ||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.77085908 | 0.77086052 | 0.77086196 | 0.186920% | 0.187107% | 0.187294% |

h = 0.01 , k = 0.05 , r = 1 , n = 100 , m = 20 , Number of Grid Points = 2000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.95058724 | 0.95058720 | 0.95058725 | 0.95058741 | 0.000004% | 0.000001% | 0.000018% |

t = 1.000 | 0.76942088 | 0.76944331 | 0.76944429 | 0.76944718 | 0.002915% | 0.003042% | 0.003417% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 4 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.76943487 | 0.76943488 | 0.76943490 | 0.001818% | 0.001819% | 0.001821% |

c = 2 | |||||||
---|---|---|---|---|---|---|---|

Analytical Solution | Approximate Solution | Error | |||||

FD | CD | BD | FD | CD | BD | ||

x = 0.2 | h = 0.1 , k = 0.05 , r = 1 , n = 10 , m = 20 , Number of Grid Points = 200 | ||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.55901701 | 0.55877922 | 0.56035906 | 0.56193917 | 0.042536% | 0.240074% | 0.522732% |

t = 1.000 | 0.58778527 | 0.58200532 | 0.58122589 | 0.58044618 | 0.983342% | 1.115947% | 1.248600% |

h = 0.1 , k = 0.001 , r = 4 × 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777376 | 0.58777385 | 0.000000% | 0.000016% | 0.000032% |

t = 0.100 | 0.47552826 | 0.47641108 | 0.47642000 | 0.47642892 | 0.185649% | 0.187525% | 0.189402% |

t = 1.000 | 0.58778527 | 0.58758916 | 0.58758877 | 0.58758838 | 0.033363% | 0.033430% | 0.033497% |

h = 0.01 , k = 0.005 , r = 1 , n = 100 , m = 200 , Number of Grid Points = 20,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.005 | 0.58749523 | 0.58749521 | 0.58749521 | 0.58749537 | 0.000004% | 0.000004% | 0.000025% |

t = 1.000 | 0.58778527 | 0.58777278 | 0.58777285 | 0.58777317 | 0.002124% | 0.002112% | 0.002057% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.58778527 | 0.58778527 | 0.58778527 | 0.58778527 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.58777366 | 0.58777366 | 0.58777366 | 0.58777366 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.58778527 | 0.58778509 | 0.58778508 | 0.58778510 | 0.000030% | 0.000031% | 0.000029% |

c = 1 | |||||||

x = 0.3 | h = 0.1 , k = 0.1 , r = 1 , n = 10 , m = 10 , Number of Grid Points = 100 | ||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.100 | 0.76942090 | 0.76909362 | 0.77126826 | 0.77344309 | 0.042536% | 0.240098% | 0.522756% |

t = 1.000 | −0.80901701 | −0.80729380 | −0.80675574 | −0.80621735 | 0.213001% | 0.279508% | 0.346056% |

h = 0.1 , k = 0.001 , r = 10 − 4 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901305 | 0.80901308 | 0.000000% | 0.000004% | 0.000008% |

t = 1.000 | −0.80901701 | −0.80894966 | −0.80894953 | −0.80894939 | 0.008325% | 0.008342% | 0.008358% |

h = 0.01 , k = 0.01 , r = 1 , n = 100 , m = 100 , Number of Grid Points = 10,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.010 | 0.80861781 | 0.80861778 | 0.80861781 | 0.80861804 | 0.000004% | 0.000000% | 0.000028% |

t = 1.000 | −0.80901701 | −0.80894306 | −0.80894315 | −0.80894348 | 0.009141% | 0.009129% | 0.009089% |

h = 0.01 , k = 0.001 , r = 10 − 2 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.80901701 | 0.80901701 | 0.80901701 | 0.80901701 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.80901302 | 0.80901302 | 0.80901302 | 0.80901302 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | −0.80901701 | −0.80901289 | −0.80901289 | −0.80901289 | 0.000509% | 0.000509% | 0.000509% |

c = 0.2 | |||||||
---|---|---|---|---|---|---|---|

x = 0.4 | h = 0.1 , k = 0.001 , r = 4 × 10 − 6 , n = 10 , m = 1000 , Number of Grid Points = 10,000 | ||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.77085955 | 0.77086099 | 0.77086243 | 0.186980% | 0.187167% | 0.187354% |

h = 0.01 , k = 0.05 , r = 1 , n = 100 , m = 20 , Number of Grid Points = 2000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.050 | 0.95058724 | 0.95058720 | 0.95058726 | 0.95058753 | 0.000004% | 0.000002% | 0.000031% |

t = 1.000 | 0.76942088 | 0.76946569 | 0.76946684 | 0.76947190 | 0.005823% | 0.005973% | 0.006630% |

h = 0.01 , k = 0.001 , r = 4 × 10 − 4 , n = 100 , m = 1000 , Number of Grid Points = 100,000 | |||||||

t = 0.000 | 0.95105653 | 0.95105653 | 0.95105653 | 0.95105653 | 0.000000% | 0.000000% | 0.000000% |

t = 0.001 | 0.95105634 | 0.95105634 | 0.95105634 | 0.95105634 | 0.000000% | 0.000000% | 0.000000% |

t = 1.000 | 0.76942088 | 0.76943170 | 0.76943170 | 0.76943172 | 0.001405% | 0.001406% | 0.001408% |

solutions. However, this is not true for c = 0.2 . Bigger value of h still provides satisfactory results.

As we can see the ω implicit scheme is more accurate than the Crank-Nicolson implicit scheme. A visual inspection of the Figures 6-8 indicates that initiating with CD is preffered only when using the ω-method, ω = 0.5 , for c = 2 , 1 and the method Crank-Nicolson for c = 2 . For the other cases FD give the smallest error.

As was mentioned in section 3.4, the grid of points will always be inside a triangle. A special case which computes approximation values at a specific point outside the triangle is presented by Smith [

U P = 1 2 ( p D 1 + p P ) 0.3 , (49)

where p D 1 , p P can be calculated (as we will see). Obviously, in x P closer to 0.5, the bigger magnitude of the error is observed. In order to improve the level of accuracy we modify the previous method. We start by forming a sequence of points P 1 , P 2 , ⋯ , P ν = P on the segment D 1 P at which we compute approximation values for U. Therefore, a step size of l = 0.1 is employed to approach the point P (decreasing l improves the accuracy). Thus, the sequence P 1 ( 0.1,1 ) , P 2 ( 0.2,1 ) , P 3 ( 0.3 , 1 ) = P is defined. By (43) we get

U P 1 = 1 2 0.1 ( p D 1 + p P 1 ) , (50)

where p D 1 and p P 1 are computed as follows (

2 p P 1 + q P 1 = 2 p A 1 + q A 1 . (51)

The ξ-characteristic through A 1 (Equation (38)) intersects the line x = 0 at A 2 ( 0,0.05 ) and Equation (41) implies

2 p A 1 = 2 p A 2 − q A 2 + q A 1 . (52)

The η-characteristic through A 2 intersects the x axis at A 3 ( 0.1,0 ) and by (42) we get

2 p A 2 = 2 p A 3 + q A 3 − q A 2 . (53)

In view of (52) and (53), Equation (51) is given by

2 p P 1 + q P 1 = 2 p A 3 + q A 3 − 2 q A 2 + 2 q A 1 ,

which, according to the ICs and BCs, can be written as

2 p P 1 + q P 1 = 2 f ′ ( 0.1 ) . (54)

Similarly, initiating with ξ-characteristic through P 1 , we get the sequence B 1 ( 0,0.95 ) , B 2 ( 1,0.45 ) , B 3 ( 0.1,0 ) and by Equations (41), (42) the result

2 p P 1 − q P 1 = 2 f ′ ( 0.1 ) , (55)

is obtained. Hence, approximation values for p and q at P 1 are determined by solving (54), (55). This way p D 1 can also be estimated. Then we proceed with the next point P 2 . Equation (43) yields U P 2 = U P 1 + 1 2 0.1 ( p P 1 + p P 2 ) , where p P 2 is evaluated in a similar way. Finally, this procedure calculates U P 3 . A comparison between the usual method (UM) (Equation (49)) and the modified method (MM) is provided in

The advantage of using the modified method is evident. If the point P ( x P , t P ) lies on the segment D 2 P (i.e., 0.5 < x P ≤ 1 ), we form the sequence of points P 1 , P 2 , ⋯ , P ν on the segment D 2 P in order to reduce the computational effort. This procedure was programmed and used to compute approximation values for U on an orthogonal grid. We also note that in case the point P lies inside the triangle, then U P is calculated by the Equations (39)-(43) because they produce more accurate results. Numerical results are presented in

Among the methods discussed in section 4, the most accurate results are obtained

( x P , t P ) | Analytical Solution | Approximate Solution | Error | ||||
---|---|---|---|---|---|---|---|

UM | MM l = 0.1 | MM l = 0.01 | UM | MM l = 0.1 | MM l = 0.01 | ||

(0.3,1) | 0.80901701 | 0.74822618 | 0.80235214 | 0.80895047 | 7.514159% | 0.823823% | 0.008225% |

(0.4,1) | 0.95105653 | 0.82247964 | 0.94322150 | 0.95097830 | 13.519374% | 0.823823% | 0.008225% |

(0.5,1) | 1.00000000 | 0.78539815 | 0.99176177 | 0.99991775 | 21.460185% | 0.823823% | 0.008225% |

c = 2 x = 0.2 h = 0.01 , l = 0.01 | c = 1 x = 0.3 h = 0.01 , l = 0.01 | c = 0.2 x = 0.4 h = 0.01 , l = 0.01 | ||||
---|---|---|---|---|---|---|

Approximate Solution | Error | Approximate Solution | Error | Approximate Solution | Error | |

t = 0.0 | 0.58778527 | 0.000000% | 0.80901701 | 0.000000% | 0.95105653 | 0.000000% |

t = 0.3 | −0.18162073 | 0.008225% | 0.47548914 | 0.008225% | 0.93420594 | 0.000510% |

t = 0.5 | −0.58773694 | 0.008222% | −0.00000004 | 0.000000% | 0.90450065 | 0.000868% |

t = 0.7 | −0.18162073 | 0.008171% | −0.47548920 | 0.008225% | 0.86053085 | 0.001258% |

t = 1.0 | 0.58773692 | 0.008225% | −0.80895051 | 0.008220% | 0.76940594 | 0.001942% |

with the CTCS method for r = 1 and by approximating the initial derivative condition with centered differences. For r < 1 , the forward difference approximation is preffered with the exception that centered differences are used for the methods ω, ω = 0.5 ( c = 1 , 2 ) and Crank-Nicolson ( c = 2 ). In order to compare the methods, numerical results from

Inspection of

・ The ω method for ω = 0.5 gives the most accurate solutions in most of the cases.

・ The method of characteristics is the second best in precision. However, taking into consideration the machine time, the (modified) method of the

c = 2 | |||||
---|---|---|---|---|---|

CTCS | Crank-Nicolson | ω = 0.25 | ω = 0.5 | Characteristics | |

x = 0.2 | h = 0.01 k = 0.001 Time = 0.031 s | h = 0.01 k = 0.001 Time = 7.57 s | h = 0.01 k = 0.001 Time = 8.42 s | h = 0.01 k = 0.001 Time = 9.08 s | h = 0.01 l = 0.01 Time = 0.53 s |

t = 0.0 | 0.000000% | 0.000000% | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.001783% | 0.015332% | 0.004380% | 0.000227% | 0.008225% |

t = 0.2 | 0.015189% | 0.286670% | 0.034187% | 0.003179% | 0.008225% |

t = 0.3 | 0.022823% | 0.779438% | 0.045864% | 0.004626% | 0.008225% |

t = 0.4 | 0.007196% | 0.509323% | 0.011759% | 0.002712% | 0.008225% |

t = 0.5 | 0.000012% | 0.493089% | 0.003096% | 0.001108% | 0.008222% |

t = 0.6 | 0.010793% | 0.475431% | 0.023022% | 0.002405% | 0.008212% |

t = 0.7 | 0.053416% | 0.196618% | 0.101159% | 0.017031% | 0.008171% |

t = 0.8 | 0.061050% | 1.277865% | 0.112325% | 0.018414% | 0.008279% |

t = 0.9 | 0.016215% | 1.000357% | 0.029848% | 0.004864% | 0.008238% |

t = 1.0 | 0.000003% | 0.981823% | 0.000511% | 0.000031% | 0.008225% |

c = 1 | |||||

x = 0.3 | CTCS | Crank-Nicolson | ω = 0.25 | ω = 0.5 | Characteristics |

Time = 0.031 s | Time = 6.93 s | Time = 8.35 s | Time = 8.42 s | Time = 1.05 s | |

t = 0.0 | 0.000000% | 0.000000% | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.000411% | 0.000929% | 0.000402% | 0.000094% | 0.001942% |

t = 0.2 | 0.001849% | 0.008091% | 0.001809% | 0.000430% | 0.004342% |

t = 0.3 | 0.005263% | 0.035146% | 0.005149% | 0.001232% | 0.008225% |

t = 0.4 | 0.015705% | 0.146325% | 0.015373% | 0.003840% | 0.008225% |

t = 0.5 | 0.005163% | 0.064678% | 0.004865% | 0.001336% | 0.000000% |

t = 0.6 | 0.023579% | 0.395394% | 0.021686% | 0.006576% | 0.008225% |

t = 0.7 | 0.012311% | 0.284080% | 0.011448% | 0.003808% | 0.008225% |

t = 0.8 | 0.007437% | 0.256653% | 0.007008% | 0.002602% | 0.008224% |

t = 0.9 | 0.003745% | 0.248873% | 0.003595% | 0.001602% | 0.008223% |

t = 1.0 | 0.000007% | 0.247020% | 0.000067% | 0.000509% | 0.008220% |

c = 0.2 | |||||

x = 0.4 | CTCS | Crank-Nicolson | ω = 0.25 | ω = 0.5 | Characteristics |

Time = 0.031 s | Time = 6.3 s | Time = 7.81 s | Time = 7.8 s | Time = 1.79 s | |

t = 0.0 | 0.000000% | 0.000000% | 0.000000% | 0.000000% | 0.000000% |

t = 0.1 | 0.000016% | 0.000013% | 0.000016% | 0.000012% | 0.000168% |

t = 0.2 | 0.000065% | 0.000059% | 0.000063% | 0.000049% | 0.000338% |

t = 0.3 | 0.000147% | 0.000146% | 0.000143% | 0.000110% | 0.000510% |

t = 0.4 | 0.000265% | 0.000283% | 0.000257% | 0.000198% | 0.000686% |

t = 0.5 | 0.000419% | 0.000482% | 0.000406% | 0.000314% | 0.000868% |
---|---|---|---|---|---|

t = 0.6 | 0.000613% | 0.000756% | 0.000594% | 0.000459% | 0.001058% |

t = 0.7 | 0.000850% | 0.001119% | 0.000824% | 0.000637% | 0.001258% |

t = 0.8 | 0.001134% | 0.001589% | 0.001100% | 0.000850% | 0.001469% |

t = 0.9 | 0.001474% | 0.002189% | 0.001429% | 0.001105% | 0.001696% |

t = 1.0 | 0.001875% | 0.002946% | 0.001818% | 0.001405% | 0.001942% |

characteristics is considerably faster with slightly bigger errors.

・ The third best choice seems to be the ω scheme for ω = 0.25 , with the exception of the case where c = 2 . In this case the CTCS scheme is more accurate.

・ Even though there is no significant difference in the errors between the methods CTCS and ω, ω = 0.25 , for the specific problems, the difference in machine time is considerable, and as follows it will increase for more complicated problems with more large number of grid points.

・ Finally, the method of Crank-Nicolson is the least accurate for hyperbolic problems.

In the present work, finite difference methods were considered for the numerical solution of PDEs. Firstly, the method of characteristics was employed to solve IVPs for second order genuine quasilinear hyperbolic PDEs. The method was applied into two specific examples and provided adequate numerical results which were improved by decreasing the step sizes.

Secondly, the methods of CTCS, Crank-Nicolson, ω and characteristics were analyzed to solve numerically the homogeneous wave Equation (2) satisfying (3) and (4). These methods were applied for specific values of c,L and given functions f,g. Three different approaches were employed to approximate the initial derivative condition. The numerical results that were obtained indicated that the most accurate method is the CTCS scheme for r = 1 and employing the centered difference approach. This conclusion was confirmed after a theoretical investigation. It is easily verified that this is also the case for arbitrary function f and g being the zero function. For r < 1 , the methods seem to be more accurate if they initiate with the forward difference approximation with the exception of the methods Crank-Nicolson and ω, ω = 0.5 , for c = 2 and c = 1 , 2 , respectively, where the centered difference approach is more accurate. In this case ( r < 1 ) the ω scheme for ω = 0.5 is the most accurate with the (modified) method of characteristics being the second best but much faster. We also observe that for r < 10 − 2 the errors increase, probably due to the large number of grid points and the great number of computations, which increase the round-off errors.

Finally, for further research, other values of ω can be tested. In addition, forward third or higher order differences can be used to approximate the initial derivative condition. Moreover, we can test the above in problems of 2D, 3D and more complicated problems.

The authors would like to thank the reviewers for their helpful suggestions for revising this paper. Research of Pavlos Stampolidis has been financially supported by General Secretariat for Research and Technology (GSRT) and the Hellenic Foundation for Research and Innovation (HFRI). This support is greatly appreciated.

Research of Pavlos Stampolidis has been financially supported by General Secretariat for Research and Technology (GSRT) and the Hellenic Foundation for Research and Innovation (HFRI).

The authors declare no conflicts of interest regarding the publication of this paper.

Stampolidis, P. and Gousidou-Koutita, M.C. (2018) A Computational Study with Finite Difference Methods for Second Order Quasilinear Hyperbolic Partial Differential Equations in Two Independent Variables. Applied Mathematics, 9, 1193-1224. https://doi.org/10.4236/am.2018.911079