Using Horner’s Algorithm to Reduce Computing Times

DOI : 10.17577/IJERTV12IS060143

Download Full-Text PDF Cite this Publication

  • Open Access
  • Authors : M.A. Sandoval-HernáNdez, H. Vazquez-Leal, U.A. Filobello-Nino, G.J. Morales-AlarcóN, G.C. Velez-LóPez, R. CastañEda-Sheissa, S.Y. Campos-Dominguez, S. OcañA-Pimentel, J.A. Domiguez-Chavez, C.E. Sampieri-Gonzalez, J.E. Pretelin-Canela, N. Bagatella-Flores, A.R. Escobar-Flores3, A.D. Contreras-Hernandez, O. Alvarez-Gasca, A.E. Gasca-Herrera, J.E. Perez-Jacome-Friscione, L. Cuellar-Hernandez, B. Pablo-LóPez8.
  • Paper ID : IJERTV12IS060143
  • Volume & Issue : Volume 12, Issue 06 (June 2023)
  • Published (First Online): 05-01-2019
  • ISSN (Online) : 2278-0181
  • Publisher Name : IJERT
  • License: Creative Commons License This work is licensed under a Creative Commons Attribution 4.0 International License

Text Only Version

Using Horner’s Algorithm to Reduce Computing Times

,

M.A. Sandoval-Hernández1,2, H. Vazquez-Leal3,4,*, U.A. Filobello-Nino3, G.J. Morales-Alarcón5 G.C. Velez-López6,

R. Castañeda-Sheissa3, S.Y. Campos-Dominguez7, S. Ocaña-Pimentel7, J.A. Domiguez-Chavez3, C.E. Sampieri-Gonzalez3,

