Calculating the fractional iterates of \(f(z) = e^z-1\) to reasonable accuracy
#3
(11/15/2022, 12:53 PM)Gottfried Wrote: Hi James -

 nice to see you're back!   

 I'm giving your procedure a try and to understand the elements of that procedure.  

 I've got 2 points at the moment:

 - the 'init_vartheta' routine, although it is called only once and thus its time-consumption is of marginal importance, can much be improved.
Using the construction of the coefficients in the BETA by Stirling numbers 2.nd kind, the time for the initialization is about
Code:
Limit      matrix  BETA (msecs)
  100         47    812
  200         62   3136
  300         78   7160
  400        109  12840
  500        124  20078
    Moreover, they are integer/rational values now and thus exact to arbitrary precision.         

- I'm not sure to have understood the procedure in the integral in the 'intnum()' in function 'F()'; there is also a double-substituion. Does the X substitute work as height-argument for the (interpolation of the) height of iteration of \( exp(z)-1 \) ? In the first view it looks for me similar to my ansatz for interpolation of the coefficients in the list of powerseries of increasing (integer) heights, as considered for instance here ? But it seems also different ... so I'm not sure about this.         
For instance, simply using \( X=-1 \) and evaluate I get the following paowerseries in \( z \) :
Code:
Ser(subst(BASE,'x,-1),'z)

%304 = 2.718281828*z + 2.718281828*z^2 + 2.944805314*z^3 + 3.794268386*z^4 + 5.689514883*z^5 + 9.688440945*z^6 + 18.41853923*z^7 + 38.56758979*z^8 + 88.00303333*z^9 + 216.9453279*z^10 + 573.7534217*z^11 + 1618.357771*z^12 + 4844.436029*z^13 + 15324.50278*z^14 + 51039.55211*z^15 + 178405.6437*z^16 + 652621.0682*z^17 + 2492135.375*z^18 + 9912046.967*z^19 + 40978660.41*z^20 + O(z^21)

or

exp(1)*( z + z^2 + 13/12*z^3 + 67/48*z^4 + 1507/720*z^5 + 61589/17280*z^6 + ...)

       and I've no idea what this is exactly.             

I'm confident that - using the replacement of the generating-procedure for the BASE by the S2-matrix-expressions -  analoguously one can improve the time-consumption as well as in the above item.


Hey, Gottfried!!



I apologize, I can explain the math in this much better. The function:



\[

\vartheta(x,z) = \sum_{n=0}^\infty f^{\circ n+1}(z) \frac{(-x)^n}{n!}\\

\]



This function is holomorphic for \(z \in\mathbb{C}/[0,\infty)\) and \(x \in \mathbb{C}\). It's been a long theory of mine, that:



\[

f^{\circ 0.5}(z) = \frac{1}{\sqrt{\pi}} \int_0^\infty \frac{\vartheta(x,z)}{\sqrt{x}}\,dx\\

\]



Or more generally, for \(0 < \Re(s) < 1\):



\[

f^{\circ s}(z) = \frac{1}{\Gamma(1-s)}\int_0^\infty \vartheta(x,z)x^{-s}\,dx\\

\]



I've recently, due to the deep dive we've all done Tongue , been able to concretely prove this.



So init_vartheta(), is essentially creating a polynomial approaching the asymptotic series of \(\vartheta\) about \(z\sim 0\):



\[

\text{BASE} = \sum_{k=0}^{300} \sum_{n=0}^{20} a_{kn}x^kz^n\\

\]



Which accurately expresses \(\vartheta\) to about 13 digits, though only near the value zero--(near meaning upto \(|x| < 100\) and \(|z| < 0.5\)).



The command intnum, is quite literally Pari-GP's command for the integral. The fact you are noticing it doing something similar to your work is EXACTLY MY POINT. Instead of matrices, I use integrals (I apologize, but I loathe matrices for a totally irrational reason, lol).








Now things get a little complicated here. The integral expression:



\[

f^{\circ s}(z) = \frac{1}{\Gamma(1-s)}\int_0^\infty \vartheta(x,z)x^{-s}\,dx\\

\]



Can be analytically continued from \(0 < \Re(s) < 1\) to \(\Re(s) > 0\) by this technique dating all the way back to Euler:



\[

\Gamma(1-s) f^{\circ s}(z) = \sum_{n=0}^\infty f^{\circ n+1}(z) \frac{(-1)^n}{n!(n+1-s)} + \int_1^\infty \vartheta(x,z)x^{-s}\,dx\\

\]



My code, in essence runs the following command:



Code:
F(s,y) = {

If(s==1, just return f)

If(abs(y) < 0.05,

   run the above integral sum expression, but only do: the sum for 300 terms, the integral from 1 to 90, because that's the area of accuracy

else(
   Rerun the function with f(y) instead of y, but shift the index backwards, i.e: log(F(s,f(y))+1)
)

}




Quote: I've got 2 points at the moment:

 - the 'init_vartheta' routine, although it is called only once and thus its time-consumption is of marginal importance, can much be improved.
Using the construction of the coefficients in the BETA by Stirling numbers 2.nd kind, the time for the initialization is about
Code:
Limit      matrix  BETA (msecs)
  100         47    812
  200         62   3136
  300         78   7160
  400        109  12840
  500        124  20078
    Moreover, they are integer/rational values now and thus exact to arbitrary precision.         


Okay, that's fascinating. So you can calculate:

\[
\vartheta(x,z) = \sum_{n=0}^\infty f^{\circ n+1}(z)\frac{(-x)^n}{n!}\\
\]

MUCH MUCH MUCH faster. That's good to hear. I'm not the best programmer. Unless we're dealing with a recursion problem, I'm a terrible programmer. Especially when it comes to run time Tongue  This wasn't so much intended to be a post about how good this program is, more so, just a short program that gives unreasonable accuracy on the lines of code per digit of accuracy of fractional iterates scale, lol.




Quote:For instance, simply using \( X=-1 \) and evaluate I get the following paowerseries in \( z \) :
Code:
Ser(subst(BASE,'x,-1),'z)

%304 = 2.718281828*z + 2.718281828*z^2 + 2.944805314*z^3 + 3.794268386*z^4 + 5.689514883*z^5 + 9.688440945*z^6 + 18.41853923*z^7 + 38.56758979*z^8 + 88.00303333*z^9 + 216.9453279*z^10 + 573.7534217*z^11 + 1618.357771*z^12 + 4844.436029*z^13 + 15324.50278*z^14 + 51039.55211*z^15 + 178405.6437*z^16 + 652621.0682*z^17 + 2492135.375*z^18 + 9912046.967*z^19 + 40978660.41*z^20 + O(z^21)

or

exp(1)*( z + z^2 + 13/12*z^3 + 67/48*z^4 + 1507/720*z^5 + 61589/17280*z^6 + ...)

       and I've no idea what this is exactly.             

AHH! I see your confusion. This is precisely:

\[
\vartheta(-1,z) = \sum_{n=0}^\infty f^{\circ n+1}(z) \frac{1}{n!}\\
\]

We do not evaluate \(x\) really, we integrate across \(x\). So you've evaluated a small, unimportant asymptotic series; which would be:

\[
\vartheta(-1,z) = \sum_{n=0}^\infty c_n z^n\\
\]

This is not a convergent taylor series (\(\vartheta\) is not holomorphic at \(z=0\)), but it diverges so damn slow that it's super useful.




I plan on posting an article I've almost finished written explaining everything. I've really gone down the rabbit hole on this one, lol Tongue  But I've also been really busy, end of covid and all. But I promise to fill you in!

Regards, James

EDIT!

Also know that this has NOTHING to do with the beta method. There is no beta function, no infinite compositions. Nothing but mellin transforms. Which have nothing to do with beta, lol.
Reply


Messages In This Thread
RE: Calculating the fractional iterates of \(f(z) = e^z-1\) to reasonable accuracy - by JmsNxn - 11/16/2022, 10:13 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  fractional iteration/another progress Gottfried 2 11,568 07/26/2008, 02:13 PM
Last Post: Gottfried
  fractional iteration with complex bases/a bit of progress Gottfried 1 9,475 07/21/2008, 10:58 PM
Last Post: Gottfried
  numerical examples for approximation for half-iterates for exp(x)-1 Gottfried 0 6,772 08/14/2007, 11:57 AM
Last Post: Gottfried



Users browsing this thread: 1 Guest(s)