Download or view StirlingCoefficients.frink in plain text format
/** This reproduce the additional Stirling coefficients for Stirling's
approximation to the factorial funcion from:
Nemes,Gergő, On the coefficients of the asymptotic expansion of n!,
Journal of Integer Sequences 13 (2010), no. 6, Article 10.6.6, 5 pp.
http://www.cs.uwaterloo.ca/journals/JIS/VOL13/Nemes/nemes2.pdf
This requires use of the generalized binomial theorem with rational
numbers (instead of integers) as arguments. This can be obtained using
the result that binomial[r, k] = fallingFactorial[r, k] / k!
Note that, from
https://en.wikipedia.org/wiki/Stirling%27s_approximation
"As n → ∞, the error in the truncated series is asymptotically equal to the
first omitted term. This is an example of an asymptotic expansion. It is
not a convergent series; for any particular value of n there are only so
many terms of the series that improve accuracy, after which accuracy
worsens."
*/
// Used for calculating falling factorial.
use Pochhammer.frink
/** This calculates StirlingCoeffient a_k. This will be the term in the sum
a_k / n^k
For example, the coefficients are
(1 + 1/(12 n) + 1/(288 n^2) ... )
This implements equation 5 in Nemes */
StirlingCoefficient[k] :=
{
ak = (2k)!/(2^k k!)
sum1 = 0
for i = 0 to 2k
{
sum2 = 0
sum1a = generalizedBinomial[k+i-1/2, i] generalizedBinomial[3k + 1/2, 2k-i] 2^i
for j = 0 to i
sum2 = sum2 + binomial[i,j] (-1)^j j! S[2k + i + j, j] / (2k + i + j)!
sum1 = sum1 + sum1a * sum2
}
return sum1 * ak
}
/** This is the equation after (5) in Nemes. */
S[p,q] :=
{
s = 1/q!
sum = 0
for l = 0 to q
sum = sum + (-1)^l binomial[q, l] (q-l)^p
return s * sum
}
/** Testing */
/*for k = 0 to 8
println["$k\t" + StirlingCoefficient[k]]
*/
Download or view StirlingCoefficients.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20217 days, 15 hours, 39 minutes ago.