Next Article in Journal
Optimal Solutions for a Class of Impulsive Differential Problems with Feedback Controls and Volterra-Type Distributed Delay: A Topological Approach
Previous Article in Journal
Preface to the Special Issue “Mathematical Modelling and Optimization of Service Supply Chain”
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Eighth-Order Numerov-Type Methods Using Varying Step Length

1
Department of Electrical Engineering, College of Engineering, University of Hail, Ha’il 81481, Saudi Arabia
2
Department of Computer Engineering, College of Computer Science and Engineering, University of Hail, Ha’il 81481, Saudi Arabia
3
School of Mechanical Engineering, Hangzhou Dianzi University, Er Hao Da Jie 1158, Xiasha, Hangzhou 310018, China
4
Center for Applied Mathematics and Bioinformatics, Gulf University for Science and Technology, West Mishref 32093, Kuwait
5
Laboratory of Inter-Disciplinary Problems of Energy Production, Ulyanovsk State Technical University, 32 Severny Venetz Street, 432027 Ulyanovsk, Russia
6
Section of Mathematics, Department of Civil Engineering, Democritus University of Thrace, 67100 Xanthi, Greece
7
General Department, National & Kapodistrian University of Athens, Euripus Campus, 34400 Psachna, Greece
8
Department of Industrial Engineering, College of Engineering, University of Hail, Ha’il 81481, Saudi Arabia
*
Author to whom correspondence should be addressed.
Mathematics 2024, 12(14), 2294; https://doi.org/10.3390/math12142294
Submission received: 17 June 2024 / Revised: 14 July 2024 / Accepted: 19 July 2024 / Published: 22 July 2024
(This article belongs to the Section E2: Control Theory and Mechanics)

Abstract

:
This work explores a well-established eighth-algebraic-order numerical method belonging to the explicit Numerov-type family. To enhance its efficiency, we integrated a cost-effective algorithm for adjusting the step size. After each step, the algorithm either maintains the current step length, halves it, or doubles it. Any off-step points required by this technique are calculated using a local interpolation function. Numerical tests involving diverse problems demonstrate the significant efficiency improvements achieved through this approach. The method is particularly effective for solving differential equations with oscillatory behavior, showcasing its ability to maintain high accuracy with fewer function evaluations. This advancement is crucial for applications requiring precise solutions over long intervals, such as in physics and engineering. Additionally, the paper provides a comprehensive MATLAB-R2018a implementation, facilitating ease of use and further research in the field. By addressing both computational efficiency and accuracy, this study contributes a valuable tool for the numerical analysis community.

1. Introduction

We consider the specific form of the Initial Value Problem (IVP) of the second order:
z = g ( x , z ) , z ( x 0 ) = z 0 , z ( x 0 ) = z 0 ,
with g : R × R λ R λ and z 0 , z 0 R λ . Observe, z does not appear in (1).
The Numerov method facilitates the numerical advancement of the solution from x μ to x μ + 1 = h + x μ , a well-established approach for solving Equation (1). It is expressed as:
z μ + 1 = 2 z μ z μ 1 + h 2 12 g μ + 1 + 10 g μ + g μ 1 ,
where z μ z ( x μ ) and g μ z μ = g ( x μ , z μ ) . Note that g μ , z μ R λ .
Hairer [1], Cash [2] and Chawla [3] introduced hybrid implicit Numerov-type methods (i.e., using non-mesh points) approximately 40–45 years ago. Addressing the P-stability property, crucial for handling stiff oscillatory problems, was the primary challenge then. Chawla [4] proposed the modified Numerov scheme, which is evaluated explicitly as follows:
v 1 = z μ 1 , v 2 = z μ , v 3 = 2 z μ z μ 1 + h 2 g ( x μ , v 2 ) , z μ + 1 2 z μ + z μ 1 = 1 12 h 2 · ( g ( x μ + 1 , v 3 ) + 10 g ( x μ , v 2 ) + g ( x μ 1 , v 1 ) ) ,
where h is a constant step length:
h = x μ x μ 1 = x μ + 1 x μ = = x 1 x 0 .
The vectors z μ + 1 , z μ , and z μ 1 approximate z ( x μ + h ) , z ( x μ ) , and z ( x μ h ) , respectively, while v 1 R λ , v 2 R λ , and v 3 R λ represent the stages (alternatively named: function evaluations) that the method uses.
We utilize the information known at the mesh:
v 1 = z μ 1 , v 2 = z μ .
Since g ( t μ 1 , v 1 ) is computed in the previous step, only g ( t μ + 1 , v 3 ) and g ( t μ , v 2 ) need evaluation each step, resulting in only two function evaluations per step.
Tsitouras then introduced a method styled after Runge–Kutta–Nyström (RKN) techniques [5], significantly reducing computational costs. Consequently, only four steps are needed to construct a sixth-order method, whereas previous approaches required six function evaluations (see [6]).
Following this advancement, our research group extensively delved into the subject. Tsitouras developed eighth-order methods requiring nine steps per iteration in [7]. Concurrently, a group of Spanish researchers conducted noteworthy investigations on the same topic [8,9,10]. It would also be interesting in the future to study stability analysis as described in [11].
Despite advancements in numerical methods, existing approaches often lack efficiency for oscillatory differential equations. This study addresses this gap by optimizing step-length adjustments in an eighth-order Numerov-type method, significantly improving computational performance.
Here, we introduce an eighth-order Numerov-type method that uniquely incorporates a variable step-length algorithm, significantly enhancing computational efficiency for solving second-order IVPs with oscillatory behavior.
This study aims to present a new method tailored to better address problems with periodic solutions. Traditionally, various properties of a simple test equation are utilized for this purpose. The innovation lies in optimizing the available free parameters across a diverse set of relevant problems. Differential evolution is employed for this optimization. It is anticipated that this approach will yield a method finely tuned for oscillatory problems.
To summarize, this study is motivated by the need for more efficiency, i.e., more accuracy in lower costs. The novelty of this work lies in the integration of a variable step-length mechanism into the eighth-order Numerov-type method, significantly improving efficiency. Key contributions include:
  • Development of a cost-effective step-length adjustment algorithm.
  • Demonstration of significant efficiency gains through numerical tests.
  • Provision of a MATLAB implementation to facilitate adoption and further research.

