Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: asympnumraw Section: sums C-Name: asympnumraw0 Prototype: GLDGp Help: asympnumraw(expr,N,{alpha = 1}): N+1 first terms of asymptotic expansion of expr as floating point numbers; alpha is as in limitnum. Doc: Return the $N+1$ first terms of asymptotic expansion of \var{expr}, corresponding to a sequence $u(n)$, as floating point numbers. Assume that the expansion has the shape $$u(n) \approx \sum_{i \geq 0} a_i n^{-i\alpha}$$ and return approximation of $[a_0, a_1,\dots, a_N]$. The algorithm is heuristic and performs repeated calls to limitnum, with \kbd{alpha} as in \kbd{limitnum}. As in \kbd{limitnum}, $u(n)$ may be given either by a closure $n\mapsto u(n)$ or as a closure $N\mapsto [u(1),\dots,u(N)]$, the latter being often more efficient. This function is related to, but more flexible than, \kbd{asympnum}, which requires rational asymptotic expansions. \bprog ? f(n) = n! / (n^n*exp(-n)*sqrt(n)); ? asympnum(f) %2 = [] \\ failure ! ? v = asympnumraw(f, 10); ? v[1] - sqrt(2*Pi) %4 = 0.E-37 ? bestappr(v / v[1], 2^60) %5 = [1, 1/12, 1/288, -139/51840, -571/2488320, 163879/209018880,...] @eprog\noindent and we indeed get a few terms of Stirling's expansion (the first 9 terms are correct). If $u(n)$ has an asymptotic expansion in $n^{-\alpha}$ with $\alpha$ not an integer, the default $alpha=1$ is inaccurate: \bprog ? f(n) = (1+1/n^(7/2))^(n^(7/2)); ? v1 = asympnumraw(f,10); ? v1[1] - exp(1) %8 = 4.62... E-12 ? v2 = asympnumraw(f,10,7/2); ? v2[1] - exp(1) %7 0.E-37 @eprog\noindent As in \kbd{asympnum}, if \kbd{alpha} is not a rational number, loss of accuracy is expected, so it should be precomputed to double accuracy, say. \synt{asympnumraw}{void *E, GEN (*u)(void *,GEN,long), long N, GEN alpha, long prec}, where \kbd{u(E, n, prec)} must return either $u(n)$ or $[u(1),\dots,u(n)]$ in precision \kbd{prec}. Also available is \fun{GEN}{asympnumraw0}{GEN u, GEN alpha, long prec} where $u$ is either a closure as above or a vector of sufficient length.