Optimization of Rational Approximations by Continued Fractions

Similar documents
Computation of the error functions erf and erfc in arbitrary precision with correct rounding

Validating an A Priori Enclosure Using. High-Order Taylor Series. George F. Corliss and Robert Rihm. Abstract

. State whether the triangle is an isosceles triangle, a right triangle, neither of these, or both.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Final Exam C Name i D) 2. Solve the equation by factoring. 4) x2 = x + 72 A) {1, 72} B) {-8, 9} C) {-8, -9} D) {8, 9} 9 ± i

Continued Fractions for Special Functions: Handbook and Software

PreCalculus: Semester 1 Final Exam Review

Geometric Series Bounds for the Local Errors of Taylor Methods for Linear n-th Order ODEs

Section 4.1: Polynomial Functions and Models

CHAPTER 8A- RATIONAL FUNCTIONS AND RADICAL FUNCTIONS Section Multiplying and Dividing Rational Expressions

Final Exam A Name. 20 i C) Solve the equation by factoring. 4) x2 = x + 30 A) {-5, 6} B) {5, 6} C) {1, 30} D) {-5, -6} -9 ± i 3 14

Closed form expressions for two harmonic continued fractions

Verified Calculation of the Nodes and Weights for Gaussian Quadrature Formulas

2.6. Graphs of Rational Functions. Copyright 2011 Pearson, Inc.

3 Polynomial and Rational Functions

6.2 Their Derivatives

Find all points where the function is discontinuous. 1) Find all vertical asymptotes of the given function. x(x - 1) 2) f(x) =

MAT 107 College Algebra Fall 2013 Name. Final Exam, Version X

A Note on the Recursive Calculation of Incomplete Gamma Functions

Chapter 6: Rational Expr., Eq., and Functions Lecture notes Math 1010

Chapter 2. Polynomial and Rational Functions. 2.6 Rational Functions and Their Graphs. Copyright 2014, 2010, 2007 Pearson Education, Inc.

Polynomial and Rational Functions. Chapter 3

1) The line has a slope of ) The line passes through (2, 11) and. 6) r(x) = x + 4. From memory match each equation with its graph.

Calculus I Curriculum Guide Scranton School District Scranton, PA

Algebra II: Strand 5. Power, Polynomial, and Rational Functions; Topic 3. Rational Functions; Task 5.3.1

Polynomial Functions

CHAPTER 4: Polynomial and Rational Functions

Chapter 1 Mathematical Preliminaries and Error Analysis

5.3 Other Algebraic Functions

Uniform Random Binary Floating Point Number Generation

Lesson 2.1: Quadratic Functions

SHORT ANSWER. Write the word or phrase that best completes each statement or answers the question.

Arbitrary Accuracy with Variable Precision Arithmetic

A Partial List of Topics: Math Spring 2009

MATH 409 Advanced Calculus I Lecture 16: Mean value theorem. Taylor s formula.

Exponential Functions and Their Graphs (Section 3-1)

Computing Machine-Efficient Polynomial Approximations

SHORT ANSWER. Write the word or phrase that best completes each statement or answers the question.

Controlling the Population

Chapter 2 Polynomial and Rational Functions

PreCalculus Notes. MAT 129 Chapter 5: Polynomial and Rational Functions. David J. Gisch. Department of Mathematics Des Moines Area Community College

PAP Geometry Summer Work- Show your work

y2 + 4y - 5 c a + b 27 i C) ) (16, ) B) (16 3 3, )

Continuity and One-Sided Limits. By Tuesday J. Johnson

ACM 106a: Lecture 1 Agenda

Please print the following information in case your scan sheet is misplaced:

2 the maximum/minimum value is ( ).

Remember, you may not use a calculator when you take the assessment test.

Rational Functions. Elementary Functions. Algebra with mixed fractions. Algebra with mixed fractions

Use a graphing utility to approximate the real solutions, if any, of the equation rounded to two decimal places. 4) x3-6x + 3 = 0 (-5,5) 4)

ALGEBRA 2 FINAL EXAM REVIEW

Chapter 2 Polynomial and Rational Functions

arxiv: v4 [math.nt] 31 Jul 2017

. As x gets really large, the last terms drops off and f(x) ½x

