back to table · edit · history · where entries came from · files · download
950 bytes, as of the version from 2026-10-26 22:20 (current). Recorded here, not run.
import numberdb.sage
from math import factorial
from sage.rings.rational_field import QQ
from sage.rings.real_arb import RealBallField
def moment(n):
"""Raw moment of the unit-duration standard motion positive-part area."""
if n < 1 or int(n) != n:
raise ValueError('n must be a positive integer')
n = int(n)
alpha = [QQ(factorial(6*j))/(QQ(576)**j*factorial(3*j)*factorial(2*j))
for j in range(n+1)]
beta, ell = [QQ(1)], [QQ(1)]
for j in range(1,n+1):
beta.append(alpha[j]+QQ(3*(2*j-1))/4*beta[j-1])
ell.append((alpha[j]+beta[j])/QQ(2)
+ sum(alpha[k]*ell[j-k]/QQ(6*k-1) for k in range(1,j+1)))
if n%2 == 0:
return QQ(factorial(n))*ell[n]/(QQ(2)**(n//2)*factorial(3*n//2))
field = RealBallField(513)
return (field(factorial(n))*field(ell[n])
/ (field(2)**(QQ(n)/2)*field(QQ(3*n+2)/2).gamma()))
# For example, moment(1) gives the mean.