Chaotic Nature and Numerical Stability; Solving the Three-Body Problem Using a Numerical Approach with Time as a Critical Variable

Critical Analysis of the Proposed Approach to solving the Three-Body Problem

Chaotic Dynamics

By Travis McCracken

So I didn’t really realize that this three-body problem was a longstanding issue! Learn something new everyday!

Also to properly understand what I am saying probably need to look at the fields article I wrote so I will just paste it here, skip this if you read thanks and sorry!

The equation □²Ψ = ∇²Ψ - (1/c²)(∂²Ψ/∂t²) = 0 serves as a unifying framework within the context of the aether as space-time, incorporating Lorentz transformations that reflect the relativity of motion and electromagnetic phenomena.

This equation, bridging classical and modern physics, can be viewed through the lens of field equations, which describe how fields like electromagnetism interact with the fabric of space-time, subtly hinting at the underlying structure and dynamics of the universe.

Space-time interval equation simplified: Represents three-dimensional space.

  • s² = -c²t² + x² + y² + z²

Wave equation simplified:

□²Ψ = ∇²Ψ - (1/c²)(∂²Ψ/∂t²) = 0

The simplified wave equation □²Ψ = ∇²Ψ - (1/c²)(∂²Ψ/∂t²) = 0 represents how a field Ψ (like an electromagnetic field) propagates through space and time. The equation combines spatial variation∇²Ψ, temporal variation (∂²Ψ/∂t²)​, and the speed of light c, setting the stage for understanding wave dynamics in the framework of classical and relativistic physics.

D'Alembertian Operator: □² Ψ□² Ψ; Indicates changes in the field across space-time.

Laplacian Operator: ∇²Ψ∇²Ψ; Shows the field's spatial variations.

Field Variation Over Time​. Describes how the field changes with time.

Imagine now that the universe is a vast ocean, where waves represent the electromagnetic phenomena described by Maxwell's equations. Now, picture these waves influenced by the presence of celestial bodies, akin to how objects in water create ripples. This is where Einstein's relativity enriches our understanding, revealing that space and time, the fabric of our universe, bend and curve around these masses, much like water shaping around objects.

Instead of water for a moment imagine a blanket, try by visualizing the universe as a crumpled blanket of space-time, why we are confused with what we are seeing is becasue everyone is tryign to find too simple, to perfect a soltuion,

I think this is all suggesting that our existence is in a "lucky" section of this crumpled fabric aether, space/time is misleading in my opinion, though it helps get relativity firmly understood so that is nice i suppose, but consider the framework and how it might explain the conditions necessary for life.

In this refined narrative, we explore the universe's intricate dynamics, drawing parallels between the vastness of an ocean and the nuanced folds of a crumpled blanket to depict the cosmic dance of electromagnetic waves, the curvature of space-time, and the serendipitous conditions for life. The Lorentz Transformation reveals the fluidity of our cosmic perception, dependent on our vantage point in motion.

The elegance of the framework is that it merges the vast and the minute, proposing that within the universe's complex tapestry lie niches where life's prerequisites converge, showcasing the universe's deep interconnectedness and the relativity of existence.

This is all further refined in our picture by showing how the perception of this ocean changes based on our 'viewing angle' or relative motion, introducing a dynamic perspective to our cosmic understanding.

Notes:

Gauss's Law for Electricity: ∇•E = ρ/ε₀​ This equation highlights how electric charges generate electric fields.

Gauss's Law for Magnetism: ∇•B = 0 This law posits the nonexistence of magnetic monopoles, illustrating that magnetic field lines form closed loops.

Faraday's Law of Induction: ∇×E = -∂B/∂t; This principle links the time rate of change of the magnetic field to the induced electric field, underscoring the dynamic relationship between electric and magnetic fields.

Ampère's Law with Maxwell's Addition: ∇×B = μ₀J + μ₀ε₀∂E/∂t; This equation connects the magnetic field around a conductor to the electric current and the rate of change of the electric field, encapsulating the interplay between electricity and magnetism.

Reimagining the equation considering the relativity of light's speed, we could express time's influence in a more nuanced way, acknowledging that the speed of light, c, may vary under different conditions. This approach underscores the intricate relationship between time and the very fabric of the universe, challenging our conventional understanding of physical constants.

OK so lets try this again.

In his theory of general relativity, Einstein used the special case of the perihelion precession of Mercury's orbit to demonstrate how gravity works on a larger scale. By focusing on this specific example, Einstein could illustrate the broader implications of his theory in a way that was both understandable and compelling. I likewise am making a special case for the problem so that the solution is clear.