Calculus. Weijiu Liu. Department of Mathematics University of Central Arkansas 201 Donaghey Avenue, Conway, AR 72035, USA

Die Grundlehren der mathematischen Wissenschaften

Section 3.2 Polynomial Functions and Their Graphs

The Intermediate Value Theorem If a function f (x) is continuous in the closed interval [ a,b] then [ ]

Math 115 Spring 11 Written Homework 10 Solutions

Ch 7 Summary - POLYNOMIAL FUNCTIONS

AP Calculus Summer Homework

8. Limit Laws. lim(f g)(x) = lim f(x) lim g(x), (x) = lim x a f(x) g lim x a g(x)

Math Boot Camp Functions and Algebra

A Symbolic Numeric Environment for Analyzing Measurement Data in Multi-Model Settings (Extended Abstract)

Note: The actual exam will consist of 20 multiple choice questions and 6 show-your-work questions. Extra questions are provided for practice.

Review all the activities leading to Midterm 3. Review all the problems in the previous online homework sets (8+9+10).

ABSTRACT. Department of Mathematics. interesting results. A graph on n vertices is represented by a polynomial in n

Math Section Bekki George: 08/28/18. University of Houston. Bekki George (UH) Math /28/18 1 / 37

Solution of Nonlinear Equations

Pre-Calculus Final Exam Review Units 1-3

Fall 09/MAT 140/Worksheet 1 Name: Show all your work. 1. (6pts) Simplify and write the answer so all exponents are positive:

Chapter 7 Polynomial Functions. Factoring Review. We will talk about 3 Types: ALWAYS FACTOR OUT FIRST! Ex 2: Factor x x + 64

Limits at Infinity. Horizontal Asymptotes. Definition (Limits at Infinity) Horizontal Asymptotes

INTERVAL MATHEMATICS TECHNIQUES FOR CONTROL THEORY COMPUTATIONS

171S4.3 Polynomial Division; The Remainder and Factor Theorems. October 26, Polynomial Division; The Remainder and Factor Theorems

171S4.3 Polynomial Division; The Remainder and Factor Theorems. March 24, Polynomial Division; The Remainder and Factor Theorems

MATHia Unit MATHia Workspace Overview CCSS

What makes f '(x) undefined? (set the denominator = 0)

Brouwer Fixed Point Theorem: A Proof for Economics Students

Pre-Calculus Midterm Practice Test (Units 1 through 3)

AP Calculus Summer Homework MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

SEVERAL PROOFS OF THE IRREDUCIBILITY OF THE CYCLOTOMIC POLYNOMIALS

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. B) 6x + 4

Numerical Algorithms. IE 496 Lecture 20

1 + lim. n n+1. f(x) = x + 1, x 1. and we check that f is increasing, instead. Using the quotient rule, we easily find that. 1 (x + 1) 1 x (x + 1) 2 =

Chapter 7: Exponents

Math 120 Final Exam Practice Problems, Form: A

Finite Mathematics : A Business Approach

Chapter 4: Radicals and Complex Numbers

Compute the behavior of reality even if it is impossible to observe the processes (for example a black hole in astrophysics).

Math /Foundations of Algebra/Fall 2017 Numbers at the Foundations: Real Numbers In calculus, the derivative of a function f(x) is defined

Power and Polynomial Functions. College Algebra

A Posteriori Error Bounds for Meshless Methods

6.1 Polynomial Functions

Chapter Five Notes N P U2C5

Mock Final Exam Name. Solve and check the linear equation. 1) (-8x + 8) + 1 = -7(x + 3) A) {- 30} B) {- 6} C) {30} D) {- 28}

MATHia Unit MATHia Workspace Overview TEKS

Reading Mathematical Expressions & Arithmetic Operations Expression Reads Note

Skills Practice Skills Practice for Lesson 10.1

arxiv: v1 [hep-lat] 2 May 2012

Transcription:

Bergische Universität Wuppertal Optimization of Rational Approximations by Continued Fractions Frithjof Blomquist Preprint BUW-WRSWT 2006/3 Wissenschaftliches Rechnen/ Softwaretechnologie