2. Derivation of Hybrid Two-Step Methods

For the numerical treatment of Equation (1) with higher-order algebraic methods, there exists a considerable demand. We can represent the independent variable t as one of the components of z. Consequently, our focus, without loss of generality, lies on the autonomous system z = g ( z ) . Subsequently, a hybrid Numerov method with s stages, as delineated in [7], may be expressed as:
z μ + 1 = 2 z μ z μ 1 + h 2 · w I s · f v v = 1 + a z μ a z μ 1 + h 2 · D I s · f v
where I s R s × s represents the identity matrix, D R s × s , w T R s , a R s denote the coefficient matrices of the method, and
1 = [ 1 1 1 ] T R s .
To present the coefficients, we utilize the Butcher tableau [12,13],
a D w .
Since the function evaluations are computed sequentially, these methods are categorized as explicit. Thus, D denotes a strictly lower triangular matrix. In the scenario where s = 8 , the matrices corresponding to the method exhibit the following structure:
g μ 1 = g x μ 1 , z μ 1 = z μ 1 , g μ = g x μ , z μ = z μ , z α = a 3 z μ 1 + 1 a 3 z μ + h 2 d 31 g μ 1 + a d 2 g μ , g α = g x μ + a 3 h , z α , z β = a 4 z μ 1 + 1 a 4 z μ + h 2 d 41 g μ 1 + d 42 g μ + d 43 g α , g β = g x μ + a 4 h , z β , z c = a 5 z μ 1 + 1 a 5 z μ + h 2 d 51 g μ 1 + d 52 g μ + d 53 g α + d 54 g β , g c = g x μ + a 5 h , z c , z δ = a 6 z μ 1 + 1 a 6 z μ + h 2 d 61 g μ 1 + d 62 g μ + d 63 g α + d 64 g β + d 65 g c , g δ = g x μ + a 6 h , z δ , z e = a 7 z μ 1 + 1 a 7 z μ + h 2 d 71 g μ 1 + d 72 g μ + d 73 g α + d 74 g β + d 75 g c + d 76 g δ , g e = g x μ + a 7 h , z e , z f = a 8 z μ 1 + 1 a 8 z μ + h 2 d 81 g μ 1 + d 82 g μ + d 83 g α + d 84 g β + d 85 g c + d 86 g δ + d 87 g e , g f = g x μ + a 8 h , z f , z μ + 1 = 2 z μ z μ 1 + h 2 w 1 g μ 1 + w 2 g μ + w 3 g α + w 4 g β + w 5 g c + w 6 g δ + w 7 g e + w 8 g f .
After assuming
w 3 = 0 , w 5 = w 4 , w 7 = w 6 , w 8 = w 1 , a 5 = a 4 , a 6 = a 7 , a 8 = 1 ,
the associated matrices take the form
D = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d 31 d 32 0 0 0 0 0 0 d 41 d 42 d 43 0 0 0 0 0 d 51 d 52 d 53 d 54 0 0 0 0 d 61 d 62 d 63 d 64 d 65 0 0 0 d 71 d 72 d 73 d 74 d 75 d 76 0 0 d 81 d 82 d 83 d 84 d 85 d 86 d 87 0 ,
w = w 1 w 2 0 w 4 w 4 w 6 w 6 w 1
and
a = 1 0 a 3 a 4 a 4 a 5 a 5 1 T .
Given that g μ 1 is determined from the preceding stage, seven function assessments are performed per step. To achieve an algebraic order eight, it is imperative to nullify the corresponding error truncation components (refer to [14]).
Here, we must distinguish the terminology “second-order IVP” that refers to z , and the algebraic order of a numerical method that refers to the level of accuracy required by the numerical scheme.
Our technique encompasses a total of 34 parameters. As noted earlier, there exist 27 coefficients for matrix D, denoted as
d 31 , d 32 , d 41 , d 42 , d 43 , , d 87 .
Moreover, there are 4 coefficients associated with vector w and 3 elements pertaining to vector a. The quantity of condition equations for various orders matches those of the Runge–Kutta–Nystrom methods [15], as presented in Table 1. To attain an eighth order, a cumulative total of 1 + 1 + 2 + 3 + 6 + 10 + 20 + 36 = 79 equations must be fulfilled. The equations up to the ninth order can be found in assorted tables within [14].
The number of parameters is less than the number of equations, posing a similar challenge to that faced when devising Runge–Kutta (RK) methods. Consequently, we are obliged to utilize simplifying assumptions to reduce the number of conditions, therefore also lowering the number of coefficients. The most commonly adopted alternatives include
( D · 1 ) ( 3 8 ) = 1 2 a 2 + a ( 3 8 ) ( D · a ) ( 3 8 ) = 1 6 a 3 a ( 3 8 ) ( D · a 2 ) ( 4 8 ) = 1 12 a 4 + a ( 4 8 )
with
a i = ( 1 ) i 0 a 3 i a 4 i ( a 4 ) i ( a 5 ) i a 5 i 1 T ,
a 0 = 1 1 1 1 1 1 1 1 T = 1 ,
and for κ 1 < κ 2
( v ) ( κ 1 κ 2 ) = [ v κ 1 v κ 1 + 1 v κ 2 ] T .
The remaining order conditions are presented in Table 2. In this table, the symbol “*” can be interpreted as element-wise multiplication:
[ u 1 u 2 u n ] T [ v 1 v 2 v n ] T = [ u 1 v 1 u 2 v 2 u n n n ] T .
This operation holds lower precedence. Parentheses, exponents, and dot products are always computed prior to “*”.
Given the thirteen order conditions outlined in Table 2 and the fulfillment of 17 assumptions (4), we determine that only thirty equations are necessary. This results in four coefficients remaining as variables. Let us consider a 3 ,   a 4 ,   a 5 , and d 64 . For comprehensive details regarding the computation of truncation error coefficients, refer to the comprehensive overview in [14]. Coleman [16] emphasized the utilization of the B2 series representation of the local truncation error, drawing connections with the T2 rooted trees.

