<p>Here is a quick supplemental answer. </p>

<p>From the <a href="https://en.wikipedia.org/wiki/Stability_of_the_Solar_System#Neptune.E2.80.93Pluto_resonance" rel="nofollow noreferrer">Neptune-Pluto Resonance</a> subsection of the Wikipedia article <a href="https://en.wikipedia.org/wiki/Stability_of_the_Solar_System" rel="nofollow noreferrer">Stability of the Solar System</a>:</p>

<blockquote>
  <p>The Neptune–Pluto system lies in a 3:2 <a href="https://en.wikipedia.org/wiki/Orbital_resonance" rel="nofollow noreferrer">orbital resonance</a>. C.J. Cohen and E.C. Hubbard at the <a href="https://en.wikipedia.org/wiki/Naval_Surface_Warfare_Center_Dahlgren_Division" rel="nofollow noreferrer">Naval Surface Warfare Center Dahlgren Division</a> discovered this in 1965. Although the resonance itself will remain stable in the short term, it becomes impossible to predict the position of Pluto with any degree of accuracy, as the uncertainty in the position grows by a factor e with each <a href="https://en.wikipedia.org/wiki/Lyapunov_time" rel="nofollow noreferrer">Lyapunov time</a>, which for Pluto is 10–20 million years into the future. Thus, on the time scale of hundreds of millions of years Pluto's orbital phase becomes impossible to determine, even if Pluto's orbit appears to be perfectly stable on 10 MYR time scales (Ito and Tanikawa 2002, MNRAS).</p>
</blockquote>

<p>The resonance they discovered means that for a moderate period of time (at least tens of millions of years) the relative motion between Neptune and Pluto will be repetitive, with $3\times T_{Neptune} \approx 2\times T_{Pluto}$. <a href="http://articles.adsabs.harvard.edu/cgi-bin/nph-iarticle_query?1965AJ.....70...10C&amp;defaultprint=YES&amp;filetype=.pdf" rel="nofollow noreferrer">The paper</a> cited in the <a href="https://astronomy.stackexchange.com/a/22308/7982">other excellent answer</a> is the report of this discovery by Cohen and Hubbard in 1965 mentioned here.</p>

<p>Figure 5 of that paper shows the motion of Neptune and Pluto in a rotating frame. The frame rotates with the <em>average orbital rotation</em> of Neptune, so over very long times you can see Neptune slowly rocks back and forth a bit:</p>

<p><a href="https://i.sstatic.net/0JZNO.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/0JZNO.png" alt="enter image description here"></a></p>

<p>If you like Python you can reproduce these fairly easy. The package <a href="http://rhodesmill.org/skyfield/" rel="nofollow noreferrer">Skyfield</a> uses the same NASA JPL Ephemerides as the <a href="https://i.sstatic.net/3vQXQ.png" rel="nofollow noreferrer">JPL Horizons</a> site but is easier to use. You can see that 95% of this script is just making it look nicer and getting the position of the planets is just a few lines. </p>

<p>Here are the results for only 6,000 years, a much smaller period than shown in Cohen and Hubbard 1965, so Neptune only makes a small segment of its 25,000 cycle, near one end where it's "moving" slowly. The first set of plots are in inertial (non-rotating) J2000 ecliptic coordinates, and the second is rotating with the average orbital motion of Neptune, so that Neptune appears nearly fixed.</p>

<p>The first plot shows Neptune-Pluto separation versus calendar year. The minimum in this period seems to be around year -77, with a distance of 2.65 billion km or 17.73 AU.</p>

<p><a href="https://i.sstatic.net/htnRG.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/htnRG.png" alt="enter image description here"></a></p>

<p><a href="https://i.sstatic.net/3vQXQ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/3vQXQ.png" alt="enter image description here"></a></p>

<p><a href="https://i.sstatic.net/8i2BS.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/8i2BS.png" alt="enter image description here"></a></p>

<pre><code>def Rpos(pos, angle):
    x, y, z = pos
    ca, sa  = np.cos(angle), np.sin(angle)

    xr = x*ca - y*sa
    yr = y*ca + x*sa

    return np.vstack((xr, yr, z))

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

from skyfield.api import Loader 

loader = Loader('~/Documents/Skydata', verbose = True)
ts     = loader.timescale()

de405  = loader('de405.bsp')  # about 65 MB
de421  = loader('de421.bsp')  # about 17 MB
de422  = loader('de422.bsp')  # about 650 MB