Impressum Herausgeber: Prof. Dr. W. Krämer, Dr. W. Hofschuster Wissenschaftliches Rechnen/Softwaretechnologie Fachbereich C (Mathematik und Naturwissenschaften) Bergische Universität Wuppertal Gaußstr. 20 42097 Wuppertal, Germany Internet-Zugriff Die Berichte sind in elektronischer Form erhältlich über die World Wide Web Seiten http://www.math.uni-wuppertal.de/wrswt/literatur.html Autoren-Kontaktadresse Frithjof Blomquist Adlerweg 6 66436 Püttlingen, Germany E-mail: blomquist@math.uni-wuppertal.de

Optimization of Rational Approximations by Continued Fractions Frithjof Blomquist University of Wuppertal Scientific Computing / Software Technology Gaußstr. 20 D-42097 Wuppertal, Germany Abstract To get guaranteed machine enclosures of a special function f(x), an upper bound ε(f) of the relative error is needed, where ε(f) itself depends on the error bounds ε(app), ε(eval) of the approximation and evaluation error respectively. The approximation function g(x) f(x) is a rational function (Remes algorithm), and with sufficiently high polynomial degrees ε(app) becomes sufficiently small. Evaluating g(x) on the machine produces a rather great ε(eval) because of the division of the two erroneous polynomials. However, ε(eval) can distinctly be decreased, if the rational function g(x) is substituted by an appropriate continued fraction c(x) which in general needs less elementary operations than the original rational function g(x). Numerical examples will illustrate this advantage. Keywords: C-XSC, continued fractions, error bounds, Special Functions. MSC(2000): 65G30, 65G50, 4A50, A55. Introduction In general the exact sum a + b of two machine numbers a, b is not a machine number itself and must therefore be rounded to the IEEE system S(2,53). If the rounding is realized to one of the neighboring machine numbers, denoted by a b, the relative error ε a+b is defined by (a + b) (a b) = ε a+b (a + b) and it holds [2] ε a+b ε := 2 52 = 2.220446... 0 6, (high accuracy). ε is the error bound of the elementary operations in high accuracy. If f(x) denotes the machine approximation of the exact function value f(x), the relative error ε f is defined by f(x) f(x) = εf f(x) and for the error bound ε(f) it holds for all machine numbers x of the domain D f ε f ε(f) x D f S(2, 53). If f(x) is approximated by g(x) f(x) and if g(x) denotes the machine value of g(x) g(x) then f(x) = g(x) and with f(x) g(x) g(x), together with the definitions f(x) g(x) = ε app (x) f(x), ε app (x) ε(app) x D f, g(x) g(x) = ε eval g(x), ε eval ε(eval, g) x D f

the triangle inequality delivers () ε(f) = ε(app) + ε(eval, g) [ + ε(app)] x D f S(2, 53), so guaranteed values of the upper bounds ε(app) and ε(eval, g) are needed for calculating an guaranteed upper bound ε(f) of the relative error ε f. Let [a, b] D f be a given approximation interval, where f(x) is a positive and monotonic increasing function then a guaranteed enclosure of all function values f(x) is given by the following interval [ ] f(a) f(x) + ε(f), f(b) x D f S(2, 53), ε(f) so ε(f), depending on ε(app) and ε(eval, g), is essential for implementing interval functions, and for tight enclosures small values of ε(app) and ε(eval, g) are needed. 2 Approximation Error In contrast to the elementary functions by special functions the approximation intervals [a, b] are widespread, not containing the origin in general. Therefore a rational function g(x) := P M (x x 0 ) Q N (x x 0 ) f(x), M, N IN, calculated with the Remes algorithm, delivers an optimal approximation of f(x), i.e. ε(app) is for example much smaller than the appropriate error bound, calculated with the Padé algorithm using the same values of M, N. The typical behavior of the relative approximation error ε app (x), caused by best approximation with M = N = 4, is shown in figure. Relative approximation error y a b x Figure : Best approximation with g(x): ε app (x), M = N = 4. 2