3. Phase-Lag and Amplification Errors

In [17], the scalar test problem
z = ω 2 z , ω R .
was introduced to examine the periodic characteristics of techniques applied to solve (1).
Upon employing a Numerov-style approach akin to (3) to tackle problem (5), a discrete equation is formulated, taking the form
z μ + 1 + S v 2 z μ + P v 2 z μ 1 = 0 ,
where v = ω h , and S v 2 , P v 2 represent polynomials in v 2 .
The periodicity interval ( 0 , v 0 ) encompasses all 0 < v < v 0 with P v 2 1 and 0 < | S v 2 | < 2 . A method deemed P-stable exhibits v 0 = .
The fulfillment of the zero-dissipation property necessitates that
P v 2 = 1 v 2 w I s + v 2 D 1 a 1 ,
ensuring that the numerical method approximating (5) remains within its cyclic orbit.
The dissipation order ρ of a method is characterized by the number for which 1 P v 2 = O ( v ρ ) . It is worth noting that
P v 2 = 1 + j = 0 v 2 j + 1 w · D j · a = 1 + v q 1 + v 3 q 3 + .
A method with algebraic order 2 · i satisfies the terms in the aforementioned series for j = 0 , 1 , , i 1 . Consequently, for an eighth-order method, it is advantageous to address
q 9 = b · A 4 · c = 0 , q 11 = b · A 5 · c = 0 , etc . ,
to enhance the dissipation order. In the case of a zero-dissipative method, only q 9 = z 11 = q 13 = q 15 = q 17 = 0 is necessary, as for the lower triangular matrix D, all other q -s vanish,
q 2 i + 1 = w · D i · a = 0 , for i > 8 .
The difference in angles between the numerical and theoretical cyclic solution of (5) is called phase-lag. Since the solution of (5) is
z ( t ) = e ω t 1 ,
we may write Equation (6) as
Λ = e 2 v 1 + S v 2 · e v 1 + P v 2 = O ( v τ ) ,
with the number τ the phase-lag order of the method. Since
S v 2 = 2 v 2 w · I + v 2 D 1 · 1 + a ,
we observe that expression (7) is a series of the form (see [18])
Λ = i = 1 v 2 i ( 1 ) i + 1 j = 1 i 1 ( 2 ( i j ) ) ! w · D j 1 · 1 + a w · D i 1 · a 2 j = 1 i 1 ( 2 j ) ! · ( 2 ( i j ) ) ! ,
or in a compact form
Λ = v 2 λ 2 + v 4 λ 4 + v 6 λ 6 + O ( v 8 ) .
In this series, λ 2 = λ 4 = = λ 2 i = 0 for i = 1 , 2 , , p 1 2 + 1 , where p denotes the algebraic order of the method. For eighth order methods, the order conditions yield λ 2 = λ 4 = λ 6 = λ 8 = 0 . Given that p = 8 , and for i = 3 , we infer from (8):
λ 6 = 1 ( 2 · ( 3 1 ) ) ! w · ( 1 + a ) + 1 2 ! w · D · ( 1 + a ) + w · D 2 · 1 2 · ( 1 2 ! 4 ! + 1 4 ! 2 ! + 1 6 ! 0 ! ) = 0 .
In the case of i = 4 , we obtain (observe that already w · 1 = 1 , w · c = 0 , w · D · c = 0 , etc.),
λ 8 = 127 20,160 + 1 720 ( w · a + w · 1 ) + 1 24 ( w · D · a + w · D · 1 ) +
+ 1 2 ( w · D 2 · a + w · D 2 · 1 ) + w · D 3 · 1 = 0 .
Furthermore, we see that (see [18])
λ 10 = w · D 4 · 1 1 1,814,400 ,
λ 12 = 1 2 w · D 4 · a + w · D 5 · 1 1 239,500,800 ,
λ 14 = 1 24 w · D 4 · c + 1 2 w · D 5 · a + 1 2 w · D 5 · 1 + w · D 6 · 1 23 10,897,286,400 ,
λ 16 = 1 720 w · D 4 · c + 1 24 w · d 5 · c + 1 24 w · D 5 · 1 +
+ 1 2 w · D 6 · c + 1 2 w · D 6 · 1 + w · D 7 · 1 647 3,487,131,648,000 .
Then, we may ask for simultaneous satisfaction of phase-lag order conditions:
λ 10 = 0 , λ 12 = 0 , λ 14 = 0 , λ 16 = 0 .
The set of four nonlinear Equations (9) can be resolved to determine the four independent parameters. Our analysis reveals that the method exhibits a phase error on the order of O ( v 18 ) , whereas the amplification error is O ( v 9 ) . Consequently, the newly devised method demonstrates dissipative characteristics and lacks a periodicity interval.
The free parameters satisfying (9) in double precision are the following [18],
a 3 = 0.870495922977052833 , a 4 = 0.265579060733883584 ,
a 5 = 1.11694341482497459 , d 64 = 2.43624015403357971 ,
and form the method N8ph18 that outperforms other methods in oscillatory problems.
Another noteworthy characteristic is P-stability [2,3]. In this context, it is essential to ensure σ 1 , while also meeting the condition
2 ( 2 v 2 w · ( I s v 2 D ) 1 · ( 1 + a ) ) 2 .
Only implicit methods can fulfill these two criteria simultaneously.