de = de422

neptune = de['neptune barycenter']
pluto   = de['pluto barycenter']

# years   = np.arange(1600, 2201)
years   = np.arange(-2999, 3001)

time    = ts.utc(years, 1, 1) # January 1st of each calendar year

npos = neptune.at(time).ecliptic_position().km
ppos = pluto.at(time).ecliptic_position().km

npsep = np.sqrt(((npos-ppos)**2).sum(axis=0))

if True:

    plt.figure()
    plt.plot(years, npsep)
    plt.show()

aukm = 149597870.700
print "minimum separation (km): ", npsep.min()
print "minimum separation (AU): ", npsep.min()/aukm

if True:

    fig = plt.figure()

    ax1  = fig.add_subplot(1, 2, 1)
    for pos in [npos, ppos]:
        x, y, z = pos
        ax1.plot(x, y)
    ax1.plot([0], [0], 'or')
    ax1.set_xlim(-5E+09, 7E+09)
    ax1.set_ylim(-5E+09, 7E+09)

    ax2  = fig.add_subplot(1, 2, 2, projection='3d')
    for pos in [npos, ppos]:
        x, y, z = pos
        ax2.plot(x, y, z, linewidth=1.0)
    ax2.plot([0], [0], [0], 'or')
    ax2.set_xlim(-5E+09, 7E+09)
    ax2.set_ylim(-5E+09, 7E+09)
    ax2.set_zlim(-6E+09, 6E+09)

    ax2.view_init(elev=20., azim=-110)

    plt.show()

nargperi = 276.3 * (np.pi/180.) # Neptune argument of perihelion (radians)
nT       = 164.79 # Nepture orbital period (years)

nangle   = np.arctan2(npos[1], npos[0])#  - nargperi

nangle_mean = 2.*np.pi*np.mod(years/nT, 1.0)  # this is a bit sloppy

nposr = Rpos(npos, -nangle_mean)
pposr = Rpos(ppos, -nangle_mean)

if True:

    fig = plt.figure()

    ax1  = fig.add_subplot(1, 2, 1)
    for pos in [nposr, pposr]:
        x, y, z = pos
        ax1.plot(x, y)
    ax1.plot([0], [0], 'or')
    ax1.set_xlim(-7E+09, 7E+09)
    ax1.set_ylim(-7E+09, 7E+09)

    ax2  = fig.add_subplot(1, 2, 2, projection='3d')
    for pos in [nposr, pposr]:
        x, y, z = pos
        ax2.plot(x, y, z, linewidth=1.0)
    ax2.plot([0], [0], [0], 'or')
    ax2.set_xlim(-7E+09, 7E+09)
    ax2.set_ylim(-7E+09, 7E+09)
    ax2.set_zlim(-7E+09, 7E+09)

    ax2.view_init(elev=20., azim=-116)

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

CC BY-SA 3.0
2017-08-26T08:56:15.193Z
2017-08-26T09:36:06.957Z
2017-08-26T09:36:06.957Z
uhoh
<p>I found two sources sort of answering this question, but conclusions I made of them contradict each other. 
<a href="https://www.reddit.com/r/askscience/comments/29jrvq/what_is_the_smallest_possible_distance_from_pluto/" rel="nofollow noreferrer">https://www.reddit.com/r/askscience/comments/29jrvq/what_is_the_smallest_possible_distance_from_pluto/</a> - here is stated that Pluto and Neptune never come closer than two billions kilometres from each other.</p>

<p>Yet from picture in here (I am aware it might be not to scale) <a href="https://astronomy.stackexchange.com/questions/11782/can-pluto-and-neptune-collide-anytime-in-future">Can Pluto and Neptune collide anytime in future?</a> it seems that Pluto and Neptune got a lot closer to each other shortly after 1999 than a half of Neptune orbit radius, judging by their speeds and positions in 1999.</p>

<p>So, how is it? How close can they get to each other and when is it going to happen next time?</p>

<p>Tried to use wikipedia, but while article about Pluto contains information at least about when it was in Aphelion, article about Neptune does not any such information (or I could not find it).</p>