There are M + N + 2 = 8 equal values of the absolute extrema of ε app (x). The coefficients of the polynomials P M, Q N are calculated with the algebra system Mathematica, using a precision of 50 decimal digits. However, in practice these coefficients must be rounded to the IEEE system and hereby the maximum of ε app (x) will be enlarged roughly by factor 2. The typical influence of this rounding is shown in figure 2, where the rounding is done to 7,6,5 and 4 decimal digits. 8 8 0.2 0.2 8 5 0.2 0.2 8 60 0.2 0.2 5 0.2 0.2 60 Figure 2: ε app (x); rounding the coefficients to 7,6,5,4 decimal digits For the best approximation with g(x) Mathematica delivers an approximation error, which however can only be used as an estimated value to realize the proper polynomial degrees M, N, because there is no information about the used algorithm. Furthermore, concerning the described rounding effects, the approximation error must be re-evaluated to get a reliable value of the upper bound ε(app), [4]. With a C-XSC program a guaranteed upper bound ε(app) can be calculated, [2]. So, with sufficiently high values of M, N, ε(app) can be treated as a nearly optimal and reliable value. 3 Evaluation Error In [2] a C-XSC library is described for calculating reliable upper bounds ε(eval) of the evaluation errors concerning the elementary operations. Additionally C- XSC functions are implemented for calculating guaranteed upper bounds of the relative evaluation errors, if polynomials or rational functions are evaluated in the IEEE system. In practice, for not too wide intervals [a, b] and with a proper point of expansion x 0 [a, b] for polynomials we have ε(eval) 4 ε. Hence, for a rational approximation function g(x) it holds ε(eval, g) (2 4 + ) ε = 9 ε. In 3

comparison with the upper bound of the approximation error, which should be ε(app) 0. ε, the upper bound ε(eval, g) is much too great and should ideally be reduced to ε(eval) ε. To get such a small evaluation error ε(eval) ε, the approximation function g(x) f(x) should be a sum (2) (3) S + s(x x 0 ), S, x, x 0 S(2, 53), with S s(x x 0 ), where S must be an error-free summand, which should be rather great in comparison to the erroneous second summand s(x x 0 ), [2]. 4 Approximation with Continued Fractions Starting from the rational function g(x) = P M (x x 0 )/Q N (x x 0 ) the question is now, how to get a nearly equivalent sum S + s(x x 0 ) g(x), fulfilling the condition (3). S + s(x x 0 ) must be nearly equivalent to g(x) in order to keep the small approximation error ε(app) 0. ε. To achieve the sum (2) we perform simple polynomial divisions, where two strategies can be pursued. Discarding in P M (x x 0 ) the summand with the highest exponent M, 2. Discarding in P M (x x 0 ) the summand with the exponent 0. Strategy. is demonstrated with the following example, setting u = (x x 0 ) (4) (5) g(x) = (2 + 4u 2u 2 ) : ( u + u 2 ) = 2 + 4 + 2u u + u 2 = 2 + u + u 2 4 + 2u = 2 + 2 u 3 2 + 7 4 + 2u 2 = 2 + u 3 + 7 u + 2 In (5), with S = 2, we have the desired structure (2). However, the condition (3) is only fulfilled for u +. With strategy 2. we get (6) g(x) = (2 + 4u 2u 2 ) : ( u + u 2 u ) = 2 + 6 + u u 8 + 42 + u 4, 4

now with S = +2, and condition (3) is fulfilled for u 0, i.e. for x x 0. To get a short runtime we should use (5), because here we only need 6 elementary operations instead of 8 operations in (6). However, in (5) we should have u + for x x 0. This problem is solved by using the transformation u = /v in the rational function g(x), and a subsequent polynomial division with strategy. and v := /(x x 0 ) delivers (7) g(x) = ( 2 + 4v + 2v 2 ) : ( v + v 2 6 ) = 2 + v 3 + 7/9 v 2 3 =: c(v). In (7) x x 0 must be realized, and g(x 0 ) := 2 is a continuous supplementation. Now we have the desired result: v + for x x 0. Hence, with the continued fraction c(v) on the right-hand side in (7) we will find rather small evaluation errors using not too wide approximation intervals with a suitable point of expansion x 0 [a, b]. Here still a closing remark for calculating the approximation error. Starting with c(v), defined in (7), we first have to realize a rational interval function r(x) enclosing this finite continued fraction. The task can be done using the recurrence formula in [7,pp. 75 77], and with a C-XSC program a guaranteed upper bound ε(app) of the relative approximation error can be calculated, [,2]. 5 Numerical Examples In this section the improvement of the evaluation error is demonstrated by using a continued fraction analogously to (7) instead of the rational function g(x) = P M (x x 0 )/Q N (x x 0 ). The special functions to be approximated are the error function erf(x) and the complementary error function erfc(x). 2 erf erfc 2 2 Figure 3: erf(x) and erfc(x) 5