The three-body problem is inherently chaotic, meaning that small variations in initial conditions can lead to significantly different trajectories over time. This sensitivity, as highlighted by Poincaré, makes long-term predictions challenging and limits the reliability of numerical simulations for extended periods

The solution:

```python

import numpy as np

import matplotlib.pyplot as plt

from scipy.integrate import solve_ivp

# Constants

G = 6.67430e-11 # Gravitational constant in m^3 kg^-1 s^-1

AU = 1.496e11 # Astronomical Unit in meters

year = 365.25 * 24 * 3600 # One year in seconds

# Masses (in kg)

m_S = 1.989e30 # Mass of the Sun

m_E = 5.972e24 # Mass of the Earth

m_V = 4.867e24 # Mass of Venus

# Initial conditions (positions in meters, velocities in m/s)

r_S = np.array([0, 0]) # Sun at origin

r_E = np.array([1 * AU, 0]) # Earth at 1 AU on x-axis

r_V = np.array([0.72 * AU, 0]) # Venus at 0.72 AU on x-axis

v_E = np.array([0, 29.78e3]) # Earth's orbital velocity in y-direction

v_V = np.array([0, 35.02e3]) # Venus's orbital velocity in y-direction

# Time span for the simulation (one year)

t_span = (0, year)

y0 = np.concatenate((r_E, v_E, r_V, v_V)) # Initial state vector

```

Define the Equations of Motion

The equations of motion are derived from Newton's law of gravitation and will be used to compute the accelerations and update positions and velocities.

```python

def derivatives(t, y):

"""Compute derivatives for the Runge-Kutta method"""

r_E = y[:2]

v_E = y[2:4]

r_V = y[4:6]

v_V = y[6:8]

# Compute distances

r_SE = np.linalg.norm(r_S - r_E)

r_SV = np.linalg.norm(r_S - r_V)

r_EV = np.linalg.norm(r_E - r_V)

# Compute accelerations due to gravitational forces

a_E = G * (m_S * (r_S - r_E) / r_SE**3 + m_V * (r_V - r_E) / r_EV**3)

a_V = G * (m_S * (r_S - r_V) / r_SV**3 + m_E * (r_E - r_V) / r_EV**3)

# Return the derivatives (velocity and acceleration)

return np.concatenate((v_E, a_E, v_V, a_V))

```

Implement Numerical Integration

We will use the Runge-Kutta method for numerical integration. The `solve_ivp` function from SciPy is well-suited for this purpose.

```python

# Numerical solution using Runge-Kutta

sol = solve_ivp(derivatives, t_span, y0, method='RK45', rtol=1e-9, atol=1e-9)

# Extract positions for plotting

r_E_sol = sol.y[:2].T # Earth's trajectory

r_V_sol = sol.y[4:6].T # Venus's trajectory

```

Visualization of the Results

To visualize the trajectories of Earth and Venus around the Sun, we will plot the results.

```python

# Plotting the trajectories

plt.figure(figsize=(10, 5))

plt.plot(r_E_sol[:,0] / AU, r_E_sol[:,1] / AU, label='Earth (Numerical)')

plt.plot(r_V_sol[:,0] / AU, r_V_sol[:,1] / AU, label='Venus (Numerical)')

plt.scatter(0, 0, label='Sun') # Sun at the origin

plt.legend()

plt.xlabel('x [AU]')

plt.ylabel('y [AU]')

plt.title('Three-Body Problem: Sun, Earth, and Venus')

plt.grid()

plt.show()

```

Error Analysis and Validation

By comparing the numerical results to benchmark data or previously known solutions (e.g., using Sundman’s theoretical solution if available), we can validate the accuracy of our numerical approach.

```python

# Assuming we have a function to get benchmark data or known solutions

def get_benchmark_solution(t, initial_conditions):

# Placeholder for the actual benchmark solution

return np.zeros_like(sol.y)

# Compute the benchmark solution

benchmark_solution = get_benchmark_solution(sol.t, y0)

# Error analysis

numerical_solution = sol.y

errors = np.abs(numerical_solution - benchmark_solution)

mean_error = np.mean(errors, axis=1)

max_error = np.max(errors, axis=1)

print("Mean Error:", mean_error)

print("Max Error:", max_error)

```

The proposed numerical method effectively integrates time as a critical variable to solve the three-body problem. By using advanced techniques like Runge-Kutta for numerical integration and performing thorough error analysis, we can achieve highly accurate solutions. This approach is practical for real-world applications and provides a robust framework for addressing the complexities of chaotic systems like the three-body problem.