J.E. Pretelin-Canela3, N. Bagatella-Flores3, A.R. Escobar-Flores3, A.D. Contreras-Hernandez3, O. Alvarez-Gasca3,

    1. Gasca-Herrera3, J.E. Perez-Jacome-Friscione3, L. Cuellar-Hernandez3, B. Pablo-López8.

      1 Centro de Bachillerato Tecnológico industrial y de servicios No. 190, Av. 15 Col. Venustiano Carranza 2da Sección, Boca del Río, 94297, Veracruz, México.

      2Escuela de Ingeniería, Universidad de Xalapa, Carretera Xalapa-Veracruz Km 2 No. 341,91190 Xalapa, Veracruz, México

      3Facultad de Instrumentación Electrónica, Universidad Veracruzana, Circuito Gonzalo Aguirre Beltrán S/N, Xalapa, 91090, Veracruz, México.

      4Consejo Veracruzano de Investigación Científica y Desarrollo, Av. Rafael Murillo Vidal No. 1735, Cuauhtémoc, Xalapa, 91069, Veracruz, México.

      5Instituto de Psicología y Educación, Universidad Veracruzana, Agustín Melgar 2, col. 21 de Marzo, Xalapa, 91010 Veracruz, México.

      6Instituto Nacional de Astrofísica, Óptica y Electrónica, Luis Enrique Erro 1, Sta. María Tonantzintla, 72840, Puebla, México.

      7Facultad de Arquitectura, Universidad Veracruzana, Circuito Gonzalo Aguirre Beltrán S/N, Xalapa, 91090, Veracruz, México.

      8Instituto Tecnológico de Veracruz, Tecnológico Nacional de México, Calz. Miguel Ángel de Quevedo 2779 Col. Formando Hogar, Veracruz, 91897, Veracruz, México.

      Abstract The primary aim of this paper is to enhance students' comprehension of Horner's method, as certain intricacies remain ambiguous due to the prevailing influence of the mathematical discourse in books and educational resources. This article delves into an examination of nested polynomials through a pictographic lens. Moreover, a practical implementation is showcased to assess the computational efficiency. The obtained outcomes align with the existing literature, substantiating the documented benefits of employing this method.

      Keywords Computing time, polynomial functions, mathematical speech, synthetic division.

      1. INTRODUCTION

        The utilization of computational evaluation is crucial for implementing mathematical expressions in programming languages, such as C++, Python, and Fortran. Numerical analysis courses emphasize the importance of error analysis, which typically assesses the accuracy of numerical algorithms in terms of absolute or relative error [1, 2]. However, there are cases where accuracy is expressed in significant digits [3, 4].

        Mathematics books are often influenced by the school mathematical discourse (dME), as authors tend to maintain a consistent approach in subsequent editions, making pedagogical improvements along the way. As a result,

        published books generally adhere to the established standards within the literature [5-9].

        In [10], a concise educational discussion was presented regarding the significance of managing computation times in various electronic applications, including digital signal processors and embedded systems. The article also delved into the utilization of fixed-point arithmetic in embedded systems, as previously discussed in [10, 11]. In the same way, a brief introduction was given about the importance of Horner's algorithm [12, 13].

        By employing this approach, Horner's rule enables the computation of a polynomial's value in a quick and efficient manner. This makes it a valuable tool in numerous scientific and mathematical domains, where reducing computation times is of great importance.

        The primary objective of this article is to aid students in enhancing their understanding and proficiency in utilizing the Horner algorithm for computational tasks, specifically through the use of tools like Maple. The intention is to equip students with the necessary skills to effectively apply the Horner algorithm and leverage computational tools to minimize computation times. By providing guidance and insights, the article aims to facilitate the learning process and empower students in their computational endeavors.

        This paper is organized as follows. In Section II, we introduce the Horners Method. In section III in we present three case studies. In the first, a division of polynomials using Horner's method is explained by means of a pictographic table. In the second case study, the division of a polynomial by a binomial is presented. In this case study, we also present the numerical evaluation of a polynomial. Likewise, the importance of the remainder theorem with the latter is presented. The third case study presents an application of the Horner method to the cumulative distribution function to determine the computational time spent in being evaluated by the computer. Section IV presents the numerical simulations and discussion. Finally, a concluding remark is given in Section V.

      2. SOME BASICS OF HORNER'S METHOD Horner's method (HM), an algorithm for polynomial

        evaluation, holds significance in mathematics and computer science. Although credited to William George Horner, it predates him and has been attributed to Joseph-Louis Lagrange, with roots tracing back to Chinese and Persian mathematicians [14]. With the advent of computers, this algorithm became fundamental for efficient polynomial computations.

        We consider the polynomial of degree nwith where the coefficients are given by

        () = + 1 + 22 + + 0

        (1)

        1. by ( 0) using synthetic division. in other words we will evaluate (1) at ( = 0) Table 1 shows the procedure described

          by synthetic division.

          Horner described this variant of the Newton-Raphson method in 1819, which improved its efficiency for manual calculations by incorporating Horner's rule. This approach remained widely used until the proliferation of computers around 1970.

          TABLE I. SYNTHETIC DIVISION IN HORNER'S METHOD

          0

          0

          1

          2

          3

          00

          (1 + 00)0

          (2

          + (1 + 00)0)0

          0

          (1

          + 00)

          2

          + (1 + 00)0

          3 + (2

          + (1 + 00)

          0)0

          QED

          In the shaded region of Table 1 we have (1) in the nested

          form evaluated at ( = 0). Thus we have (1) in nested form for any value of given by

          () = +

          (1 + (2 + (3 + + (1 + 0)))).

          (5)

          with

          0 = 0, = + 10,

          (2)

          Horner's method requires only of n multiplications and n

          additions to evaluate an arbitrary th degree polynomial [15].

          In addition to polynomial evaluation, Horner's method also

          refers to a technique for approximating polynomial roots [12].

          where = 1,2,3, , 1, .

          Likewise, we consider the polynomial () given by

          () = 01 + 12 + + 2 + 1.

          (3)

      3. CASE STUDIES

        In this section we will present three case studies where HM is used.

        Case 1: Division of two polynomials using Horner's algorithm

        The Remainder Theorem of Polynomial is

        () = ( 0)() + (),

        (4)

        Using a numerical example, wewill show the procedure for

        division ()/() with

        () = 86 + 365 + 604 + 163 1462 + 101,

        where Q(x) is the quotient given by (3), (x x0) is the divisor and () is the remainder.

        Furthermore, if we wish to evaluate the polynomial P(x)

        at = 0 , P(x0) is the numerical evaluation at that point. In

        and divisor given by

        () = 22 + 5 3.

        (6)

        other words we have

        (0) = (0).

        Table II shows the ordering when the process is carried out

        by hand. The dividend is placed in the upper row by ordering the coefficients of the term with the highest exponent to the lowest exponent. In the same way, the coefficients of the divisor are placed in order from the term with the highest exponent to

        When calculations by hand, build first a board in which synthetic division is used. In this way, we are going to divide

        the term with the lowest exponent.

        The divisor coefficients are placer on the left of the board. Note that the signs of the coefficients have been reversed, except for the coefficient of the term with the largest exponent at the top.

        TABLE III. SYNTHETIC DIVISION IN HORNER'S METHOD

        Divisor

        Dividend

        101

        0

        Quotient

        Remainder

        /

        2

        101

        0

        20

        12

        40

        24

        80

        48

        100

        60

        5

        3

        Quotient

        Remainder

        TABLE II. BOARD HORNER'S METHOD

        The number of terms of the remainder is determined by the largest exponent of the divisor. In this case the degree is 2. Now we count two positions from right to left. A space dash line has been placed on the table III to separate the remainder from the quotient.

        It is important to see that the columns that form the quotient, the total of the sums, the sums have been placed at the top, (i, e. 16, 32, -40 and 2) while the columns that form the remainder, and the totals are placed at the bottom (i.e., 36 and 3).

        The polynomial for the quotient is given by

        To carry out the division we will follow the following

        procedure once the coefficients of () and g(x) have been placed.

        () = 44

        The remainder is

        + 83

        + 162

        20 + 1.

        (7)

          • First. We divide the coefficients of the dividend by the divisor (i.e. 8 by 2) and we obtain the quotient (equal to 4).Our quotient 4 will be placed at the bottom of the

            () = 36 + 3.

            (8)

            column. This will be our first column.

          • Second. Our quotient 4 is multiplied by the coefficients of the divisor (i.e. -5 and 3) and the products are placed in the next columns to the right (i.e. -20 and 12 respectively). Now we proceed to add the second coefficient 36 with -20 and the total 16 will be placed at the top of the second column.

          • Third. The total 16 will be divided by the coefficient

            of the greater term of the divisor 2 (i.e. 16/2 equal to

            8). The quotient 8 will be placed at the bottom of the

            The degree of the quotient (7) corresponds to the difference of the degrees of the dividend and the divisor, in this case it is 4.

            Using the remainder theorem (4), substituting () ,

            () and (), we obtain ().

            Case 2: In this case study we will use Horner's algorithm to divide a polynomial by a binomial. We will also evaluate it

            at a point 0 = 2.

            second column.

          • Fourth. Our quotient 8 is multiplied by the

            Part a. Divide (x) = 2×3

            5×2

            + 7x + 4 by (x) =

            coefficients of the divisor (i.e. -5 and 3) and the products are placed in the next columns to the right (i.e. -40 and 24 respectively). Now we proceed to add the third coefficient 60 with 12 and -40 and the total 32 will be placed at the top of the third column.

          • Five. The total 32 will be divided by the coefficient of

            the greater term of the divisor 2 (i.e. 32/2 equal to 16). The quotient 16 will be placed at the bottom of the third column. The process is repeated successively.

          • Six. Note that the last two columns correspond to the

        remainder. The sum is done from top to bottom and is placed at the bottom. The respective coefficients are 36 and 3.

        x + 2.We will place the polynomials on the board to carry out

        the synthetic division.

        Table IV shows the process of the synthetics division used in HM using a board.

        TABLE IV. DIVISION WITH HORNER'S METHOD

        /

        4

        18

        50

        The quotient is given by () = 22 9 + 25 and the remainder is () = 46.

        Part b. Determine the numerical value (2) for () in part a.

        The algebraic procedure is shown in Table IV. In this case,

        4 3 2

        0 = 2, or, (2) = 4 . Otherwise, we can obtain the

        nested polynomial given by (5) from table I.

        2( 105 9328 + 116928 483840 + 645120)

        2)

        1814409/2

        () = 4 + (7 + (5 + 2)).

        (9)

        2) 2) 2) .

        (11)

        Substituting = 0 = 2 in (9) we obtain (2) =

        (0) = (0) = 4. The nested polynomial (9) could be

        obtained using Maple's Horner command.

        #Code Maple

        restart;

        # Calling library MTM. MTMM is a

        # collection of Maple commands to support

        # Maple Toolbox with(MTM);

        #Example

        f := 2*x^3 – 5*x^2 + 7*x + 4; horner(f, x);

        The horner function in Maple writes the polynomial M in horner or nested form.

        Case 3: In this case study we will apply the HM in the Cumulative Distribution Function (CDF) published in [16]. We will calculate ad compare the computation times between the CDF polynomial and its nested form.

        CDF was published in [16] is given by

        1

        1

        CDF1() = 1 + (),

        9

        2(1054 93283 + 1169282 483840 + 645120)

        Figure 1 shows the computing times for 1() and 2()

        from equation (10) and (11). We can observe a reduction in

        times by roughly fourfold.

        Figure 1. CPU time for 1() and 2().

      4. NUMERICAL SIMULATIONS AND DISCUSSION

        Case study 1 presented an algebraic division between two polynomials [18] which has been performed using HM [12, 15] using synthetic division [12]. The procedure shown is clear and fast if a board is used to perform the calculations, avoiding the errors that are made when writing the coefficients and

        1() =

        1814409/2

        2(153 5332 + 3360 5760)

        + 7

        25207/2

        2(32 40 + 96)

        exponents in algebraic terms of conventional division.

        Case study 2 presented the division using HM of a polynomial by a binomial. Likewise, the evaluation of a

        605/2

        2( 4)

        + 33/2

        22

        3

        5

        polynomial () for 0 = 2 was carried out. It is important

        to note here that by using the remainder theorem (4) we get

        () = ( + 2)(22 9 + 25) .

        .

        (10)

        (12)

        However in part b (2)was evaluated and the numerical value was . Here the dME does not change the results that

        Applying HM with Maple's Horner command to (10) we

        obtain the nested polynomial for 2()

        1

        2

        CDF2() = 1 + (),

        were presented in case study 2. Neither does the way in which

        the procedures are exposed. It is important to note that the residual of obtained in Table IV and presented in (12), in this

        case , is the value of (2 ). In this way the dME is

        overcome.

        In case study 3, HM was used in the polynomial 1() of

        22 2() = (

        2( 4)

        + ( 33/2

        2(32 40 + 96)

        + ( 605/2 +

        the CDF function (10) using the Maple software to obtain the

        nested form 2() in (11). Figure 1 shows that the

        2(153 5332 + 3360 5760)

        ( 25207/2

        computation times are significant.

        We are now going to compare the computation times of

        (11) against the CDF that was published in [18]

        1 392

        111

        352 1

        CDF3() = 2 tanh ( 4

        arc tan ( )) + .

        2 2

        222

        (13)

        Equation (13) has two nested trigonometric functions. The first is the function arc tangent circular while the second is the hyperbolic tangent. As discussed in [10], hyperbolic functions spend more time in their numerical evaluation. Consequently, despite equation (13) having fewer terms than Equation (11), the factor expended in its evaluation is more than triple that of Equation (11).

        Figure 3. Significant digits for equations (11) and (13).

        Significant digits [3,4,19] can be calculated as follows

        () ()

        SD = log10 |

        |.

        ()

        (14)

        The functions () and () are the approximate and

        exact functions respectively.

        The graphs in figure 3 were obtained using (11), (13) into

        (14) and considering Maple CDF function as exact.

        Figure 2. CPU time equations (11) and (13).

        The code Fortran routine that was used to know the computation times is added in the appendix [19, 20]. Each point was evaluated a million times. The evaluated intervals were divided into one hundred parts.

        We recommend learning Fortran language because it is easy to learn and use. Currently it is still one of the most used languages for numerical computation with a lot of tested libraries. It is a language with optimized execution times [21, 22].

        It is important to mention that when approximations are made, another characteristic that is important to consider is the accuracy, which is determined considering the significant digits. For example, figure 3 show the significant digits in (11) and (13). Equation (13) has better accuracy than (11) for values less than 2.5.

        In [23, 24] two approximations calculated by the classical perturbation method [25-29] were presented. In both works an analysis of significant digits was carried out showing the accuracy of the approximations that were carried out.

        It is important to consider that the functions into (14) describe the relative error. The dME that prevails in literature does not say it.

        In this study, the computational system employed for the simulations consisted of an Intel Core Pentium(R) Intel® Core i7-7700 Central Processing Unit (CPU) running at a clock frequency of 3.60 GHz and featuring 8 processing cores. The operating system of choice was Linux Ubuntu 20.04 LTS, while the code compilation was performed using GFortran 9.4.0 as the compiler. Furthermore, the system was augmented with a dedicated graphics processing unit (GPU), namely the NVIDIA GeForce GTX 1050Ti, to enhance the graphical performance.

      5. CONCLUDING REMARKS

Knowing the computing time spent by mathematical functions is a crucial aspect when it comes to making optimizations in program codes, among others. In this article, our goal is to help students understand the importance and impact of Horner's method when it comes to evaluating functions in order to reduce the time you spend on your numerical assessment. It is important to always consider computational times as a key factor in the evaluation of mathematical functions on computers.

DECLARATION OF INTERESTS STATEMENT

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

ACKNOWLEDGMENTS

Authors would like to thank Roberto Ruiz Gomez for his contribution to this project. The authors are grateful to the anonymous referee for a careful checking of details and helpful comments that improved this paper.

APPENDIX

Fortran code. Time Measurement

!=========================================

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

program Normal_Cum_function_time

!

! Computation time: this code generates a table of CPU time

! Written by: Mario-A. Sandoval-Hernandez and Hector

! Vazquez-Leal

real :: start, finish, tt

integer iteracion,maxiter,jend,j,i

real*8 x,y,wmax,wmin,dw

maxiter=1000000 iteracion=1

jend=1E2 wmin=0.000000 wmax=4.0

dw=(wmax-wmin)/dble(jend)

! This code is to measure with Horners method

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

write(*,"( a15, a26, a23, a8)") "–y value ","—x value","–Tiempo ns","Loop"

write(*,"( a15, a10, a10, a10, a10, a10, a10)") "–

——–","———-","———-", "———-","——-

—","———-","——-.–"

OPEN (unit=20, File ='Normal_Cum-CPUtime_Horner.txt',

status ='unknown')

write(20,"(a10,a13, a26, a23, a8)") "y value ","x value ","Tiempo ns","Loop"

do j=1,jend x=wmin+dw*dble(j) call cpu_time(start)

do i=1,maxiter

y = 0.1D1 / (0.1D1 + exp((-0.2D1 * sqrt(0.2D1) * 0.3141592654D1 ** (-0.1D1 / 0.2D1) + & (sqrt(0.2D1) * (0.3141592654D1 – 0.4D1) * 0.3141592654D1 ** (-0.3D1 / 0.2D1) / 0.3D1 +& (-sqrt(0.2D1) * (0.3D1 * 0.3141592654D1 ** 2 – 0.40D2 * 0.3141592654D1 + &

0.96D2) * 0.3141592654D1 ** (-0.5D1 / 0.2D1) /

0.60D2 + &

(sqrt(0.2D1) * (0.15D2 * 0.3141592654D1 ** 3

0.532D3 * 0.3141592654D1 ** 2 + &

0.3360D4 * 0.3141592654D1 – &

0.5760D4) * 0.3141592654D1 ** (-0.7D1 / 0.2D1) /

0.2520D4 – &

sqrt(0.2D1) * (0.105D3 * 0.3141592654D1 ** 4

0.9328D4 * 0.3141592654D1 ** 3 + &

0.116928D6 * 0.314192654D1 ** 2 – 0.483840D6 *

0.3141592654D1 + &

0.645120D6) * 0.3141592654D1 ** (-0.9D1 / 0.2D1) *

x ** 2 / 0.181440D6) * &

x ** 2) * x ** 2) * x ** 2) * x))

enddo

call cpu_time(finish)

tt=((finish-start)/maxiter)*1000000000

write( *,"(0pf24.15, 0pf27.15, 0PF14.8, I7)" ) y, x,

tt,j

write(20,"(0pf24.15, 0pf27.15, 0PF14.8, I7)" ) y, x,

tt,j

enddo close (20)

end program Normal_Cum_function_time

REFERENCES

[1] Burden, Richard L., J. Douglas Faires, and Annette M. Burden. Numerical analysis. Cengage learning, 2015.

[2] Chapra, Steven C., and Raymond P. Canale. Numerical methods for engineers. Vol. 1221. New York: Mcgraw-Hill, 2011.

[3] Barry, D. A., Culligan-Hensley, P.J. and Barry, S.J., Real values of the W- function, ACM Transactions on Mathematical Software (TOMS), ACM New York, NY, USA, vol. 21, no. 2, pp. 161171, 1995.

[4] Barry, D.A., Barry, S.J. and Culligan-Hensley, P.J., Algorithm 743: WAPRA Fortran routine for calculating real values of the W-function, ACM Transactions on Mathematical Software (TOMS), ACM New York, NY, USA, vol. 21, no. 2, pp. 172181, 1995.

[5] Soto, D., Gomez, K., Silva, H. y Cordero, F. Exclusión, cotidiano e identidad: una problemática fundamental del aprendizaje de la matemática. Comité Latinoamericano de Matemática Educativa, pp. 1041-1048, 2012.

[6] Soto, D. y Cantoral, R. Discurso matemático escolar y exclusión. Una visión socioepistemológica, Bolema: Boletim de Educação Matemática, vol. 28 no. 50, pp. 15251544,2014.

[7] Uriza, R. C. and Espinosa, G. M. and Gasperini, D. R. Análisis del discurso matemático escolar en los libros de texto: una mirada desde la teora socioepistemológica, Avances de Investigación en Educación Matemática, no. 8, pp. 928, 2015.

[8] Sandoval-Hernández, Mario, Hernandez-Mendez, Sergio, Torreblanca- Bouchan, Salvador, Diaz-Arango, Gerardo, Actualización de contenidos en el campo disciplinar de matemáticas del componente propedéutico del bachillerato tecnológico: el caso de las funciones especiales. RIDE. Revista Iberoamericana para la Investigación y el Desarrollo Educativo 12.23 (2021).

[9] Sandoval-Hernández, M.A., Vázquez-Leal, H., Huerta-Chua, J. Castro- González, F.J., Filobello-Nino, U.A. Didáctica del graficado de funciones: el caso de las funciones piecewise. RIDE. Revista Iberoamericana para la Investigación y el Desarrollo Educativo 12.24 (2022).

[10] Sandoval-Hernández, M. A., Velez-López, G. C., Vázquez-Leal, H., Filobello-Nino, U. A., Morales-Alarcón, G.J., Martinez-Barrios, F., Vichi-Mendoza, J.C., Chong-Duran, J., Sampieri-Gonzalez, C.E., Castaneda-Sheissa, R., Pretelin-Canela, J.E., Gasca-Herrera, A.E., Perez- Jacome-Fricsione, J.E., Bagatella-Flores, N. Measurement of Computing Times using the Intrinsic Functions of Gfortran. International Journal of Engineering Research y Technology, 12. 03 (2023), 291-294.

[11] Sandoval-Hernández, M. A., Velez-López, G.C. Vázquez-Leal, H., Filobello-Nino, U.A., Morales-Alarcón, G.J., De-Leo-Baquero, E, Bielma-Pérez, A.C., Sampieri-González, C.E., Pérez-Jácome Friscione, J.E., Contreras-Hernández, A.D., Álvarez-Gasca, O., Sánchez-Orea, J., Cuellar-Hernández, L., Basic Implementation of Fixed-Point Arithmetic in Numerical Analysis. International Journal of Engineering Research y Technology 12. 01 (2023): 313-318.

[12] Uspensky, J. V., Maquieira, J. C., & Varela, J. P. Teoría de ecuaciones.

Limusa. 1987.

[13] Horner, W. G. A new method of solving numerical equations of all orders, by continuous approximation. In Abstracts of the Papers Printed in the Philosophical Transactions of the Royal Society of London (No. 2, pp. 117-117). London: The Royal Society. (1833, December).

[14] Berggren, J. L. Innovation and Tradition in Sharaf al-Din al-Tusi's Muadalat. Journal of the American Oriental Society. 110 (2): 304309. 1990

[15] Cajori, F. Horner's method of approximation anticipated by Ruffini. Bulletin of the American Mathematical Society. 17 (8): 409414. 1911.

[16] Sandoval-Hernandez, M. A., Vazquez-Leal, H., Filobello-Nino, U., & Hernandez-Martinez, L. New handy and accurate approximation for the Gaussian integrals with applications to science and engineering. Open Mathematics, 17(1), 1774-1793. 2019.

[17] Baldor, A. J. Algebra Baldor. Editorial Patria, 2011.

[18] Vazquez-Leal, H., Castaneda-Sheissa, R., Filobello-Nino, U., Sarmiento- Reyes, A., Sanchez Orea, J., High accurate simple approximation of normal distribution integral. Mathematical problems in engineering 2012.

[19] Vazquez-Leal, H., Sandoval-Hernandez, M.A., Gacria-Gervacio, J.L., Herrera-May, A.L., Filobello-Nino, U.A. PSEM approximations for both branches of Lambert W function with applications. Discrete Dynamics in Nature and Society 2019.

[20] Fukushima, T. Precise and fast computation of Lambert W-functions without transcendental function evaluations. Journal of Computational and Applied Mathematics 244 (2013): 77-89.

[21] Adams, J. C., Brainerd, W. S., Martin, J. T., Smith, B. T., & Wagener, J.

L. Fortran 90 Handbook. New York: McGraw-Hill, 1992.

[22] Daniels, R.W., An introduction to Numerical Methods and Optimization Techniques, Elsevier.

[23] Sandoval-Hernandez, M. A., Alvarez-Gasca, O., Contreras-Hernandez, A.D., Pretelin-Canela, J.E., Palma-Grayeb, B.E., Jimenez-Fernandez, V.M., Filobello-Nino, U., Pereyra-Diaz, D., Hernandez-Machuca, S.F., Sampieri-Gonzalez, C.E. and Gonzalez-Martinez, F.J., Castaneda- Sheissa, R., Hernandez-Mendez, S., Matias-Perez, J., Cuellar-Hernandez, L., Hoyos-Reyes, C., Cervantes-Perez, J., Varela-Lara, L.J., Vazquez- Aguirre, J.L., Gil-Adalid, L., Rocha-Fernandez, J.L., Bagatella-Flores, N.

Vazquez-Leal, H. Exploring the classic perturbation method for obtaining single and multiple solutions of nonlinear algebraic problems with application to microelectronic circuits. International Journal of Engineering Research & Technology 8.9 (2019).

[24] Sandoval-Hernandez, M., Vazquez-Leal, H., Filobello-Nino, U., De-Leo- Baquero, E., Bielma-Perez, A.C., Vichi-Mendoza, J.C., Alvarez-Gasca, O., Contreras-Hernandez, A.D., Bagatella-Flores, N., Palma-Grayeb, B.E. and Sanchez-Orea, J., 2021. The Quadratic Equation and its Numerical Roots. International Journal of Engineering Research y Technology, 10(6), pp.301-305.

[25] Powers, J. M., and M. Sen. Mathematical methods in engineering.

Cambridge University Press, 2015.

[26] Holmes, Mark H. Introduction to perturbation methods. Vol. 20.

Springer Science & Business Media, 2012.

[27] Jordan, D., and Peter Smith. Nonlinear ordinary differential equations: an introduction for scientists and engineers. Oxford, 2007.

[28] Carrier, G. F. Perturbation methods. Handbook of Applied Mathematics:

Selected Results and Methods ,1990

[29] Hinch, E.J., Perturbation Methods. Cambridge University Press, Journal of Fluid Mechanics (1992).