02/24/2009, 08:24 PM
(This post was last modified: 02/25/2009, 12:17 AM by sheldonison.)

sheldonison Wrote:....In this post, I will use this equation to derive the , accurate to five significant digits, using a linear approximation of sexp/slog. I haven't made any progress in proving the limit converges, but assuming it does, earlier in this thread I derived the error term of a linear approximation as the base approaches .

With a little additional algebra, this allows defining an sexp/slog extension to real numbers, for base e, by iterating the ln function "n" times. In practice, for base e, using n=5 will give approximately a million digits of precision. This also works for any other arbitrary base.

error term =~

relative error term =~

with m=, as b approaches ,

The error term uses the difference between a linear approximation, and a 3rd order approximation for the critical section. A linear approximation has a continuous 1st derivative, and a 3rd order approximation has a continuous 2nd derivative.

For this example, use a linear approximation to calculate sexp_e(-0.5), accurate to five significant digits. The relative error term required would be , which leads to m=~1/295. Use b=+(1/1500). As a comparison, the other results I used were +(1/25), but using a third order approximation. The base being used here is much closer to , and there are a lot more iterations.

Starting with the limit equation, I picked a value of n=5, for sexp_e(5). My excel spreadsheet can't handle sexp_e(5), but it can handle x=slog_b(slog_b(sexp_e(5)), which is x=10355300. Then, keep iterating x=log_b(x), another 65 times, for a total of 67 log_b iterations, until the value of x is less then log_b(e).

I stopped at x=2.71365. Now that x is in the linear region of the slog_b(x) curve, let x= sexp_b(slog_b(x)-0.5). For the slog_b function, I got a remainder term of 0.638016. Subtract 0.5, and use the linear approximation to begin the conversion back to the sexp_b, x=2.71194. The error term doubles to +/-0.000002 since two different linear approximations are required, one for the slog_b and another for the sexp_b.

Now iterate, taking x=b^x 66 times. I got x=5.36*10^77. One last exponentiation will be too large for the spread sheet, so I pair it up with the first ln. Let x= ln(ln(ln(ln(ln(b^x))))). The result I got was sexp(-0.5)=0.497818+/-0.00002.

Using the more accurate 3rd order approximation for the critical section, I got sexp(-0.5)=0.49783297. The delta between the two values was 1.5*10^-5 which is less than 2*10^-5.

The next thing I plan to do is to convert the base=e sexp function posted by Kouznetsov to another base, probably b=1.45, and graph the equations and derivatives to show that Kouznetsov's sexp function requires a 1-cyclic definition of sexp/slog base conversions, as the limit cannot converge to a constant, but instead wobbles. Jay noticed the same thing for Andy's sexp/slog extension to real numbers. I will also graph the sexp_e function converting from base=1.45. Any other suggestions?