4. Variable Step Implementation

To establish a variable step algorithm, we need to develop an error estimation. A similar approach was adopted for 6th-order methods [19]. We introduce another vector
w ˜ = [ w ˜ 8 w ˜ 2 0 w ˜ 4 w ˜ 5 w ˜ 6 w ˜ 7 w ˜ 8 ] ,
and aim to determine its coefficients to approximate the solution with fourth-order accuracy, i.e., locally of O ( h 8 ) . Thus, the following order equations must be fulfilled:
w ˜ e = 1 , w ˜ a = 0 , w ˜ c 3 = 0 , w ˜ c 2 = 1 6 , w ˜ c 4 = 1 15 , w ˜ c 5 = 0
We managed to obtain a solution that can be found in the implementation of the method from Appendix A. It is worth noting that no other equations of the condition need to be solved. The above is enough since the row simplifying assumptions (4) helps in dropping out the rest conditions. The costless, sixth-order approximation has the form:
z ˜ μ + 1 2 z μ + z μ 1 = h μ 2 · w ˜ 1 g μ 1 + w ˜ 2 g μ + w ˜ 3 g a + w ˜ 4 g b + w ˜ 5 g c + w ˜ 6 g δ + w ˜ 7 g e + w ˜ 8 g f .
Then, at no cost, we have two approximations of orders eight and six. Subtracting them an O ( h 8 ) estimation of the local error is provided:
E = z μ + 1 z ˜ μ + 1 = h μ 2 · ( w 1 w ˜ 1 ) g μ 1 + ( w 2 w ˜ 2 ) g μ + ( w 3 w ˜ 3 ) g a + ( w 4 w ˜ 4 ) g b + ( w 5 w ˜ 5 ) g c + ( w 6 w ˜ 6 ) g δ + ( w 7 w ˜ 7 ) g e + ( w 8 w ˜ 8 ) g f .
We choose a tolerance ϵ . We keep the step constant in the case that 16 ϵ > E > ϵ 16 . When E < ϵ 16 we double the following step. Thus, we use the available data z μ 1 , z μ 1 and z μ + 1 , z μ + 1 to produce the next approximation
z μ + 2 = z ( x μ + 1 + 2 h μ ) + O ( h 8 ) = z ( x μ + 1 + h μ + 1 ) + O ( h 8 ) ( locally ) .
Obvious adjustments to the indices are required. See Figure 1 for a graphical explanation.
If E > 16 ϵ we abort the trial (current) step h ˜ μ = h μ 1 . i.e., we do not seek for approximation in x μ + h ˜ μ but in x μ + 1 2 h ˜ μ = x μ + h μ , where h μ is the halved step (i.e., the new step) used for advancing the solution finally. Then we use on z μ , z μ and some appropriate approximations of z μ 1 2 , z μ 1 2 to apply methods with the form (3) after proper adjustment of the indices. See Figure 2 for a graphical explanation.
We need a locally O ( h 10 ) approximation for z μ 1 2 and h 2 z μ 1 2 . This is enough to avoid order reduction phenomena through the propagation of errors.
We may obtain such approximations using the interpolation theory introduced in [20]. Indeed, we add two extra stages g f 1 , g f 2 .
z f 1 = a 9 z μ 1 + 1 a 9 z μ + h ˜ μ 2 d 91 g μ 1 + d 92 g μ + d 93 g α + d 94 g β + d 95 g c + d 96 g δ + d 97 g e + d 98 g f , g f 1 = g x μ + a 9 h ˜ μ , z f 1 , z f 2 = a 10 z μ 1 + 1 a 10 z μ + h ˜ μ 2 d 10 , 1 g μ 1 + d 10 , 2 g μ + d 10 , 3 g α + d 10 , 4 g β + d 10 , 5 g c + d 10 , 6 g δ + d 10 , 7 g e + d 10 , 8 g f + d 10 , 9 g f 1 , g f 2 = g x μ + a 10 h ˜ μ , z f 2 ,
and obtain
z μ 1 2 = 1 2 z μ + 1 2 z μ 1 + h ˜ 2 b 1 * g μ 1 + b 2 * g μ + b 3 * g α + b 4 * g β b 5 * g c + b 2 * g δ + b 3 * g e + b 4 * g f = z x μ 1 2 h ˜ μ + O h 10 .
z x μ 1 2 h ˜ μ g x μ 1 2 h ˜ μ , z μ 1 2 = z μ 1 2 .
It is obvious that a step rejection costs 10 function evaluations instead of seven spent in a conventional step, namely the seven usual stages g μ , g α , g β , g c , g δ , g e , g f along with additional g f 1 , g f 2 and g x μ 1 2 h ˜ μ , z μ 1 2 . All the coefficients can be found in the MATLAB listing in the Appendix A.

5. Numerical Tests

The novel variable step method is known as num8var by the name Numerov, 8th order and variable step. It is compared with a method denoted as N8ph18 in [18]. The results obtained with N8ph18 outperformed other methods documented [18]. Therefore, we initially execute the new method for various tolerances, recording both the accepted and aborted steps along with the precision observed for approximations of z at the endpoint. Subsequently, at an equivalent computational expense (i.e., the sum of stages spent in the variable step implementation), we execute the constant step method N8ph18 and record the precision at the endpoint. All tests were conducted using MATLAB [21].
The problems on which the methods were tested are as follows.