The two functions erf(x) and erfc(x) are defined by erf(x) := 2 π 0 x e t2 dt, erfc(x) := erf(x) = 2 π x e t2 dt, x IR; 5. Approximation of erfc(x) (x), x [4, 26.5] In the wide approximation interval [a, b] = [4, 26.5] we consider the asymptotic expansion, [, formulae 7..23, 7..24] erfc(x) = [ e x2 π x (2x 2 ) + 3 ] (2x 2 ) 2 +... + 3 (2N ) ( )N (2x 2 ) N + r r = r(x, N) 3 5... (2N + ) (2x 2 ) N+, N =, 2, 3,... With the factor e x2 in the above asymptotic expansion erfc(x) is a strongly decreasing function. Hence, the following approximation erfc(x) c N (v) with a continued fraction c N (v) of length N will fail, because c N (v) itself is a strongly decreasing function, which consequently can not fulfill the condition (3) for a small evaluation error. However, in contrast to erfc(x), the quotient erfc(x)/e x2 is a nearly constant function, which can successfully be approximated by a continued fraction c 4 (v) of length 4; v := /(x x 0 ), x 0 := 20.5; (8) erfc(x) e x2 c 4 (v) := b 0 + a v + b + v + b 2 + a 2 a 3 v + b 3 + a 4 v + b 4., x x 0. The calculation of the rational function P 4 (x x 0 )/Q 4 (x x 0 ), the transformation u := x x 0 = /v and the computation of the a k, b k is done with the algebra system Mathematica. Approximations of the a k, b k S(2, 53) are listed in the following table: k a k := nearest(.) b k := nearest(.) 0 +0.000000000000000000 0 +0 +2.74888559348722 0 2.3377458668287076 0 3 +4.86078087257886297 0 2 2 +2.77654906442560 0 6 +4.8267667502656847 0 2 3 +5.4285462590422025 0 6 +4.79352496454342483 0 2 4 +7.98262992430865797 0 6 +4.740077663045964 0 2 Table : Approximations of the a k, b k S(2, 53) with 9 decimal digits. Notice, that erfc(x 0 )/e x2 0 will be approximated by b0 = 2.74888559... 0 2. As erfc(x)/e x2 and c 4 (v) are nearly constant functions in [a, b], the condition 6

(3) for a small evaluation error of c 4 (v) will fairly well be fulfilled, and a C-XSC program delivers the guaranteed upper bound ε(eval, c 4 (v)) of the evaluation error (9) ε(eval, c 4 (v)) = 5.35363 0 6 2.4 ε. If the approximation is done by the rational function g(x) erfc(x) e x2 g(x) := P 4(x x 0 ) Q 4 (x x 0 ) c 4(v), x [a, b], with the same point of expansion x 0 = 20.5, then with another C-XSC program we get the guaranteed upper bound ε(eval, g(x)) of the evaluation error (0) ε(eval, g(x)) = 3.469925 0 5 5.6 ε. Comparing the results in (9) and (0) we get an improvement of the evaluation error by the factor 6.5 using the continued fraction c 4 (v) instead of the rational function g(x). Up to now we have approximated only the quotient erfc(x)/e x2. However, in practice erfc(x) is evaluated by h(x): erfc(x) h(x) := e x2 c 4 (v), v = x x 0. The machine value h(x) is defined by h(x) := expmx2(x) c4 (ṽ(x)), ṽ(x) := (x x 0 ), where expmx2(x) is the C-XSC function for calculating e x2, provided with the error bound ε(e x2 ) = 4.6899 0 6. {,,, } is the set of the erroneous floating-point operators. The upper bound ε(eval, h(x)) of the relative evaluation error ε eval is defined by h(x) h(x) = εeval h(x), ε eval ε(eval, h(x)) =.233494 0 5, and calculated with a special C-XSC program. Using the upper bound ε(app, erfc(x)) = 7.7344 0 7 of the approximation error [2], together with () we finally get ε erfc := erfc(x) h(x), ε erfc ε(erfc(x)) =.309 0 5 x [a, b]. erfc(x) 5.2 Approximation of erf(x) (x), x [4.75, 6] As can be seen in figure 3, erf(x) is a nearly constant function for x [a, b] = [4.75, 6]. Hence, an approximation with the continued fraction c 5 (v) () erf(x) c 5 (v) := b 0 + v + b + v + b 2 + v + b 3 + 7 a a 2 a 3 a 4 v + b 4 + a 5 v + b 5.