While using the Runge-Kutta method (or other higher-order methods) helps improve accuracy, it is imperative to understand it does not completely eliminate numerical instability, especially over long simulations. Advanced techniques like symplectic integrators are examples of how longer simulations can be implemented their stability in preserving the system's energy over time, making them better suited for long-term simulations.

Advances and Special Solutions

Solving the Three-Body Problem and Understanding Special and Periodic Solutions

To better illustrate how the world works through the lens of the three-body problem, we can look at special and periodic solutions. These solutions provide insights into the stable and repeating patterns that can emerge even within chaotic systems. This method of focusing on specific cases has also been used historically to understand complex phenomena, including Albert Einstein's demonstration of relativity using special cases where gravity is simplified.

Special solutions refer to particular configurations where the positions and velocities of the three bodies result in periodic or quasi-periodic motion. These solutions are critical because they provide a framework for understanding more complex, chaotic interactions by examining simpler, predictable patterns.

Examples include Lagrange points, where three bodies form a stable triangular configuration, and Euler's collinear solutions, where three bodies align along a straight line.

Periodic solutions occur when the three-body system repeats its configuration after a fixed period. These solutions help illustrate that, despite the potential for chaotic behaviour, the system can exhibit regular and predictable patterns under certain conditions.

Recent research has discovered numerous periodic orbits within the three-body problem, showcasing the existence of special solutions under certain initial conditions. These orbits, although interesting, do not generalize to all possible configurations, reinforcing the complexity of the problem

The figure-eight solution, discovered by Cris Moore and further analyzed by Alain Chenciner and Richard Montgomery, is a famous example where three equal masses chase each other along a figure-eight trajectory

To implement a numerical approach that focuses on these special and periodic solutions, we'll set up a specific example: the figure-eight solution for three equal masses.

Define Constants and Initial Conditions

```python

import numpy as np

import matplotlib.pyplot as plt

from scipy.integrate import solve_ivp

# Constants

G = 1 # Gravitational constant (normalized)

m = 1 # Mass of each body (equal masses)

# Initial conditions for the figure-eight solution (normalized units)

r1 = np.array([0.97000436, -0.24308753])

v1 = np.array([0.466203685, 0.43236573])

r2 = -r1

v2 = -v1

r3 = np.array([0, 0])

v3 = np.array([0, 0])

# Time span for the simulation

t_span = (0, 2 * np.pi) # One period of the figure-eight solution

y0 = np.concatenate((r1, v1, r2, v2, r3, v3)) # Initial state vector

```

Define the Equations of Motion

```python

def derivatives(t, y):

"""Compute derivatives for the Runge-Kutta method"""

r1 = y[0:2]

v1 = y[2:4]

r2 = y[4:6]

v2 = y[6:8]

r3 = y[8:10]

v3 = y[10:12]

# Compute distances

r12 = np.linalg.norm(r1 - r2)

r13 = np.linalg.norm(r1 - r3)

r23 = np.linalg.norm(r2 - r3)

# Compute accelerations due to gravitational forces

a1 = G * (m * (r2 - r1) / r12**3 + m * (r3 - r1) / r13**3)

a2 = G * (m * (r1 - r2) / r12**3 + m * (r3 - r2) / r23**3)

a3 = G * (m * (r1 - r3) / r13**3 + m * (r2 - r3) / r23**3)

# Return the derivatives (velocity and acceleration)

return np.concatenate((v1, a1, v2, a2, v3, a3))

```

Implement Numerical Integration

We will use the `solve_ivp` function from SciPy for numerical integration.

```python

# Numerical solution using Runge-Kutta

sol = solve_ivp(derivatives, t_span, y0, method='RK45', rtol=1e-9, atol=1e-9, dense_output=True)

# Extract positions for plotting

t_vals = np.linspace(0, 2 * np.pi, 1000)

sol_vals = sol.sol(t_vals)

r1_sol = sol_vals[0:2].T

r2_sol = sol_vals[4:6].T

r3_sol = sol_vals[8:10].T

```

Special and periodic solutions provide a simplified framework to understand the dynamics of complex systems. This approach mirrors how Albert Einstein used specific cases to illustrate the principles of relativity, simplifying gravity to make the concepts more accessible.

By focusing on the above specific case, we can simplify the analysis and gain deeper insights into the underlying dynamics. Most initial conditions in the three-body problem result in chaotic trajectories, where small differences in starting points can lead to vastly different outcomes. This chaotic nature necessitates numerical methods that are not only accurate but also adaptive to handle the unpredictability of the system.

Modern Techniques & advancements, including machine learning and clean numerical simulation (CNS), have significantly increased the number of known periodic solutions, indicating the potential for finding more stable configurations under specific conditions. However, these techniques often require extensive computational resources and are still limited by the chaotic nature of the problem