5.1. The Two–Body Problem

Initially, we opt for the renowned two-body problem with eccentricity e,
z 1 = y 1 ( z 1 2 + z 2 2 ) 3 / 2 , z 2 = z 2 ( z 1 2 + z 2 2 ) 3 / 2 , z 1 ( 0 ) = 1 e , z 1 = 0 , z 2 ( 0 ) = 0 , z 2 = 1 + e 1 e .
The Kepler problem, which is a classical problem in celestial mechanics, involves determining the motion of a planet or other celestial body under the influence of a central gravitational force. In the context of the paper, the Kepler problem serves as an important test case for evaluating the performance of the variable step-size implementation, eighth-order hybrid Numerov-type method. The Kepler problem’s relevance in this study lies in its oscillatory nature and well-defined periodic solutions, which provide a rigorous test for evaluating the effectiveness of the new numerical method. By applying the method to this classical problem, we can demonstrate its robustness and potential for broader applications in both theoretical and practical scenarios involving differential equations with oscillatory behavior.
See [22] for the theoretical solution. Notice that in the definition of this problem, the indices are the coordinates of z. We solved the above equation in the interval 0 , 20 π .
We tested three cases for eccentricities e = 0.5 , e = 0.7 and e = 0.9 and the results are recorded in Table 3, Table 4 and Table 5, respectively. These results illustrate that the usage of the variable step algorithm gives a clear advantage.
In the case of an elliptical solution (i.e., when e > > 0 ), the gain of many digits is obvious for num8var at all costs. However, when we applied eccentricity e = 0.9 the difference was loud. While the proposed eighth-order Numerov-type method with varying step lengths offers substantial efficiency improvements, its performance may be less beneficial for problems not requiring frequent step adjustments. e.g., Kepler with zero eccentricity. On the contrary, when rapidly changing dynamics are present (e.g., Kepler with high eccentricity), the step-changing is of crucial importance.

5.2. The Simple Scalar Linear

Then, a rather simple problem was selected:
z ( x ) = z ( x ) , z ( 0 ) = 1 , z ( 0 ) = 1 ,
with analytical solution
z ( x ) = exp ( x ) .
We integrated this problem for x 0 , 20 . As the integration advances, the need for longer step sizes becomes crucial. Adjustment of step significantly lowers the cost, something unavailable to constant step implementations. The results are presented in Table 6.
Again, the results are disappointing for N8ph18 in view of the results of num8var. The initial step-size of num8var was enlarged 16 times near the endpoint. N8ph18 and other constant step methods were not able to do so.

6. Conclusions

We introduce a novel approach to step doubling and halving designed for an eighth-order hybrid Numerov-type method. This technique utilizes local interpolation. Numerical findings demonstrate the superior performance of this step-size algorithm compared to traditional constant step implementations. The proposed approach not only enhances computational efficiency but also maintains high accuracy across a variety of test problems. By adapting the step size dynamically, the method proves particularly effective in handling oscillatory differential equations, showcasing its potential for broader applications in scientific computing and engineering disciplines. Future research could further refine this technique by introducing a more freely selection of step changes instead of halving and doubling. Such a technique may extend efficiency even more to the limits.

Author Contributions

All authors (O.A., S.B.A., M.K., T.E.S., C.T. and H.J.) have contributed equally. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Research Deanship of Hail University-KSA Project Number (RG-23 072).

Data Availability Statement

The MATLAB implementation containing the coefficients of the method presented can be retrieved from http://users.uoa.gr/~tsitourasc/num8var.m (accessed on 17 June 2024).

Acknowledgments

Authors acknowledge the Research Deanship of Hail University-KSA for the administrative and technical support.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. MATLAB Listing

