09/09/2014, 09:45 PM

(09/09/2014, 07:43 PM)jaydfox Wrote: Treating Gamma(k) at negative integers as infinity, and the reciprocal of such as zero, we can take the limit from negative to positive infinity. And we can replace k with (k+b), where b is zero in the original solution, but can now be treated as any real (well, any complex number, but the complex versions are less interesting).

One minor correction: treating Gamma(k) at non-positive integers as infinity... Anyway...

Sheldon or Gottfried, if either of you is still interested in this problem, here's some code to calculate f_b(x):

Code:

`InitF(beta=0, n=50, prec=77) = {`

local (defprec, a_k, func);

defprec = default(realprecision);

default(realprecision, prec);

a_k = 2.^(-beta*(beta-1)/2) / gamma(beta+1.);

func = List();

listput(func, a_k);

listput(func, beta);

for (k=1, n,

a_k /= (2.^(k-1.+beta) * (k+beta));

func[1] += a_k * x^k;

);

default(realprecision, defprec);

return (func);

}

EvalF(func, k) = {

return (subst(func[1], x, k) * k^func[2]);

}

I named this code bp1.gp, and here's a screenshot showing how it can be used. Basically, you can use beta=0 for the original version (which is entire), or use a non-integer, preferably negative. If you use a positive value for beta, or if you use a negative value close to zero, it won't be accurate near the origin. I used -25/2 in this example. The closer to the origin you intend to evaluate, the smaller beta needs to be (i.e., negative and larger in absolute value).

~ Jay Daniel Fox