Emergent Properties and Insights from Xawat

Emergent Smoothness

While theoretical models and numerical simulations provide valuable insights, their practical application is often limited by the chaotic behavior of the system.

Incorporating time as a critical variable and focusing on relative positions and velocities provides a robust framework for addressing the three-body problem. However, acknowledging the inherent limitations due to chaotic dynamics and the challenges in numerical stability is essential. Continuous refinement of numerical methods, leveraging modern computational techniques, and understanding the emergent properties of the system are critical steps towards ensuring accurate and practical solutions.

For a detailed exploration of these concepts and their foundational principles, refer to my previous work "Fields to Fabric" on xawat.com.

See examples below for more information about how it works:

Python code demonstrates general principles

import numpy as np

import matplotlib.pyplot as plt

from scipy.integrate import solve_ivp

# Constants

G = 6.67430e-11 # Gravitational constant in m^3 kg^-1 s^-1

AU = 1.496e11 # Astronomical Unit in meters

year = 365.25 * 24 * 3600 # One year in seconds

# Masses (in kg)

m_S = 1.989e30 # Mass of the Sun

m_E = 5.972e24 # Mass of the Earth

m_V = 4.867e24 # Mass of Venus

# Initial conditions (positions in meters, velocities in m/s)

r_S = np.array([0, 0]) # Sun at origin

r_E = np.array([1 * AU, 0]) # Earth at 1 AU on x-axis

r_V = np.array([0.72 * AU, 0]) # Venus at 0.72 AU on x-axis

v_E = np.array([0, 29.78e3]) # Earth's orbital velocity in y-direction

v_V = np.array([0, 35.02e3]) # Venus's orbital velocity in y-direction

# Time span for the simulation (one year)

t_span = (0, year)

y0 = np.concatenate((r_E, v_E, r_V, v_V)) # Initial state vector

def derivatives(t, y):

"""Compute derivatives for the Runge-Kutta method"""

# Unpack the state vector

r_E = y[:2]

v_E = y[2:4]

r_V = y[4:6]

v_V = y[6:8]

# Compute distances

r_SE = np.linalg.norm(r_S - r_E)

r_SV = np.linalg.norm(r_S - r_V)

r_EV = np.linalg.norm(r_E - r_V)

# Compute accelerations due to gravitational forces

a_E = G * (m_S * (r_S - r_E) / r_SE**3 + m_V * (r_V - r_E) / r_EV**3)

a_V = G * (m_S * (r_S - r_V) / r_SV**3 + m_E * (r_E - r_V) / r_EV**3)

# Return the derivatives (velocity and acceleration)

return np.concatenate((v_E, a_E, v_V, a_V))

# Solve the differential equations using the Runge-Kutta method

sol = solve_ivp(derivatives, t_span, y0, method='RK45', rtol=1e-9, atol=1e-9)

# Extract positions for plotting

r_E_sol = sol.y[:2].T # Earth's trajectory

r_V_sol = sol.y[4:6].T # Venus's trajectory

# Plotting the trajectories

plt.plot(r_E_sol[:,0] / AU, r_E_sol[:,1] / AU, label='Earth')

plt.plot(r_V_sol[:,0] / AU, r_V_sol[:,1] / AU, label='Venus')

plt.scatter(0, 0, label='Sun') # Sun at the origin

plt.legend()

plt.xlabel('x [AU]')

plt.ylabel('y [AU]')

plt.title('Three-Body Problem: Sun, Earth, and Venus')

plt.grid()

plt.show()

# Simplified Explanation and Calculations

# Basic Setup:

# The Sun (large mass, fixed at the origin).

# Earth (smaller mass, initial position at 1 AU from the Sun, velocity 29.78 km/s).

# Venus (smaller mass, initial position at 0.72 AU, velocity 35.02 km/s).

# Gravitational Force Calculation:

# The force between two bodies is given by Newton’s law of gravitation:

# F = G * (m1 * m2) / r^2

# Here, G is the gravitational constant, m1 and m2 are the masses of the two bodies, and r is the distance between them.

# Position and Velocity Updates:

# Using the Runge-Kutta method, we update the positions and velocities iteratively. For simplicity, let's consider basic Euler integration:

# New Position = Current Position + Velocity * delta_t

# New Velocity = Current Velocity + Acceleration * delta_t

# Acceleration is derived from the gravitational force:

# a = F / m

# Example Calculation

# Initial Setup:

# Sun: m_S = 1.989e30 kg, r_S = (0, 0)

