<h3>No.</h3>
<p>Because gravity is a long range force and everything pulls on everything, whenever you have more than two bodies involved you don't really have simple harmonic motion. In the end, celestial mechanics is always the <a href="https://en.wikipedia.org/wiki/N-body_problem" rel="nofollow noreferrer">n-body problem</a>. You can solve it with numerical integration or approximate it with gravitational perturbation theory on the orbital elements, but there's never anything &quot;simple&quot; or purely &quot;harmonic&quot; about it.</p>
<p>In this case, the Moon is far enough away from the Earth that the Sun's gravity is a major perturber. While the eccentricity of the Moon's orbit is given as 0.0549006, <strong>the Moon's eccentricity actually varies between 0.026 and 0.077!</strong> <a href="https://en.wikipedia.org/wiki/Orbit_of_the_Moon" rel="nofollow noreferrer">Orbit of the Moon</a>.</p>
<p>Below are plots of the Earth-Moon separation and the Fourier transform of its deviation from mean, over periods of 50 and 1000 years. While the dominant frequency component is an <a href="https://astronomy.stackexchange.com/a/34574/7982">anomalistic month</a> corresponding to a period of  27.554551 days, there are significant peaks at many other frequencies; the second being (surprisingly) corresponding to 31.8 days and not a synodic month of 29.5 days.</p>
<p>And the third highest peak is at the sum of those two frequencies.</p>
<p>As the period of the sample gets longer, we can see that the frequency structure gets more complex, and the &quot;background&quot; power between the peaks drops as one might expect for longer sampling.</p>
<p>Here are the plots and the Python script based on <a href="https://rhodesmill.org/skyfield/" rel="nofollow noreferrer">Skyfield</a> and <a href="https://en.wikipedia.org/wiki/Jet_Propulsion_Laboratory_Development_Ephemeris" rel="nofollow noreferrer">DE440</a>.</p>
<h3>years 2000 to 2050 (step = 1 day)</h3>
<p><a href="https://i.sstatic.net/HpVZy.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/HpVZy.png" alt="Earth-Moon separation years 2000 to 2050 (step = 1 day) from Skyfield and DE436" /></a></p>
<h3>years 1600 to 2600 (step = 1 day)</h3>
<p><a href="https://i.sstatic.net/phGYG.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/phGYG.png" alt="Earth-Moon separation years 2000 to 2050 (step = 1 day) from Skyfield and DE436" /></a></p>
<p>Here's the Python script:</p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Loader

load = Loader('~/Documents/fishing/SkyData') # avoid multiple copies of large files
ts = load.timescale()
eph = load('de440.bsp')

earth, sun, moon = [eph[x] for x in ('earth', 'sun', 'moon')]

synodic_month = 29.530588   # days
anomalistic_month = 27.554551   # days

# 2000-01-01 to 2050-01-01 step=1 day:
d = 1  # step of 1 day
jds = np.arange(2451545, 2469808+1, d)
t = ts.tt_jd(jds)
years = 2000 + (jds - jds[0]) / 365.2564
distance = earth.at(t).observe(moon).distance().km
ft = np.fft.fftshift(np.fft.fft(distance - distance.mean()))
power = np.abs(ft)**2
power /= power.max() # normalize
log_power = np.log10(power)

freqs = np.fft.fftfreq(n=len(t), d=d/anomalistic_month) # anomalistic_month^-1
freqs = np.fft.fftshift(freqs)  # shift to zero on the left

fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=[5.4, 7.5])
ax1.plot(years, distance, linewidth=0.2)
ax2.plot(freqs, log_power)
ax3.plot(freqs, log_power)
ax3.set_xlim(0, 2.2)
ax2.set_ylim(-10, None)
ax3.set_ylim(-10, None)
ax3.set_xlabel('inverse anomalistic months (27.554551 d)')
ax2.set_ylabel('normalized log(power)')
ax3.set_ylabel('normalized log(power)')
plt.subplots_adjust(bottom=0.07, top=0.99, right=0.97, hspace=0.11)
plt.savefig('fifty years.png')
plt.show()

