Tetration Forum
computing the iterated exp(x)-1 - Printable Version

+- Tetration Forum (https://tetrationforum.org)
+-- Forum: Tetration and Related Topics (https://tetrationforum.org/forumdisplay.php?fid=1)
+--- Forum: Mathematical and General Discussion (https://tetrationforum.org/forumdisplay.php?fid=3)
+--- Thread: computing the iterated exp(x)-1 (/showthread.php?tid=18)

Pages: 1 2


RE: Iterability of exp(x)-1 - Daniel - 08/14/2007

bo198214 Wrote:
Daniel Wrote:\( f^n(z)=z+\frac{1}{2} n z^2 + \frac{1}{12} (3n^2-n) z^3 + \frac{1}{48} (6n^3-5n^2+n) z^4 + \cdots \) is the general solution

Which formula for the coefficients is this exactly?

I use what I call Schroeder summations http://tetration.org/Combinatorics/SchroederSummations/index.html for all of my iterated calculations. If the iterated function can be differentiated then Schroeder summations can be used, it doesn't matter what type of fixed point is involved.


RE: computing the iterated exp(x)-1 - andydude - 08/16/2007

Hi, this is actuallly in reference to jaydfox's posts about Sage and the like. I rewrote the Mathematica code for the custom IDM method, and it works better than what you would usually do in Sage to get the same result, but it still not as fast as Mathematica (which doesn't surprise me, given that most of the work is being done behind the scenes by Maxima, which Sage gives a front-end to). So jaydfox, I would also like to correct you on your PARI vs. Sage question. Sage provides a front-end for PARI as well, so it's not a question of which is better. Its like saying "ROM vs. Computer" which is better? obviously they're not quite comparable.

Anyways, without further delay I suppose I should give you the Sage code:

Code:
# Define the custom IDM:
def parabolic_idm(expr, x, size):
  ret = []
  ser = x
  for i in xrange(size):
    ser = taylor(ser(expr), x, 0, size)
    cof = ser.coeffs(x)
    ret.append([0] + [cof[int(k)][0] for k in xrange(len(cof))])
  top = [0, 1] + [0 for i in xrange(size-1)]
  return [top] + ret

# Get the flow from custom IDM:
def parabolic_flow_coeff(idm_matrix, t):
  size = len(idm_matrix) - 1
  ret = [sum([(-1)^(n-k-1)*idm_matrix[k][n]*
    binomial(t, k)*binomial(t-k-1, n-k-1)
    for k in xrange(n)]) for n in xrange(size)]
  return ret

# Get just the coefficients of (x,t):
def parabolic_flow_matrix(flow_coeff, t):
  size = len(flow_coeff)
  ret = []
  for i in xrange(size):
    if (i < 2):
      ret.append([flow_coeff[i]])
    else:
      cof = flow_coeff[i].expand().coeffs(t)
      ret.append([0] + [cof[int(k)][0] for k in xrange(len(cof))])
  return ret

# Use the custom IDM:
from sage.calculus.calculus import SymbolicVariable
x = SymbolicVariable('x')
t = SymbolicVariable('t')
size = 20
mtx = parabolic_idm(exp(x)-1, x, size)
fco = parabolic_flow_coeff(mtx, t)
fma = parabolic_flow_matrix(fco, t)

The only way I can see making this even faster is to implement it in Maxima directly, since thats the CAS that Sage uses behind the scenes to calculate this kind of thing. Maybe my next post will include a Maxima version. For more information on the CASs that Sage uses, see http://sagemath.org.

Andrew Robbins


RE: computing the iterated exp(x)-1 - jaydfox - 08/16/2007

Ugh, Sage needs VMWare to run on Windows, and I haven't had much luck with running VMWare on my laptop, so I don't think I'll be able to use Sage, not soon anyway.


RE: computing the iterated exp(x)-1 - bo198214 - 08/16/2007

jaydfox Wrote:Ugh, Sage needs VMWare to run on Windows, and I haven't had much luck with running VMWare on my laptop, so I don't think I'll be able to use Sage, not soon anyway.

Why not simply installing Linux? Wink

@Andy
You are incredible! So you write every code for Mathematica, Maple and Sage?!


RE: computing the iterated exp(x)-1 - andydude - 08/17/2007

bo198214 Wrote:You are incredible! So you write every code for Mathematica, Maple and Sage?!

Yeah, it's something I picked up from when I wrote my tetration code. Many people use Maple -- I don't have it, but my school does -- so I'm comfortable with porting my code to it. I only have an old version of Mathematica for Mac, but its possible to use the newer Mathematica Trial Version as well. When I'm on linux, though, I use Sage. Thats my story.

I also write C/C++, Perl, Python, and many other languages, so I could also write a PARI version for speed.

Andrew Robbins