 My Math Forum EXP(x) approximation in old 1980's computer ROM
 User Name Remember Me? Password

 Pre-Calculus Pre-Calculus Math Forum

 July 21st, 2018, 09:41 AM #1 Newbie   Joined: Jul 2018 From: France Posts: 1 Thanks: 0 EXP(x) approximation in old 1980's computer ROM Hi, The presentation : ------------------ Old 1980’s ROM (Apple 2e, Commodore 64, ...) uses a Taylor’s series-like to evaluate the exponential function EXP(x) : EXP(x) = 1 + x + 1/2! x^2 + ... + 1/7! x^7 x is in [-1, 1], thanks to a preliminary work. Another preliminary work is to multiply x by a correction factor 1/ln(2) (better for the algorithm I suppose). So the series must take into account this factor and modify the coefficients : EXP(x) = 1 + ln(2) x + ln(2)^2 1/2! x^2 + ... + ln(2)^7 1/7! x^7 EXP(x) = a0 + a1 x + a2 x^2 + ... a7 x^7 a0 = 1.000000000 a1 = 0.693147181 ln(2) a2 = 0.240226507 a3 = 0.055504109 a4 = 0.009618129 a5 = 0.001333356 a6 = 0.000154035 a7 = 0.000015253 To reduce the Taylor error, especially near -1 and 1, the old 1980’s algorithm modify the coefficients with the Chebyshev polynomials approximation. As the comment says : “TCHEBYSHEV MODIFIED TAYLOR SERIES COEFFICIENTS FOR E**X” b0 = 1.000000000 b1 = 0.693147186 b2 = 0.240226385 b3 = 0.055505127 b4 = 0.009614017 b5 = 0.001342263 b6 = 0.000143523 b7 = 0.000021499 (see https://github.com/wsoltys/multicomp...6809/basic.asm line 3852) Now, the problem : ——---------------- ************************************************ * * Where these Chebyshev values come from ? * ************************************************ I did a lot of calculations to retreive these values. I used the normal method : compute the Chebyshev coefficients for EXP(x) up to 8 terms, then replace the Ti(x) by its x polynomial. Or by the economization method : compute Taylor EXP(x) up to x^9, and remove a9*T9(x)/2^8 and a8*T8(x)/2^7 (normally equivalent to the first method). No chance ! The computed Chebyshev coefficients I obtain, in accordance with the literature, are : c0 = 0.999999801 delta b0 - c0 = 0.000000199 c1 = 0.693147113 b1 - c1 = 0.000000073 c2 = 0.240229556 b2 - c2 = -0.000003171 c3 = 0.055504542 b3 - c3 = 0.000000585 c4 = 0.009610825 b4 - c4 = 0.000003192 c5 = 0.001332605 b5 - c5 = 0.000009658 c6 = 0.000159622 b6 - c6 = -0.000016099 c7 = 0.000015734 b7 - c7 = 0.000005765 Have you an idea ? Is the ROM coefficients really Chebyshev coefficients ? Is this another approximation method ? Am I wrong ? Thank you for your help. BR, July 21st, 2018, 08:51 PM #2 Senior Member   Joined: Sep 2016 From: USA Posts: 642 Thanks: 406 Math Focus: Dynamical systems, analytic function theory, numerics Your sequence of $b_i$'s is identical to your sequence of $a_i$'s and neither of these gives the Chebyshev expansion for $\exp(x)$. I get the following via the Matlab chebfun library: $c_0 = 1.2660, \ c_1 = 1.1303, \ c_2 = 0.2714, \ c_3 = 0.0443, \ c_4 = 0.0054$ On an unrelated note, why would you convert from Chebyshev basis back into monomial basis? This defeats the entire point of using a Cheybshev basis. Tags 1980, approximation, computer, expx, rom Thread Tools Show Printable Version Email this Page Display Modes Linear Mode Switch to Hybrid Mode Switch to Threaded Mode Similar Threads Thread Thread Starter Forum Replies Last Post Denis Computer Science 6 May 13th, 2017 08:27 AM MMath Computer Science 2 November 20th, 2016 08:38 AM Eminem_Recovery New Users 7 September 21st, 2011 12:25 PM johnny Computer Science 8 December 2nd, 2007 12:16 PM

 Contact - Home - Forums - Cryptocurrency Forum - Top      