52 lines
1.4 KiB
Text
52 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
|
|||
|
|
}), γ)
|