<p>If we set the radius of Io's orbit to 1, then Europa's is about <span class="math-container">$a=$</span>1.591. Since they are in a <a href="https://en.wikipedia.org/wiki/Orbital_resonance" rel="nofollow noreferrer">2:1 orbital resonance</a> we would expect that number to the 3/2 power to be exactly 2. It's close (2.007) but there's enough of a difference to make it interesting; since Jupiter rotates rapidly I'm guessing that it's <a href="https://space.stackexchange.com/q/25868/12102">related to this</a>.</p>
<p>Okay based on <a href="https://astronomy.stackexchange.com/a/36981/7982">@JamesK's idea of keeping one fixed</a> I tried to get the analytical integral</p>
<p><span class="math-container">$$&lt;r_{12}&gt; = \frac{1}{2 \pi}\int_0^{2 \pi}\sqrt{(a-\cos \theta)^2 + \sin^2 \theta} \ d\theta$$</span></p>
<p><a href="https://www.wolframalpha.com/input/?i=integral+sqrt%28%28a-cos%28x%29%29%5E2+%2B+sin%28x%29%5E2%29+from+0+to+2*pi" rel="nofollow noreferrer">from Wolfram Alpha</a> but I got a</p>
<blockquote>
<p>Standard computation time exceeded...</p>
</blockquote>
<p>message which I've never seen before, (<a href="https://i.sstatic.net/zZxAb.png" rel="nofollow noreferrer">screenshot</a>) so I did it in Python.</p>
<p>While @JamesK's answer is &quot;the greater of the two&quot; which here would be 1.591 or there would be 671,100 kilometers, because this is a 2D and not a 1D problem and Pythagoras <a href="https://en.wikipedia.org/wiki/Pythagorean_theorem" rel="nofollow noreferrer">has something to say</a>, I get a different value.</p>
<pre><code>('ratio: ', 1.5910384068278804)
('d.mean(): ', 1.7524934914237922)
('James_K: ', 1.5910384068278804)
</code></pre>
<p>The Python script below returns 1.752 or about 739,200 kilometers (solid line) versus the mean projected 1 dimensional distance (dashed line).</p>
<p><a href="https://i.sstatic.net/k0qva.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/k0qva.png" alt="enter image description here" /></a></p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt

a = 671100. / 421800
print('ratio: ', a)

theta = np.linspace(0, 2*np.pi, 100001)[::-1] # don't double-count the endpoints
d = np.sqrt((a - np.cos(theta))**2 + np.sin(theta)**2)
print('d.mean(): ', d.mean())
theta_degs = (180/np.pi) * theta

plt.plot(theta_degs, d)
plt.xlabel('phase angle (deg)')
plt.ylabel(&quot;distance normalized to Io's SMA&quot;)
plt.plot(theta_degs, d.mean() * np.ones_like(theta_degs), '-k')
plt.plot(theta_degs, a * np.ones_like(theta_degs), '--k')
plt.ylim(0, None)
plt.show()

James_K = ((a-1.) + (a+1.)) / 2.
print('James_K: ', James_K)
</code></pre>

CC BY-SA 4.0
2020-07-17T06:57:03.230Z
Yes, this is right.  I knew I should have done an integral.  Taking average doesn't commute with finding magnitudes.
James K
CC BY-SA 4.0
2020-07-17T07:15:32.117Z
Thank you, I'm not sure why finding an answer for such a simple question proved so hard.
user267545
CC BY-SA 4.0
2020-07-17T08:11:24.363Z
@user267545 This is why I like Stack Exchange so much! :-) As long as something can be formulated clearly as you have done so nicely, it's not guaranteed, but pretty common to get helpful answers!
uhoh
CC BY-SA 4.0
2020-07-17T04:28:23.883Z
2020-07-18T13:20:25.637Z
2020-07-18T13:20:25.637Z
uhoh
<p>There is no magic in your calculation:  If the orbital radii are <span class="math-container">$a$</span> and <span class="math-container">$b$</span> and <span class="math-container">$a&gt;b$</span> then</p>
<p><span class="math-container">$$\frac{(a-b)+(a+b)}{2} = a$$</span></p>
<p>so the average of these two values is always equal to the greater of the two.</p>
<p>Now to think about this, imagine that Europa is fixed (ie we rotate the frame of reference to keep Europa at a fixed point.  Io continues to move in a circle (in this approximation)  centred at Jupiter.  The average position of Io is in the centre of the circle.  So the average vector from Europa to Io is the radius vector.  As uhoh notes this doesn't mean that the average distance is 6721000, (taking averages doesn't commute with calculating magnitudes), and the average distance would require the evaluation of an integral. Uhoh has evaluated that integral.</p>
<p>To see a simulation, <a href="https://www.geogebra.org/classic/vemkse4k" rel="nofollow noreferrer">https://www.geogebra.org/classic/vemkse4k</a></p>