if True:
    jds = np.arange(2305448, 2670691+1, d)
    t = ts.tt_jd(jds)
    years = 1600 + (jds - jds[0]) / 365.2564
    distance = earth.at(t).observe(moon).distance().km
    ft = np.fft.fftshift(np.fft.fft(distance - distance.mean()))
    power = np.abs(ft)**2
    power /= power.max() # normalize
    log_power = np.log10(power)

    synodic_month = 29.530588   # days
    anomalistic_month = 27.554551   # days

    freqs = np.fft.fftfreq(n=len(t), d=d/anomalistic_month) # anomalistic_month^-1
    freqs = np.fft.fftshift(freqs)  # shift to zero on the left

    fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=[5.4, 7.5])
    ax1.plot(years, distance, linewidth=0.2)
    ax2.plot(freqs, log_power)
    ax3.plot(freqs, log_power)
    ax3.set_xlim(0, 2.2)
    ax2.set_ylim(-10, None)
    ax3.set_ylim(-10, None)
    ax3.set_xlabel('inverse anomalistic months (27.554551 d)')
    ax2.set_ylabel('normalized log(power)')
    ax3.set_ylabel('normalized log(power)')
    plt.subplots_adjust(bottom=0.07, top=0.99, right=0.97, hspace=0.11)
    plt.savefig('one thousand years.png')

    plt.show()
</code></pre>

CC BY-SA 4.0
2023-02-14T10:00:39.300Z
where do you see 31.8 days? In the last graph I see the peaks @ ~1.00 (anomalistic month) ,and arround ~0.8 which is not 31 days
d_e
CC BY-SA 4.0
2023-02-14T10:17:08.057Z
@d_e I plotted on an expanded scale, it's at about 0.866 inverse anomalistic months, which corresponds to 31.8 days https://i.sstatic.net/uUInn.png
uhoh
CC BY-SA 4.0
2023-02-14T11:11:24.220Z
Thanks. Interesting figure. the eccentricity is probably not only affected by the elongation.
d_e
CC BY-SA 4.0
2023-02-12T23:43:46.417Z
2023-02-13T20:30:48.800Z
2023-02-13T20:30:48.800Z
uhoh
<p>Supermoons happen about 14 months...Can we consider the oscillating motion of the moon giving supermoons a simple harmonic wave? If so, what would be its wavelength?</p>

<the-moon><wavelength>
Can the motion of the phenomena of supermoons be modelled by an harmonic wavefunction?
riemannium
# Can the motion of the phenomena of supermoons be modelled by an harmonic wavefunction?

(Asked by: username_0 on 2023-02-12)

Supermoons happen about 14 months...Can we consider the oscillating motion of the moon giving supermoons a simple harmonic wave? If so, what would be its wavelength?

**Tags:** the-moon, wavelength

---

## 1 answers

### Answer by username_1 on 2023-02-12. Score: 4

No.
Because gravity is a long range force and everything pulls on everything, whenever you have more than two bodies involved you don't really have simple harmonic motion. In the end, celestial mechanics is always the n-body problem. You can solve it with numerical integration or approximate it with gravitational perturbation theory on the orbital elements, but there's never anything "simple" or purely "harmonic" about it.
In this case, the Moon is far enough away from the Earth that the Sun's gravity is a major perturber. While the eccentricity of the Moon's orbit is given as 0.0549006, the Moon's eccentricity actually varies between 0.026 and 0.077! Orbit of the Moon.
Below are plots of the Earth-Moon separation and the Fourier transform of its deviation from mean, over periods of 50 and 1000 years. While the dominant frequency component is an anomalistic month corresponding to a period of  27.554551 days, there are significant peaks at many other frequencies; the second being (surprisingly) corresponding to 31.8 days and not a synodic month of 29.5 days.
And the third highest peak is at the sum of those two frequencies.
As the period of the sample gets longer, we can see that the frequency structure gets more complex, and the "background" power between the peaks drops as one might expect for longer sampling.
Here are the plots and the Python script based on Skyfield and DE440.
years 2000 to 2050 (step = 1 day)