We provide a simple description of the program outlining the new implementation. In the input, we specify fcn as the function defining the problem, x0 as the initial point x 0 , xe as the endpoint, h is the initial step, z0 as the initial value z ( x 0 ) , dz0 as the initial value z ( x 0 ) , and tol as the tolerance ϵ . z1 approximates z ( x 0 + h ) and can be computed using the file rkn86 available in [23]. In the output, we obtain the grid in xout and the matrix containing the approximations of z at these points in zout. The number of step rejections is recorded in ireject.
It can be retrieved from http://users.uoa.gr/~tsitourasc/num8var.m (accessed on 17 June 2024).
  • %-----------------------------------------------------------------------------
  • function [xout,zout,ireject]=num8var(gcn,x0,xe,h,z0,dz0,tol);
  • % Variable step Numerov 8th order (NEW8ph18 from MMAS2017 paper)
  •  
  • d=[0,0,0,0,0,0,0,0,0,0;
  • 0,0,0,0,0,0,0,0,0,0;
  • 0.03514436477478967271695543856798,0.778985172673572292604174397326821, ...
  •                                                            0,0,0,0,0,0,0,0;
  • -0.030756691100062805827044701849216,-0.07869613284023427590783998801148, ...
  •                            0.011929412323501202370387215214963,0,0,0,0,0,0,0;
  • 0.031121796239394819774224147358071,0.147811428598972016085442546229843, ...
  • -0.011362151424849423218299194192520,0.00048457570357029208773192112857, ...
  •                                                                  0,0,0,0,0,0;
  • 0.30141579735411936564090356179718,5.192050394473954713157163942448410, ...
  • 0.32804602267391035193477393037790,-2.43624015403357970664126740503822, ...
  •                                -2.20301905709547980011694371100782,0,0,0,0,0;
  • -5.229446756260189e-02 -5.291660460847162e-01 7.710819781755138e-02     ...
  •  5.832199643851225e-01 -5.323442275392505e-03 -8.234617732012934e-03 0 0 0 0;
  • 9.778994089862780e-02  1.533163927607464e+00  1.592368698012818e-01     ...
  • -3.268980182507659e-01  -4.666459166972902e-01 1.537296514463354e-05    ...
  •                                                3.337823675537400e-03  0  0 0;
  • 6.593020920369334e-01  3.620612536615338e+00   3.245537413836930e-02    ...
  • -2.066275385333197e+00 -2.174528664209118e+00  -4.567750736985592e-01   ...
  •                           -4.595125484205432e-01  7.204703432105997e-01  0 0;
  • 7.000913567080177e-01  3.806666958489904e+00  3.499348837605611e-02     ...
  • -2.164799272132436e+00 -2.291672103336968e+00 -4.819285087785059e-01    ...
  •       -4.879049142356707e-01 7.600995265565401e-01 -1.092548371386614e-04 0];
  • w=[8.147088962485628e-02 -3.128563096754995e-01 0 6.078286168553779e-01 ...
  •    6.078286168553779e-01 -3.287135164248439e-02 -3.287135164248439e-02  ...
  •                                                      8.147088962485628e-02];
  • a=[-1 0 8.704959229770528e-01 -2.655790607338836e-01                    ...
  •    2.655790607338836e-01 1.116943414824975e+00 -1.116943414824975e+00 1 ...
  •                             -5.386955899250456e-01 -5.295728527470133e-01]’;
  • ws=[-9.098777438949393e-03  7.462144825335587e-03 0                     ...
  •     -6.969481411423929e-02 -1.985097776074821e-03 -6.740601700302488e-05 ...
  •       1.973900294814832e-03 1.284303505510030e-04 -1 9.462816198755651e-01];
  • e=[2.081470889624856e+00 1.088603394668112e+01 0 -6.206975601041206e+00 ...
  •    -6.206975601041206e+00 -1.317512261924209e+00 -1.317512261924209e+00 ...
  •    2.081470889624856e+00  0 0];
  •  
  • g0=feval(gcn,x0,z0);                             % g0
  • [x1,z1]=rkn86(gcn,x0,x0+h,z0,dz0,tol/1000);      % initial z1
  • z1=z1(end,:)’;
  • x=x0+h;                                          % advance x
  • g1=feval(gcn,x,z1);                              % g1
  • xout = [x0 x0+h zeros(1,634998)];                % preallocate output for x
  • m=length(z0);                                    % dimension of system
  • zout=zeros(m,635000);                            % preallocate output of z
  • zout(:,1)=z0;
  • zout(:,2)=z1;
  • k=2;ireject=0;dipl=1;
  •  
  • % The main loop
  •    while (x < xe-1e-9),
  •  
  •       za1=(d(3,1)*g0+d(3,2)*g1)*h^2-a(3)*z0+(1+a(3))*z1;
  •       ga1=feval(gcn,x+a(3)*h,za1);               % 1st stage
  •  
  •       za2=(d(4,1)*g0+d(4,2)*g1+d(4,3)*ga1)*h^2-a(4)*z0+(1+a(4))*z1;
  •       ga2=feval(gcn,x+a(4)*h,za2);               % 2nd stage
  •  
  •       za3=(d(5,1)*g0+d(5,2)*g1+d(5,3)*ga1+d(5,4)*ga2)*h^2-a(5)*z0+(1+a(5))*z1;
  •       ga3=feval(gcn,x+a(5)*h,za3);               % 3rd stage
  •  
  •       za4=(d(6,1)*g0+d(6,2)*g1+d(6,3)*ga1+d(6,4)*ga2+d(6,5)*ga3)*h^2      ...
  •                                                          -a(6)*z0+(1+a(6))*z1;
  •       ga4=feval(gcn,x+a(6)*h,za4);               % 4th stage
  •  
  •       za5=(d(7,1)*g0+d(7,2)*g1+d(7,3)*ga1+d(7,4)*ga2+d(7,5)*ga3+          ...
  •                                           d(7,6)*ga4)*h^2-a(7)*z0+(1+a(7))*z1;
  •       ga5=feval(gcn,x+a(7)*h,za5);               % 5th stage
  •  
  •       za6=(d(8,1)*g0+d(8,2)*g1+d(8,3)*ga1+d(8,4)*ga2+d(8,5)*ga3           ...
  •                               +d(8,6)*ga4+d(8,7)*ga5)*h^2-a(8)*z0+(1+a(8))*z1;
  •       ga6=feval(gcn,x+a(8)*h,za6);               % 6th stage
  •  
  •       % error estimation
  •       delta=1e2*max(abs(h^2*(e(1)*g0+e(2)*g1+e(3)*ga1+e(4)*ga2+e(5)*ga3   ...
  •                                                +e(6)*ga4+e(7)*ga5+e(8)*ga6)));
  •  
  •       % Update the solution only if the error is acceptable
  •       if delta <= tol*16,
  •          x = x + h;
  •          k=k+1;
  •          xout(k)=x;
  •          z2=2*z1-z0+h^2*(w(1)*g0+w(2)*g1+w(3)*ga1+w(4)*ga2+w(5)*ga3      ...
  •                                                  +w(6)*ga4+w(7)*ga5+w(8)*ga6);
  •          zout(:,k)=z2;
  •          if (delta<tol/16) && (dipl==0),
  •              h=h+h;dipl=1;                      % Double the step
  •          else
  •              z0=z1;g0=g1;dipl=0;                % Keep the same step
  •          end;
  •          z1=z2;
  •          g1=feval(gcn,x+h,z2);                   % 7th stage
  •       else
  •          ireject=ireject+1;                      % Halve the step
  •          za7=(d(9,1)*g0+d(9,2)*g1+d(9,3)*ga1+d(9,4)*ga2+d(9,5)*ga3        ...
  •                     +d(9,6)*ga4+d(9,7)*ga5+d(9,8)*ga6)*h^2-a(9)*z0+(1+a(9))*z1;
  •          ga7=feval(gcn,x+a(9)*h,za7);            % 1st extra stage
  •  
  •          za8=(d(10,1)*g0+d(10,2)*g1+d(10,3)*ga1+d(10,4)*ga2+d(10,5)*ga3   ...
  •    +d(10,6)*ga4+d(10,7)*ga5+d(10,8)*ga6+d(10,9)*ga7)*h^2-a(10)*z0+(1+a(10))*z1;
  •          ga8=feval(gcn,x+a(10)*h,za8);           % 2nd extra stage
  •  
  •          z0=(ws(1)*g0+ws(2)*g1+ws(3)*ga1+ws(4)*ga2+ws(5)*ga3+ws(6)*ga4+    ...
  •                        ws(7)*ga5+ws(8)*ga6+ws(9)*ga7+ws(10)*ga8)*h^2+z0/2+z1/2;
  •          g0=feval(gcn,x-1/2*h,z0);               % 3rd extra stage
  •          h=h/2; dipl=1;
  •       end;
  •    end;
  •  
  •    xout=xout(1:k);zout=zout(:,1:k);
  •  
  • return;
  • %-----------------------------------------------------------------------------