CC BY-SA 4.0
2020-07-17T03:30:03.580Z
So, to be clear, my conclusion was right and I just came it to via the wrong path? So the average distance between any 2 Galilean moons is just the outer one's semi-major axis?
user267545
CC BY-SA 4.0
2020-07-17T06:59:38.327Z
No, because I stopped thinking when the maths started to get hard.  See other answer.
James K
CC BY-SA 4.0
2020-07-17T00:29:43.147Z
2020-07-17T06:55:24.937Z
2020-07-17T06:55:24.937Z
James K
<p>I want to know the average distance between Io and Europa knowing that Io's semi-major axis (around Jupiter of course) is 421,800 km and Europa's semi-major axis is 671,100 km.</p>
<p>At first I thought it's the average of the closest approach (671,100 - 421,800 = 249,300 km) and the farthest approach (671,100 + 421,800 = 1,092,000 km), but the average of those is exactly 671,100 km, which is Europa's semi-major axis, and I find that hard to believe.</p>
<p>Assuming the orbits are co-planar and perfectly circular, which they more or less are, surely there must be a simple formula to calculate the average distance?</p>
<p>I asked this on another site and the answer was &quot;run a simulation!&quot;, which is a very good answer, and I would've already done that if I knew how lol.</p>

<orbit>
How is the average distance between 2 objects orbiting around a third object calculated?
user267545
# How is the average distance between 2 objects orbiting around a third object calculated?

(Asked by: username_0 on 2020-07-16)

I want to know the average distance between Io and Europa knowing that Io's semi-major axis (around Jupiter of course) is 421,800 km and Europa's semi-major axis is 671,100 km.

At first I thought it's the average of the closest approach (671,100 - 421,800 = 249,300 km) and the farthest approach (671,100 + 421,800 = 1,092,000 km), but the average of those is exactly 671,100 km, which is Europa's semi-major axis, and I find that hard to believe.

Assuming the orbits are co-planar and perfectly circular, which they more or less are, surely there must be a simple formula to calculate the average distance?

I asked this on another site and the answer was "run a simulation!", which is a very good answer, and I would've already done that if I knew how lol.

**Tags:** orbit

---

## 2 answers

### Answer by username_1 on 2020-07-17. Score: 2 | Accepted answer

If we set the radius of Io's orbit to 1, then Europa's is about $a=$1.591. Since they are in a 2:1 orbital resonance we would expect that number to the 3/2 power to be exactly 2. It's close (2.007) but there's enough of a difference to make it interesting; since Jupiter rotates rapidly I'm guessing that it's related to this.
Okay based on @JamesK's idea of keeping one fixed I tried to get the analytical integral
$$ = \frac{1}{2 \pi}\int_0^{2 \pi}\sqrt{(a-\cos \theta)^2 + \sin^2 \theta} \ d\theta$$
from Wolfram Alpha but I got a

Standard computation time exceeded...

message which I've never seen before, (screenshot) so I did it in Python.
While @JamesK's answer is "the greater of the two" which here would be 1.591 or there would be 671,100 kilometers, because this is a 2D and not a 1D problem and Pythagoras has something to say, I get a different value.
('ratio: ', 1.5910384068278804)
('d.mean(): ', 1.7524934914237922)
('James_K: ', 1.5910384068278804)

The Python script below returns 1.752 or about 739,200 kilometers (solid line) versus the mean projected 1 dimensional distance (dashed line).

import numpy as np
import matplotlib.pyplot as plt

a = 671100. / 421800
print('ratio: ', a)

theta = np.linspace(0, 2*np.pi, 100001)[::-1] # don't double-count the endpoints
d = np.sqrt((a - np.cos(theta))**2 + np.sin(theta)**2)
print('d.mean(): ', d.mean())
theta_degs = (180/np.pi) * theta

plt.plot(theta_degs, d)
plt.xlabel('phase angle (deg)')
plt.ylabel("distance normalized to Io's SMA")
plt.plot(theta_degs, d.mean() * np.ones_like(theta_degs), '-k')
plt.plot(theta_degs, a * np.ones_like(theta_degs), '--k')
plt.ylim(0, None)
plt.show()

James_K = ((a-1.) + (a+1.)) / 2.
print('James_K: ', James_K)

> **Comments:**
> **username_2**: Yes, this is right.  I knew I should have done an integral.  Taking average doesn't commute with finding magnitudes.  
> **username_0**: Thank you, I'm not sure why finding an answer for such a simple question proved so hard.  
> **username_1**: @user267545 This is why I like Stack Exchange so much! :-) As long as something can be formulated clearly as you have done so nicely, it's not guaranteed, but pretty common to get helpful answers!  

---

### Answer by username_2 on 2020-07-17. Score: 0

There is no magic in your calculation: If the orbital radii are $a$ and $b$ and $a>b$ then

$$\frac{(a-b)+(a+b)}{2} = a$$

so the average of these two values is always equal to the greater of the two.

Now to think about this, imagine that Europa is fixed (ie we rotate the frame of reference to keep Europa at a fixed point. Io continues to move in a circle (in this approximation) centred at Jupiter. The average position of Io is in the centre of the circle. So the average vector from Europa to Io is the radius vector. As uhoh notes this doesn't mean that the average distance is 6721000, (taking averages doesn't commute with calculating magnitudes), and the average distance would require the evaluation of an integral. Uhoh has evaluated that integral.

To see a simulation, <https://www.geogebra.org/classic/vemkse4k>

> **Comments:**
> **username_0**: So, to be clear, my conclusion was right and I just came it to via the wrong path? So the average distance between any 2 Galilean moons is just the outer one's semi-major axis?  
> **username_2**: No, because I stopped thinking when the maths started to get hard.  See other answer.  

---