years 1600 to 2600 (step = 1 day)

Here's the Python script:
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Loader

load = Loader('~/Documents/fishing/SkyData') # avoid multiple copies of large files
ts = load.timescale()
eph = load('de440.bsp')

earth, sun, moon = [eph[x] for x in ('earth', 'sun', 'moon')]

synodic_month = 29.530588   # days
anomalistic_month = 27.554551   # days

# 2000-01-01 to 2050-01-01 step=1 day:
d = 1  # step of 1 day
jds = np.arange(2451545, 2469808+1, d)
t = ts.tt_jd(jds)
years = 2000 + (jds - jds[0]) / 365.2564
distance = earth.at(t).observe(moon).distance().km
ft = np.fft.fftshift(np.fft.fft(distance - distance.mean()))
power = np.abs(ft)**2
power /= power.max() # normalize
log_power = np.log10(power)

freqs = np.fft.fftfreq(n=len(t), d=d/anomalistic_month) # anomalistic_month^-1
freqs = np.fft.fftshift(freqs)  # shift to zero on the left

fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=[5.4, 7.5])
ax1.plot(years, distance, linewidth=0.2)
ax2.plot(freqs, log_power)
ax3.plot(freqs, log_power)
ax3.set_xlim(0, 2.2)
ax2.set_ylim(-10, None)
ax3.set_ylim(-10, None)
ax3.set_xlabel('inverse anomalistic months (27.554551 d)')
ax2.set_ylabel('normalized log(power)')
ax3.set_ylabel('normalized log(power)')
plt.subplots_adjust(bottom=0.07, top=0.99, right=0.97, hspace=0.11)
plt.savefig('fifty years.png')
plt.show()

if True:
    jds = np.arange(2305448, 2670691+1, d)
    t = ts.tt_jd(jds)
    years = 1600 + (jds - jds[0]) / 365.2564
    distance = earth.at(t).observe(moon).distance().km
    ft = np.fft.fftshift(np.fft.fft(distance - distance.mean()))
    power = np.abs(ft)**2
    power /= power.max() # normalize
    log_power = np.log10(power)

    synodic_month = 29.530588   # days
    anomalistic_month = 27.554551   # days

    freqs = np.fft.fftfreq(n=len(t), d=d/anomalistic_month) # anomalistic_month^-1
    freqs = np.fft.fftshift(freqs)  # shift to zero on the left

    fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=[5.4, 7.5])
    ax1.plot(years, distance, linewidth=0.2)
    ax2.plot(freqs, log_power)
    ax3.plot(freqs, log_power)
    ax3.set_xlim(0, 2.2)
    ax2.set_ylim(-10, None)
    ax3.set_ylim(-10, None)
    ax3.set_xlabel('inverse anomalistic months (27.554551 d)')
    ax2.set_ylabel('normalized log(power)')
    ax3.set_ylabel('normalized log(power)')
    plt.subplots_adjust(bottom=0.07, top=0.99, right=0.97, hspace=0.11)
    plt.savefig('one thousand years.png')

    plt.show()

> **Comments:**
> **username_2**: where do you see 31.8 days? In the last graph I see the peaks @ ~1.00 (anomalistic month) ,and arround ~0.8 which is not 31 days  
> **username_1**: @d_e I plotted on an expanded scale, it's at about 0.866 inverse anomalistic months, which corresponds to 31.8 days https://i.sstatic.net/uUInn.png  
> **username_2**: Thanks. Interesting figure. the eccentricity is probably not only affected by the elongation.  

---