CC BY-SA 3.0
2017-08-24T12:37:52.043Z
Possible duplicate of [Can Pluto and Neptune collide anytime in future?](https://astronomy.stackexchange.com/questions/11782/can-pluto-and-neptune-collide-anytime-in-future)
StephenG - Help Ukraine
CC BY-SA 3.0
2017-08-24T12:42:08.990Z
@StephenG Are you kidding me? I cite that question in my question. Have you read it? I am trying to find out the minimal distance and at which phases of their orbital periods this happens.
TStancek
CC BY-SA 3.0
2017-08-24T12:52:00.087Z
Flagging a question as a possible duplicate is *not* simply to provide you with info, but because I think there's enough info in the answer to that question to deal with yours and it gives the community an opportunity to vote on that.  Put another way, just because you say it's not a duplicate does not mean everyone need agree with that.
StephenG - Help Ukraine
CC BY-SA 3.0
2017-08-24T13:14:31.303Z
@StephenG Well, I do not have that good astronomical background as you or others here. I am unable to find the information there. Or rather, the info I get from that is contradicting another piece of information I found. And therefore I do not even know with what information to begin with. Since I am not an expert, nor have I unlimited amount of time, I asked the question. I get your point, but could you get mine that even though some question is similar to you, it is not what I am looking for?
TStancek
<solar-system><pluto><neptune>
When and where are Pluto and Neptune closest to each other?
TStancek
# When and where are Pluto and Neptune closest to each other?

(Asked by: username_0 on 2017-08-24)

I found two sources sort of answering this question, but conclusions I made of them contradict each other.
<https://www.reddit.com/r/askscience/comments/29jrvq/what_is_the_smallest_possible_distance_from_pluto/> - here is stated that Pluto and Neptune never come closer than two billions kilometres from each other.

Yet from picture in here (I am aware it might be not to scale) [Can Pluto and Neptune collide anytime in future?](https://astronomy.stackexchange.com/questions/11782/can-pluto-and-neptune-collide-anytime-in-future) it seems that Pluto and Neptune got a lot closer to each other shortly after 1999 than a half of Neptune orbit radius, judging by their speeds and positions in 1999.

So, how is it? How close can they get to each other and when is it going to happen next time?

Tried to use wikipedia, but while article about Pluto contains information at least about when it was in Aphelion, article about Neptune does not any such information (or I could not find it).

**Tags:** solar-system, pluto, neptune

> **Comments:**
> **username_1**: Possible duplicate of [Can Pluto and Neptune collide anytime in future?](https://astronomy.stackexchange.com/questions/11782/can-pluto-and-neptune-collide-anytime-in-future)  
> **username_0**: @StephenG Are you kidding me? I cite that question in my question. Have you read it? I am trying to find out the minimal distance and at which phases of their orbital periods this happens.  
> **username_1**: Flagging a question as a possible duplicate is *not* simply to provide you with info, but because I think there's enough info in the answer to that question to deal with yours and it gives the community an opportunity to vote on that.  Put another way, just because you say it's not a duplicate does not mean everyone need agree with that.  
> **username_0**: @StephenG Well, I do not have that good astronomical background as you or others here. I am unable to find the information there. Or rather, the info I get from that is contradicting another piece of information I found. And therefore I do not even know with what information to begin with. Since I am not an expert, nor have I unlimited amount of time, I asked the question. I get your point, but could you get mine that even though some question is similar to you, it is not what I am looking for?  

---

## 1 answers

### Answer by username_2 on 2017-08-26. Score: 2

Here is a quick supplemental answer. 
From the Neptune-Pluto Resonance subsection of the Wikipedia article Stability of the Solar System:

The Neptune–Pluto system lies in a 3:2 orbital resonance. C.J. Cohen and E.C. Hubbard at the Naval Surface Warfare Center Dahlgren Division discovered this in 1965. Although the resonance itself will remain stable in the short term, it becomes impossible to predict the position of Pluto with any degree of accuracy, as the uncertainty in the position grows by a factor e with each Lyapunov time, which for Pluto is 10–20 million years into the future. Thus, on the time scale of hundreds of millions of years Pluto's orbital phase becomes impossible to determine, even if Pluto's orbit appears to be perfectly stable on 10 MYR time scales (Ito and Tanikawa 2002, MNRAS).

The resonance they discovered means that for a moderate period of time (at least tens of millions of years) the relative motion between Neptune and Pluto will be repetitive, with $3\times T_{Neptune} \approx 2\times T_{Pluto}$. The paper cited in the other excellent answer is the report of this discovery by Cohen and Hubbard in 1965 mentioned here.
Figure 5 of that paper shows the motion of Neptune and Pluto in a rotating frame. The frame rotates with the average orbital rotation of Neptune, so over very long times you can see Neptune slowly rocks back and forth a bit:

If you like Python you can reproduce these fairly easy. The package Skyfield uses the same NASA JPL Ephemerides as the JPL Horizons site but is easier to use. You can see that 95% of this script is just making it look nicer and getting the position of the planets is just a few lines. 
Here are the results for only 6,000 years, a much smaller period than shown in Cohen and Hubbard 1965, so Neptune only makes a small segment of its 25,000 cycle, near one end where it's "moving" slowly. The first set of plots are in inertial (non-rotating) J2000 ecliptic coordinates, and the second is rotating with the average orbital motion of Neptune, so that Neptune appears nearly fixed.
The first plot shows Neptune-Pluto separation versus calendar year. The minimum in this period seems to be around year -77, with a distance of 2.65 billion km or 17.73 AU.



def Rpos(pos, angle):
    x, y, z = pos
    ca, sa  = np.cos(angle), np.sin(angle)

    xr = x*ca - y*sa
    yr = y*ca + x*sa

    return np.vstack((xr, yr, z))

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

from skyfield.api import Loader 

loader = Loader('~/Documents/Skydata', verbose = True)
ts     = loader.timescale()

de405  = loader('de405.bsp')  # about 65 MB
de421  = loader('de421.bsp')  # about 17 MB
de422  = loader('de422.bsp')  # about 650 MB

de = de422

neptune = de['neptune barycenter']
pluto   = de['pluto barycenter']

# years   = np.arange(1600, 2201)
years   = np.arange(-2999, 3001)

time    = ts.utc(years, 1, 1) # January 1st of each calendar year

npos = neptune.at(time).ecliptic_position().km
ppos = pluto.at(time).ecliptic_position().km

npsep = np.sqrt(((npos-ppos)**2).sum(axis=0))

if True:

    plt.figure()
    plt.plot(years, npsep)
    plt.show()

aukm = 149597870.700
print "minimum separation (km): ", npsep.min()
print "minimum separation (AU): ", npsep.min()/aukm

if True:

    fig = plt.figure()

    ax1  = fig.add_subplot(1, 2, 1)
    for pos in [npos, ppos]:
        x, y, z = pos
        ax1.plot(x, y)
    ax1.plot([0], [0], 'or')
    ax1.set_xlim(-5E+09, 7E+09)
    ax1.set_ylim(-5E+09, 7E+09)

    ax2  = fig.add_subplot(1, 2, 2, projection='3d')
    for pos in [npos, ppos]:
        x, y, z = pos
        ax2.plot(x, y, z, linewidth=1.0)
    ax2.plot([0], [0], [0], 'or')
    ax2.set_xlim(-5E+09, 7E+09)
    ax2.set_ylim(-5E+09, 7E+09)
    ax2.set_zlim(-6E+09, 6E+09)

    ax2.view_init(elev=20., azim=-110)

    plt.show()

nargperi = 276.3 * (np.pi/180.) # Neptune argument of perihelion (radians)
nT       = 164.79 # Nepture orbital period (years)

nangle   = np.arctan2(npos[1], npos[0])#  - nargperi

nangle_mean = 2.*np.pi*np.mod(years/nT, 1.0)  # this is a bit sloppy

nposr = Rpos(npos, -nangle_mean)
pposr = Rpos(ppos, -nangle_mean)

if True:

    fig = plt.figure()

    ax1  = fig.add_subplot(1, 2, 1)
    for pos in [nposr, pposr]:
        x, y, z = pos
        ax1.plot(x, y)
    ax1.plot([0], [0], 'or')
    ax1.set_xlim(-7E+09, 7E+09)
    ax1.set_ylim(-7E+09, 7E+09)

    ax2  = fig.add_subplot(1, 2, 2, projection='3d')
    for pos in [nposr, pposr]:
        x, y, z = pos
        ax2.plot(x, y, z, linewidth=1.0)
    ax2.plot([0], [0], [0], 'or')
    ax2.set_xlim(-7E+09, 7E+09)
    ax2.set_ylim(-7E+09, 7E+09)
    ax2.set_zlim(-7E+09, 7E+09)

    ax2.view_init(elev=20., azim=-116)

    plt.show()


---