Thus, we may verify the three left (i.e., for num8var) entries in the last row of Table 3.
  • >> [xout,zout,ireject]=num8var(@(x,z) [-z(1)/sqrt(z(2)^2+z(1)^2)^3;     ...
  •     -z(2)/sqrt(z(2)^2+z(1)^2)^3],0,20*pi,0.0025,[.5 0]’,[0 sqrt(3)]’,1e-9);
  •  
  • >> % estimate the parameter for exact solution at endpoint
  • >> uu=fsolve(@(u) u-.5*sin(u)+xout(end),xout(end),optimset(’TolX’,      ...
  •                                     1e-32,’TolFun’,1e-32,’Display’,’off’));
  • >> fprintf(’%6.0f %6.0f %10.2f \n’,length(xout)-1,ireject,              ...
  •         -log10(max(abs([cos(uu)-.5 -sin(uu)*sqrt(1-.5^2)]-zout(:,end)’))));
  • 1606     20       8.8
Changing tol*16 and tol/16 with tol*1e16 and tol/1e16, respectively, in the above listing, we may see the results for constant steps.

References

  1. Hairer, E. Unconditionally stable methods for second order differential equations. Numer. Math. 1979, 32, 373–379. [Google Scholar] [CrossRef]
  2. Cash, J.R. High order P-stable formulae for the numerical integration of periodic initial value problems. Numer. Math. 1981, 37, 355–370. [Google Scholar] [CrossRef]
  3. Chawla, M.M. Two-step fourth order P-stable methods for second order differential equations. BIT 1981, 21, 190–193. [Google Scholar] [CrossRef]
  4. Chawla, M.M. Numerov Made Explicit has Better Stability. BIT 1984, 24, 117–118. [Google Scholar] [CrossRef]
  5. Tsitouras, C. Explicit Numerov type methods with reduced number of stages. Comput. Math. Appl. 2003, 45, 37–42. [Google Scholar] [CrossRef]
  6. Chawla, M.M.; Rao, P.S. An explicit sixth—Order method with phase—Lag of order eight for y″ = f (t, y). J. Comput. Appl. Math. 1987, 17, 365–368. [Google Scholar] [CrossRef]
  7. Tsitouras, C. Explicit eighth order two–step methods with nine stages for integrating oscillatory problems. Int. J. Mod. Phys. C 2006, 17, 861–876. [Google Scholar] [CrossRef]
  8. Franco, J.M. A class of explicit two-step hybrid methods for second-order IVPs. J. Comput. Appl. Math. 2006, 187, 41–57. [Google Scholar] [CrossRef]
  9. Franco, J.M.; Randez, L. Explicit exponentially fitted two-step hybrid methods of high order for second-order oscillatory IVPs. Appl. Maths. Comput. 2016, 273, 493–505. [Google Scholar] [CrossRef]
  10. Franco, J.M.; Randez, L. Eighth-order explicit two-step hybrid methods with symmetric nodes and weights for solving orbital and oscillatory IVPs. Int. J. Mod. Phys. C 2018, 29, 1850002. [Google Scholar] [CrossRef]
  11. Selvam, A.; Sabarinathan, S.; Senthil Kumar, B.V.; Byeon, H.; Guedri, K.; Eldin, S.M.; Khan, M.I.; Govindan, V. Ulam-Hyers stability of tuberculosis and COVID-19 co-infection model under Atangana-Baleanu fractal-fractional operator. Sci. Rep. 2023, 13, 9012. [Google Scholar] [CrossRef] [PubMed]
  12. Butcher, J.C. Implicit Runge Kutta processes. Math. Comput. 1964, 18, 50–64. [Google Scholar] [CrossRef]
  13. Butcher, J.C. On Runge–Kutta processes of high order. J. Austral. Math. Soc. 1994, 4, 179–194. [Google Scholar] [CrossRef]
  14. Simos, T.E.; Tsitouras, C.; Famelis, I.T. Explicit Numerov Type Methods with Constant Coefficients: A Review. Appl. Comput. Math. 2017, 16, 89–113. [Google Scholar]
  15. Famelis, I.T.; Tsitouras, C. Symbolic derivation of order conditions for hybrid Numerov–type methods solving y″ = f (x, y). J. Comput. Appl. Math. 2008, 218, 543–555. [Google Scholar] [CrossRef]
  16. Coleman, J.P. Order conditions for a class of two-step methods for y″ = f (x, y). IMA J. Numer. Anal. 2003, 23, 197–220. [Google Scholar] [CrossRef]
  17. Lambert, J.D.; Watson, I.A. Symmetric multistep methods for periodic initial value problems. J. Inst. Math. Appl. 1976, 18, 189–202. [Google Scholar] [CrossRef]
  18. Simos, T.E.; Tsitouras, C. A new family of seven stages, eighth order explicit Numerov-type methods. Math. Meth. Appl. Sci. 2017, 18, 7867–7878. [Google Scholar] [CrossRef]
  19. Medvedeva, M.A.; Simos, T.E.; Tsitouras, C. Variable step-size implementation of sixth order Numerov type methods. Math. Meth. Appl. Sci. 2020, 41, 1204–1215. [Google Scholar] [CrossRef]
  20. Alolyan, I.; Simos, T.E.; Tsitouras, C. Interpolants for sixth order Numerov-type methods. Math. Meths. Appl. Sci. 2019, 42, 7349–7358. [Google Scholar] [CrossRef]
  21. MATLAB, Version 7.10.0; The MathWorks Inc.: Natick, MA, USA, 2010.
  22. Enright, W.; Pryce, J.D. Two FORTRAN packages for assessing initial value methods. ACM Trans. Math. Softw. 1987, 13, 1–27. [Google Scholar] [CrossRef]
  23. Tsitouras, C. MATLAB Central File Exchange. Available online: https://www.mathworks.com/matlabcentral/fileexchange/3153-rkn86 (accessed on 16 July 2024).
