I just updated to Mathematica 11 and celebrating with a short note on A276816, which I am busy editing to fix my overly-liberal use of "Coefficient". Here's a Mma11-working copy of my best discovery yet, a function for determining the period of a one dimensional anharmonic oscillation with arbitrary-valued potential expansion coefficients, roughly following the method of Plane Pendulum and Beyond.
Define Ansatz for polar coordinate Phase Space Trajectory
RExp[n_] := Expand[b Plus[R[0], Total[b^# R[#] & /@ Range[n]]]]
Expansion function for calculating R[n]
RCalc[n_] := With[{basis = Subtract[Tally[Join[Range[n + 2], #]][[All, 2]],
Table[1, {n + 2}]] & /@ IntegerPartitions[n + 2][[3 ;; -1]]},
Total@ReplaceAll[ Times[-2, Multinomial @@ #, v[Total[#]],
Times @@ Power[RSet[# - 1] & /@ Range[n + 2], #]] & /@
basis, {Q^2 -> 1, v[2] -> 1/4}]]
Calculate differential time dependence
dt[n_] := With[{exp = Normal[Series[-1/(1 + x) /.
x -> Total[(2 # v[#] RExp[n - 1]^(# - 2) & /@ Range[3, n + 2])], {b, 0, n}]]},
Expand@ReplaceAll[Coefficient[exp, b, #] & /@ Range[n], R -> RSet]]
List ring generators
RingGens[n_] := Times @@ (v /@ #) & /@ (IntegerPartitions[n] /. x_Integer :> x + 2)
Construct coefficient triangle
tri[m_] := MapThread[ Function[{a, b}, Times[-# /. v[n_] :> Q^n /.
Q^n_ :> Binomial[n, n/2], (1/2) Coefficient[a, #]] & /@ b],
{dt[2 m][[2 #]] & /@ Range[m], RingGens[2 #] & /@ Range[m]}]
Expand period from integer triangle
PeriodExpansion[tri_, n_] := ReplaceAll[ 1 + Dot[MapThread[
Dot, {tri, 2 RingGens[2 #] & /@ Range[n]}], (2 h)^( Range[n])],
{v[m_] :> (v[m]*(1/2)^m)}]
Preload function values
RSet[0] = 1; Set[RSet[#], Expand@RCalc[#]] & /@ Range[2*10];
Transform potential to set of v[_] coefficients
vRep[potential_, n_] := With[{coeffs = Coefficient[Series[potential, {x, 0, n}], x, #] & /@ Range[2, n]},
v[#] -> coeffs[[# - 1]]/2/(coeffs[[1]] 2) & /@ Range[2, n]]
Now let's look at the period function up to order 5 in dimensionless energy
PeriodExpansion[tri[5], 5]
Out[]= 1 + 2 h (15 v[3]^2 - 3 v[4]) +
4 h^2 ((3465 v[3]^4)/4 - 945/2 v[3]^2 v[4] + (105 v[4]^2)/4 +
105/2 v[3] v[5] - (15 v[6])/4) +
8 h^3 ((255255 v[3]^6)/4 - 225225/4 v[3]^4 v[4] +
45045/4 v[3]^2 v[4]^2 - (1155 v[4]^3)/4 + 15015/2 v[3]^3 v[5] -
3465/2 v[3] v[4] v[5] + (315 v[5]^2)/8 - 3465/4 v[3]^2 v[6] +
315/4 v[4] v[6] + 315/4 v[3] v[7] - (35 v[8])/8) +
16 h^4 ((334639305 v[3]^8)/64 - 101846745/16 v[3]^6 v[4] +
72747675/32 v[3]^4 v[4]^2 - 3828825/16 v[3]^2 v[4]^3 + (
225225 v[4]^4)/64 + 14549535/16 v[3]^5 v[5] -
3828825/8 v[3]^3 v[4] v[5] + 675675/16 v[3] v[4]^2 v[5] +
675675/32 v[3]^2 v[5]^2 - 45045/32 v[4] v[5]^2 -
3828825/32 v[3]^4 v[6] + 675675/16 v[3]^2 v[4] v[6] -
45045/32 v[4]^2 v[6] - 45045/16 v[3] v[5] v[6] + (3465 v[6]^2)/
64 + 225225/16 v[3]^3 v[7] - 45045/16 v[3] v[4] v[7] +
3465/32 v[5] v[7] - 45045/32 v[3]^2 v[8] + 3465/32 v[4] v[8] +
3465/32 v[3] v[9] - (315 v[10])/64) +
32 h^5 ((29113619535 v[3]^10)/64 - 45176306175/64 v[3]^8 v[4] +
11712375675/32 v[3]^6 v[4]^2 - 2342475135/32 v[3]^4 v[4]^3 +
305540235/64 v[3]^2 v[4]^4 - (2909907 v[4]^5)/64 +
1673196525/16 v[3]^7 v[5] - 1405485081/16 v[3]^5 v[4] v[5] +
305540235/16 v[3]^3 v[4]^2 v[5] - 14549535/16 v[3] v[4]^3 v[5] +
305540235/64 v[3]^4 v[5]^2 - 43648605/32 v[3]^2 v[4] v[5]^2 +
2297295/64 v[4]^2 v[5]^2 + 765765/32 v[3] v[5]^3 -
468495027/32 v[3]^6 v[6] + 305540235/32 v[3]^4 v[4] v[6] -
43648605/32 v[3]^2 v[4]^2 v[6] + 765765/32 v[4]^3 v[6] -
14549535/16 v[3]^3 v[5] v[6] + 2297295/16 v[3] v[4] v[5] v[6] -
135135/64 v[5]^2 v[6] + 2297295/64 v[3]^2 v[6]^2 -
135135/64 v[4] v[6]^2 + 61108047/32 v[3]^5 v[7] -
14549535/16 v[3]^3 v[4] v[7] + 2297295/32 v[3] v[4]^2 v[7] +
2297295/32 v[3]^2 v[5] v[7] - 135135/32 v[4] v[5] v[7] -
135135/32 v[3] v[6] v[7] + (9009 v[7]^2)/128 -
14549535/64 v[3]^4 v[8] + 2297295/32 v[3]^2 v[4] v[8] -
135135/64 v[4]^2 v[8] - 135135/32 v[3] v[5] v[8] +
9009/64 v[6] v[8] + 765765/32 v[3]^3 v[9] -
135135/32 v[3] v[4] v[9] + 9009/64 v[5] v[9] -
135135/64 v[3]^2 v[10] + 9009/64 v[4] v[10] +
9009/64 v[3] v[11] - (693 v[12])/128)
With so many terms, each a possible hiding place for error, it's worthwhile to validate by testing on well-know potential functions. Let's try two with minima at x = 0, of pendulum and Coulomb type:
PotentialList = {1 - Cos[x], 1/(2 (x + 1)^2) - 1/(x + 1)}
(PeriodExpansion[tri[5], 5] /. vRep[#, 12]) & /@ PotentialList
Out[]={ 1 + (1/8)*h + (9/256)h^2 + (25/2048)h^3 + (1225/262144)h^4 + (3969/2097152)h^5 ,
1 + 3 h + (15/2)h^2 + (35/2)h^3 + (315/8)h^4 + (693/8)h^5 }
The first expansion contains the leading terms of EllipticK(m), under the transformation h->2m. Two or three of these expansion coefficients can easily be measured in a simple experiment using a USB computer mouse .
The second expansion eventually converges like
1 + 3 h + (15/2)h^2 + (35/2)h^3 + (315/8)h^4 + (693/8)h^5 + ... = (1 - 2 h)^(-3/2)
The converged function can be used to determine the exact period of a Kepler orbit. The oscillation of planets are well known in astronomy, but what's more, the method here develops and applies to precession as in this planetary precession demonstration.
The period of a pendulum and a planet in just one function... Working more on this as I finish up my PhD dissertation in the next one or two years.
Best Regards.