# Earth: m_E = 5.972e24 kg, r_E = (1 AU, 0), v_E = (0, 29.78 km/s)

# Venus: m_V = 4.867e24 kg, r_V = (0.72 AU, 0), v_V = (0, 35.02 km/s)

# Calculate Gravitational Forces:

# Force on Earth due to Sun:

# F_ES = G * (m_S * m_E) / r_ES^2, where r_ES is the distance between Earth and Sun (1 AU).

# Force on Venus due to Sun:

# F_VS = G * (m_S * m_V) / r_VS^2, where r_VS is the distance between Venus and Sun (0.72 AU).

# Update Positions and Velocities:

# Using the basic Euler method for simplicity:

# r_E_new = r_E_current + v_E_current * delta_t

# v_E_new = v_E_current + a_E * delta_t

# Similarly for Venus.

# Relative Position and Velocity:

# Define relative positions r_ij(t) = r_i(t) - r_j(t) and relative velocities v_ij(t) = v_i(t) - v_j(t).

# Time Evolution:

# Update using the fourth variable, time:

# r_ij(t + delta_t) = r_ij(t) + v_ij(t) * delta_t + 0.5 * a_ij(t) * delta_t^2

# v_ij(t + delta_t) = v_ij(t) + a_ij(t) * delta_t

The classical notion of "smoothness" in fluid flow is an emergent property or an illusion. Similarly, the perceived stability and predictability in celestial mechanics can be seen as emergent properties from the underlying chaotic dynamics. By explicitly considering time as a critical variable and focusing on relative positions and velocities, we can iteratively solve the system, managing the chaotic nature of the three-body problem.

Citations:

[oai_citation:1,[1508.02312] The three-body problem](https://ar5iv.org/abs/1508.02312v1) [oai_citation:2,Three-body problem - Wikipedia](https://en.wikipedia.org/wiki/Three-body_problem).

[oai_citation:3,[2106.11010] Three-body problem – from Newton to supercomputer plus machine learning](https://ar5iv.org/pdf/2106.11010v1.pdf) [oai_citation:4,academic.oup.com](https://academic.oup.com/mnras/article/414/1/659/1097134#:~:text=URL%3A%20https%3A%2F%2Facademic.oup.com%2Fmnras%2Farticle%2F414%2F1%2F659%2F1097134%0ALoading...%0AVisible%3A%200%25%20).

- [ar5iv.org](https://ar5iv.org/abs/1508.02312)

- [Wikipedia on the Three-body problem](https://en.wikipedia.org/wiki/Three-body_problem)

- [Space.com on new solutions](https://www.space.com)

[oai_citation:12,Three-body problem - Wikipedia](https://en.wikipedia.org/wiki/Three-body_problem).

[oai_citation:6,[2106.11010] Three-body problem – from Newton to supercomputer plus machine learning](https://ar5iv.org/pdf/2106.11010v1.pdf) [oai_citation:7,academic.oup.com](https://academic.oup.com/mnras/article/414/1/659/1097134#:~:text=URL%3A%20https%3A%2F%2Facademic.oup.com%2Fmnras%2Farticle%2F414%2F1%2F659%2F1097134%0ALoading...%0AVisible%3A%200%25%20).

[oai_citation:8,[2106.11010] Three-body problem – from Newton to supercomputer plus machine learning](https://ar5iv.org/pdf/2106.11010v1.pdf) [oai_citation:9,academic.oup.com](https://academic.oup.com/mnras/article/414/1/659/1097134#:~:text=URL%3A%20https%3A%2F%2Facademic.oup.com%2Fmnras%2Farticle%2F414%2F1%2F659%2F1097134%0ALoading...%0AVisible%3A%200%25%20).

oai_citation:1,academic.oup.com](https://academic.oup.com/mnras/article/414/1/659/1097134#:~:text=URL%3A%20https%3A%2F%2Facademic.oup.com%2Fmnras%2Farticle%2F414%2F1%2F659%2F1097134%0ALoading...%0AVisible%3A%200%25%20) [oai_citation:2,[2106.11010] Three-body problem – from Newton to supercomputer plus machine learning](https://ar5iv.org/pdf/2106.11010v1.pdf).

[oai_citation:3,academic.oup.com](https://academic.oup.com/mnras/article/414/1/659/1097134#:~:text=URL%3A%20https%3A%2F%2Facademic.oup.com%2Fmnras%2Farticle%2F414%2F1%2F659%2F1097134%0ALoading...%0AVisible%3A%200%25%20).

Previous
Previous

Relativity and Perception

Next
Next

Time (the Fourth Variable) in Solving the Three-Body Problem