v = x x 0, x x 0, x 0 = 43 8 = 5.375; will lead to a rather small evaluation error of c 5 (v), because condition (3) is fulfilled now very well. As in section 5. the calculation of the rational function P 4 (x x 0 )/Q 4 (x x 0 ), the transformation u := x x 0 = /v and the computation of the a k, b k is done with the algebra system Mathematica. Approximations of the a k, b k S(2, 53) are listed in the following table: k a k := nearest(.) b k := nearest(.) 0 +0.000000000000000000 0 +0 +9.999999999999707074 0 +3.20486895709238 0 3 +5.376690224467207768 0 +0 2 +9.97477472292480 0 +0 8.665555788956434789 0 2 3 +2.027560425989699 0 +0.0236269435896072 0 4 +9.033599978035409 0 2.3409993770555262 0 5 +4.48307205352668 0 4.9945720677685505 0 Table 2: Approximations of the a k, b k S(2, 53) with 9 decimal digits. Notice, that erf(x 0 ) will be approximated by b 0 = 9.99999999999970... 0 without any evaluation error. With the erroneous machine value c 5 (ṽ) the relative evaluation error ε eval is defined by ε eval = c 5(ṽ) c 5 (v), ṽ = (x x 0 ). c 5 (v) A C-XSC program delivers for the upper bound ε(eval, c 5 (v)) the following result (2) ε eval ε(eval, c 5 (v)) = 2.220447 0 6 ε. As we have already supposed, with the continued fraction c 5 (v) we now get a rather small and optimal upper bound of the relative evaluation error. If the approximation is done by the rational function g(x) erf(x) g(x) := P 5(x x 0 ) Q 5 (x x 0 ) c 5(v), x [a, b], with the point of expansion x 0 = 4.875, then with another C-XSC program we get the guaranteed upper bound ε(eval, g(x)) of the evaluation error (3) ε(eval, g(x)) = 3.450345 0 5 5.5 ε. Comparing the results in (2) and (3) we get an improvement of the evaluation error by the factor 5.5 using the continued fraction c 5 (v) instead of the rational function g(x). 8

With the upper bound ε(app, erf(x)) = 2.0982 0 7 of the approximation error [2], together with () we finally get a rather small error bound: ε erfc := erfc(x) h(x), ε erfc ε(erfc(x)) = 2.4303 0 6 x [a, b]. erfc(x) Both examples demonstrate a drastic reduction of the evaluation error by using a continued fraction of structure (7) instead of an equivalent rational approximation function. Furthermore the runtime can be reduced, because the evaluation of c 5 (v) in () needs only 7 elementary operations in contrast to the rational function P 5 (x x 0 )/Q 5 (x x 0 ), which requires 22 operations. References: [] Abramowitz M., Stegun I.A. Handbook of Mathematical Functions, with Formulas, Graphs, and Mathematical Tables, Dover Publications, Inc., New York, 972. [2] Blomquist, F.; Entwicklung von Werkzeugen zur automatischen Berechnung von a priori Fehlerschranken und deren Anwendung bei der Realisierung von hochgenauen mathematischen Funktionen in Rechenanlagen, Fachbereich 7, Mathematik, Bergische Universität Wuppertal, 2006. [3] Hofschuster W., Krämer Walter C-XSC 2.0: A C++ Library for Extended Scientific Computing, published in: Alt René., Frommer A., Kearfott R. Baker, Luther W. (eds): Numerical Software with Result Verification, Lecture Notes in Computer Science, Volume 299/2004, Springer-Verlag, Heidelberg, pp. 5-35, 2004. [4] Krämer, W.; Sichere und genaue Abschätzung des Approximationsfehlers bei rationalen Approximationen, Report of the Institut für Angewandte Mathematik, Universität Karlsruhe, Germany, 996. [5] Maple, Computer algebra system. [6] Mathematica, Computer algebra system. [7] Press W.H. et al. Numerical Recipes in C, The Art of Scientific Computing, second edition, Cambridge University Press, 992. 9