51 lines
1.4 KiB
Text
51 lines
1.4 KiB
Text
const n = (ARGV ? Num(ARGV[0]) : 50) # number of iterations
|
||
|
||
define ℯ = Num.e
|
||
define π = Num.pi
|
||
define γ = Num.EulerGamma
|
||
|
||
func display(r, t) {
|
||
say "#{r}\terror: #{ '%.0g' % abs(r - t) }"
|
||
}
|
||
|
||
# Original definition of the Euler-Mascheroni constant, due to Euler (1731)
|
||
display(sum(1..n, {|n| 1/n }) - log(n), γ)
|
||
|
||
# Formula due to Euler (best convergence)
|
||
display(harmfrac(n) - log(n) - 1/(2*n) - sum(1..n, {|k|
|
||
-bernoulli(2*k) / (2*k) / n**(2*k)
|
||
}), γ)
|
||
|
||
# Formula derived from the above formula of Euler,
|
||
# using approximations of Bernoulli numbers.
|
||
display(harmfrac(n) - log(n) - 1/(2*n) - sum(1..n, {|k|
|
||
(-1)**k * 4 * sqrt(π*k) * (π * ℯ)**(-2*k) * k**(2*k) / (2*k) / n**(2*k)
|
||
}), γ)
|
||
|
||
# Euler-Mascheroni constant, involving zeta(n)
|
||
display(1 - sum(2..(n+1), {|n|
|
||
(zeta(n) - 1) / n
|
||
}), γ)
|
||
|
||
# Limit_{n->Infinity} zeta((n+1)/n) - n} = gamma
|
||
display(zeta((n+1)/n) - n, γ)
|
||
|
||
# Series due to Euler (1731).
|
||
display(sum(2..(n+1), {|n|
|
||
(-1)**n * zeta(n) / n
|
||
}), γ)
|
||
|
||
# Formula due to Euler in terms of log(2) and the odd zeta values
|
||
display(3/4 - log(2)/2 + sum(1..n, {|n|
|
||
(1 - 1/(2*n + 1)) * (zeta(2*n + 1) - 1)
|
||
}), γ)
|
||
|
||
# Formula due to Euler in terms of log(2) and the odd zeta values (VII)
|
||
display(log(2) - sum(1..n, {|n|
|
||
zeta(2*n + 1) / (2*n + 1) / 2**(2*n)
|
||
}), γ)
|
||
|
||
# Formula due to Vacca (1910)
|
||
display(sum(1..n, {|n|
|
||
(-1)**n * floor(log2(n)) / n
|
||
}), γ)
|