Figure 1. Next step is doubled.
Figure 1. Next step is doubled.
Mathematics 12 02294 g001
Figure 2. Abortion and halving a step.
Figure 2. Abortion and halving a step.
Mathematics 12 02294 g002
Table 1. Number of order conditions.
Table 1. Number of order conditions.
Order p1234567891011
No of conditions1123610203672137275
Table 2. Equations of condition up to eighth order, under assumptions (4).
Table 2. Equations of condition up to eighth order, under assumptions (4).
w · 1 = 1 , w · a 2 = 1 6 , w · a 4 = 1 15 , w · a 6 = 1 28 ,
w · D 2 · a = 0 , w · D 3 · 1 = 1 20,160 , w · D · a D c = 11 15,120 ,
w · D 3 · a = 0 , w · D · a D 2 · 1 = 1 7560 , w · a * D 2 c = 17 10,080 ,
w · a D · a D · a = 1 720 , w · a D 3 · 1 = 23 60,480 , w · D · 1 D 2 · a = 17 20,160 .
Table 3. Results for Kepler and e = 0.5 .
Table 3. Results for Kepler and e = 0.5 .
num8varN8ph18
Accepted StepsRejected StepsAccurate DigitsStepsAccurate Digits
52620 4.5 530 2.2
68720 5.5 705 3.3
91320 6.6 938 4.3
120920 7.7 1250 5.3
160620 8.8 1665 6.4
Table 4. Results for Kepler and e = 0.7 .
Table 4. Results for Kepler and e = 0.7 .
num8varN8ph18
Accepted StepsRejected StepsAccurate DigitsStepsAccurate Digits
61244 4.2 633 0.0
80945 5.1 842 0.6
107746 6.3 1121 1.6
143146 7.3 1494 2.6
188848 8.4 1991 3.6
Table 5. Results for Kepler and e = 0.9 .
Table 5. Results for Kepler and e = 0.9 .
num8varN8ph18
Accepted StepsRejected StepsAccurate DigitsStepsAccurate Digits
76361 3.0 850 1.6
102270 3.2 1122 0.9
132463 4.5 1414 0.6
175163 5.6 1841 1.9
237365 6.7 2469 1.0
Table 6. Results for simple scalar linear problem.
Table 6. Results for simple scalar linear problem.
num8varN8ph18
Accepted StepsRejected StepsAccurate DigitsStepsAccurate Digits
142 3.0 14 1.6
160 4.2 16 1.9
250 5.4 25 3.2
300 6.2 30 3.8
380 7.3 38 4.5
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Alshammari, O.; Aoun, S.B.; Kchaou, M.; Simos, T.E.; Tsitouras, C.; Jerbi, H. Eighth-Order Numerov-Type Methods Using Varying Step Length. Mathematics 2024, 12, 2294. https://doi.org/10.3390/math12142294

AMA Style

Alshammari O, Aoun SB, Kchaou M, Simos TE, Tsitouras C, Jerbi H. Eighth-Order Numerov-Type Methods Using Varying Step Length. Mathematics. 2024; 12(14):2294. https://doi.org/10.3390/math12142294

Chicago/Turabian Style

Alshammari, Obaid, Sondess Ben Aoun, Mourad Kchaou, Theodore E. Simos, Charalampos Tsitouras, and Houssem Jerbi. 2024. "Eighth-Order Numerov-Type Methods Using Varying Step Length" Mathematics 12, no. 14: 2294. https://doi.org/10.3390/math12142294

APA Style

Alshammari, O., Aoun, S. B., Kchaou, M., Simos, T. E., Tsitouras, C., & Jerbi, H. (2024). Eighth-Order Numerov-Type Methods Using Varying Step Length. Mathematics, 12(14), 2294. https://doi.org/10.3390/math12142294

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop