1 Introduction

The three-body problem is one of the oldest open problems in astronomy (Valtonen and Karttunen 2006). Although it can be applied as a good model to many astrophysical phenomena ranging from the dynamics of minor planets (Kozai 1962) and satellites (Lidov 1962) to that of supermassive black holes (Naoz et al. 2019; Alexander 2017), it cannot be generically solved.Footnote 1 It is non-integrable, i.e. chaotic (Masoliver and Ros 2011).

There exist a couple of approaches to predict the future of triple systems: (i) one directly integrates the equations of motion numerically (Heggie and Hut 2003; ii) one derives the probability distributions of the orbital elements as a result of the chaotic three-body evolution (e.g. Stone and Leigh 2019; iii) one uses approximations (Valtonen and Karttunen 2006). A frequently used approximation is the restricted three-body problem in which one of the three bodies has zero mass (Szebehely 1967). Another possibility is the hierarchical problem in which a tight binary is perturbed by a more massive object (Naoz 2016). The hierarchical three-body problem puts the focus on the system’s evolution on secular timescales, i.e. timescales much longer than the orbital period. It is achieved by averaging the system’s Hamiltonian, for example, using the von Zeipel transformation (Ito and Ohtsuka 2019). The secular evolution equations for the orbit can then be obtained from the averaged Hamiltonian in different ways.

A common method is Lagrange’s (non-canonical) planetary equations of motion which use the standard orbital elements (e.g. Murray and Dermott 1999). However, the associated equations suffer from vanishing denominators if the eccentricity is either zero or unity, or if the inclination is zero (Valtonen and Karttunen 2006).

In order to cure the aforementioned problems, one can introduce another set of equations, named after Milankovitch (Milankovitch 1939). More precisely, one defines \(\textbf{L}\) as the angular momentum vector and \(\textbf{K}\) (the pericenter vector) as the vector which points to the orbit’s pericenter and whose magnitude is equal to the angular momentum. The (non-canonical) evolution equations then read

$$\begin{aligned} {\dot{L}}_a&=\{L_a, \mathcal {H}\}=\{L_a,L_b\}\frac{\partial \mathcal {H}}{\partial L_b} +\{L_a,K_b\}\frac{\partial \mathcal {H}}{\partial K_b}, \end{aligned}$$
(1a)
$$\begin{aligned} {\dot{K}}_a&=\{K_a, \mathcal {H}\}=\{K_a,L_b\}\frac{\partial \mathcal {H}}{\partial L_b}+\{K_a,K_b\}\frac{\partial \mathcal {H}}{\partial K_b}, \end{aligned}$$
(1b)

where Einstein summation is implied for the Latin indices, which run from 1 to 3. Here, \(\mathcal {H}\) is the system’s Hamiltonian and \(\{\cdot ,\cdot \}\) is the Poisson bracket

$$\begin{aligned} \{ f(q,p), g(q,p) \} = \frac{\partial f}{\partial q} \frac{\partial g}{\partial p} - \frac{\partial f}{\partial p}\frac{\partial g}{\partial q}, \end{aligned}$$
(2)

with f and g arbitrary functions of (qp) , the canonical coordinates and momenta (Goldstein et al. 2002). These equations are not limited to the three-body problem, i.e. \(\mathcal {H}\) is arbitrary. The standard version of Milankovitch equations uses the Runge–Lenz–Laplace or eccentricity vector instead of our pericenter vector (e.g. Tremaine et al. 2009; Rosengren and Scheeres 2014). Some other works (e.g. Fouvry et al. 2022) use the Klein variables (Klein 1924). Via the use of Pfaffian forms, Reference Musen (1964) found a canonical set of vectors which reformulates the Milankovitch equations as Hamilton’s equations of motion. The reason for our present choice is clarified in Sect. 2.

For a bound orbit, the Poisson brackets of these vectors are

$$\begin{aligned} \{L_a,L_b\}&= \epsilon _{abc} L_c, \end{aligned}$$
(3a)
$$\begin{aligned} \{K_a,L_b\}&= \epsilon _{abc} K_c, \end{aligned}$$
(3b)
$$\begin{aligned} \{K_a,K_b\}&= - \epsilon _{abc} L_c, \end{aligned}$$
(3c)

with \(\epsilon _{abc}\) the Levi–Civita antisymmetric tensor. We check these in “Appendix A” using the canonical Delaunay variables. Inserting these expressions into Eqs. (1) yields

$$\begin{aligned} {\dot{L}}_a&= \epsilon _{abc} L_c \frac{\partial \mathcal {H}}{\partial L_b} - \epsilon _{abc} K_b \frac{\partial \mathcal {H}}{\partial K_c} , \end{aligned}$$
(4a)
$$\begin{aligned} {\dot{K}}_a&= \epsilon _{abc} K_c \frac{\partial \mathcal {H}}{\partial L_b} + \epsilon _{abc} L_b \frac{\partial \mathcal {H}}{\partial K_c} . \end{aligned}$$
(4b)

Hereafter we restrict ourselves to secular evolution. An essential feature of it is that the semi-major axis is constant due to the orbit-averaging over the (fast) mean anomaly (Morbidelli 2002). For a time-independent averaged Hamiltonian, i.e. when the total energy is constant as well, we have two conserved quantities. These are manifested in the first integrals of motion of Eqs. (4)

$$\begin{aligned} \Vert \textbf{L}\Vert - \Vert \textbf{K}\Vert&= \mathrm {const.}, \end{aligned}$$
(5a)
$$\begin{aligned} \textbf{L}\cdot \textbf{K}&= \mathrm {const.}, \end{aligned}$$
(5b)

with “\(\cdot \)” the usual scalar product. The associated constants are set to zero because \(\textbf{L}\) and \(\textbf{K}\) have the same magnitudes and are perpendicular to each other, by definition. These two constraints reduce the number of degrees of freedom from 6 to 4. Given the geometric meaning of the vectors involved, it is understood that Eqs. (5) hold in the non-averaged case, too.

Contrary to the standard vector algebra just presented, Hestenes (1983, H83 hereafter) suggested an alternative formulation for celestial mechanics, namely geometric algebra. In doing so, H83 derives the equations of motion for a spinor instead of a pair of vectors. We now revisit this result and rewrite the associated equations of motion using the Poisson brackets of spinors. The letter is structured as follows. Section 2 introduces spinors and expresses the equations of motion with them. Section 3 applies the spinorial equations to the pedagogical case of the secular dynamics around an oblate planet. Section 5 summarises the benefits and disadvantages of the spinorial formalism.

2 The spinorial Milankovitch equations

First, let us take three orthonormal unit vectors \(\varvec{\sigma }_a \in {\mathbb {R}}^{3} \) with \(a=1,2,3\). Let us then define the geometric product between two of them as

$$\begin{aligned} \varvec{\sigma }_a \varvec{\sigma }_b = \varvec{\sigma }_a \cdot \varvec{\sigma }_b + \varvec{\sigma }_a \wedge \varvec{\sigma }_b, \end{aligned}$$
(6)

where “\(\cdot \)” is again the usual (symmetric) dot product giving a scalar, while “\(\wedge \)” is an antisymmetric product giving a bivector. From this, it follows that

$$\begin{aligned} \varvec{\sigma }_a \varvec{\sigma }_b = - \varvec{\sigma }_b \varvec{\sigma }_a \end{aligned}$$
(7)

for \(a\ne b\) and

$$\begin{aligned} \varvec{\sigma }_1 \varvec{\sigma }_1 = \varvec{\sigma }_2 \varvec{\sigma }_2 = \varvec{\sigma }_3 \varvec{\sigma }_3 = 1, \end{aligned}$$
(8)

where 1 is a scalar and the geometric product is not denoted explicitly.Footnote 2 Using the associativity of the geometric product, one can easily show that

$$\begin{aligned} (\varvec{\sigma }_1 \varvec{\sigma }_2 \varvec{\sigma }_3)^2 = (\varvec{\sigma }_1 \varvec{\sigma }_2 \varvec{\sigma }_3)(\varvec{\sigma }_1 \varvec{\sigma }_2 \varvec{\sigma }_3) = - 1, \end{aligned}$$
(9)

which motivates a notation similar to that of the complex unit, namely \(\varvec{\sigma }_1 \varvec{\sigma }_2 \varvec{\sigma }_3 = \textrm{I}\), a trivector. Now we can define a spinor and its conjugate via

$$\begin{aligned} \underline{s}&= x_0 + \textrm{I} x_a \varvec{\sigma }_a ,\end{aligned}$$
(10a)
$$\begin{aligned} \underline{s}^\dagger&= x_0 - \textrm{I} x_a \varvec{\sigma }_a, \end{aligned}$$
(10b)

where \(x_{0 \le \mu \le 3}\) are real. As illustrated in “Appendix B,” spinors can be efficiently used to describe rotations.Footnote 3 Along the same line, “Appendix C” investigates the use of bivectors in the context of Milankovitch equations.

Let us now demand that (i) the norm of the spinor, \(\underline{s}\), is related to the angular momentum via

$$\begin{aligned} \underline{s}^\dagger \underline{s}= 4 \, \Vert \textbf{L}\Vert = 4 \, \Vert \textbf{K}\Vert , \end{aligned}$$
(11)

and that (ii) it rotates the basis vectors \(\varvec{\sigma }_1\) and \(\varvec{\sigma }_3\) to the direction of \(\textbf{K}\) and \(\textbf{L}\), respectively (we follow H83 for that convention), i.e.

$$\begin{aligned} \textbf{L}&=\underline{s}^\dagger \varvec{\sigma }_3 \, \underline{s}, \end{aligned}$$
(12a)
$$\begin{aligned} \textbf{K}&=\underline{s}^\dagger \varvec{\sigma }_1 \, \underline{s}. \end{aligned}$$
(12b)

These equations can be recast as

$$\begin{aligned} 4 L_a \varvec{\sigma }_a&= \left( x_0- \textrm{I}x_b \varvec{\sigma }_b \right) \varvec{\sigma }_3 \left( x_0 + \textrm{I}x_c \varvec{\sigma }_c \right) , \end{aligned}$$
(13a)
$$\begin{aligned} 4 K_a \varvec{\sigma }_a&= \left( x_0 - \textrm{I}x_b \varvec{\sigma }_b \right) \varvec{\sigma }_1 \left( x_0 + \textrm{I}x_c \varvec{\sigma }_c \right) . \end{aligned}$$
(13b)

Matching the prefactors of the \(\{ \varvec{\sigma }_i \}\) on both sides finally yields

$$\begin{aligned} L_1&= \tfrac{1}{2} \big ( x_0 x_2 + x_1 x_3 \big ) , \end{aligned}$$
(14a)
$$\begin{aligned} L_2&= \tfrac{1}{2} \big (x_2 x_3 - x_0 x_1 \big ) , \end{aligned}$$
(14b)
$$\begin{aligned} L_3&= \tfrac{1}{4} \big ( x_0^2 - x_1^2 - x_2^2 + x_3^2 \big ) , \end{aligned}$$
(14c)
$$\begin{aligned} K_1&= \tfrac{1}{4} \big ( x_0^2 + x_1^2 - x_2^2 - x_3^2 \big ) , \end{aligned}$$
(14d)
$$\begin{aligned} K_2&= \tfrac{1}{2} \big ( x_0 x_3 + x_1 x_2 \big ) , \end{aligned}$$
(14e)
$$\begin{aligned} K_3&= \tfrac{1}{2} \big ( x_1 x_3 - x_0 x_2 \big ) . \end{aligned}$$
(14f)

The action of the spinor on the basis vectors is to rotate and multiply both vectors by \(4\Vert \textbf{L}\Vert \). Such an operation cannot provide us with two vectors of different magnitudes, hence our choice in Sect. 1 of using the pericenter vector rather than the eccentricity one.

We now express the Hamiltonian with the spinor \({ \mathcal {H}(\underline{s}) = \mathcal {H}(x_0,x_1,x_2,x_3) }\). Analogously to the vectorial case in Eqs. (1), we have

$$\begin{aligned} {\dot{x}}_\mu = \{x_\mu , x_\nu \} \partial _{x_\nu } \mathcal {H}, \end{aligned}$$
(15)

where Greek indices run from 0 to 3. The task is to calculate the Poisson brackets of the \({ \{ x_{\mu } \} }\), just like for \({(\textbf{L}, \textbf{K})}\) in Eqs. (3). Substituting Eqs. (14) into the Poisson brackets from Eqs. (3) gives us

$$\begin{aligned} \{x_1,x_2\}&= \{x_3, x_0\} = 1, \end{aligned}$$
(16a)
$$\begin{aligned} \{x_2,x_3\}&= \{x_0, x_1\} = 0, \end{aligned}$$
(16b)
$$\begin{aligned} \{x_0,x_2\}&= \{x_3, x_1\} = 0. \end{aligned}$$
(16c)

Putting these brackets back into Eq. (15) finally yields the equations of motion

$$\begin{aligned} {\dot{x}}_0&= - \partial _{x_3} \mathcal {H}, \end{aligned}$$
(17a)
$$\begin{aligned} {\dot{x}}_1&= \partial _{x_2} \mathcal {H}, \end{aligned}$$
(17b)
$$\begin{aligned} {\dot{x}}_2&= - \partial _{x_1} \mathcal {H}, \end{aligned}$$
(17c)
$$\begin{aligned} {\dot{x}}_3&= \partial _{x_0} \mathcal {H}. \end{aligned}$$
(17d)

These are the spinorial analogues of Milankovitch Eq. (4). We make two remarks about them. First, the transformations in Eqs. (14) have the same structure as the Kustaanheimo–Stiefel (KS) transformation in the regularisation of the 3-dimensional Kepler problem (Stiefel and Kustaanheimo 1965; Waldvogel 2006). Here, they are applied to both the angular momentum and pericenter vectors. Second, the set \({ \{ x_{\mu } \} }\) is symplectic, i.e. it obeys the canonical Poisson relations. Phrased differently, Eqs. (17) are simply Hamilton’s canonical equations with \({(x_{1}, x_{3})}\) being coordinates and \({(x_{2}, x_{0})}\) their respective conjugate momenta.Footnote 4

3 Motion around an oblate planet

As a simple demonstration, we follow H83 and apply the spinorial formalism to the secular dynamics of a satellite around an oblate planet.Footnote 5 The averaged perturbing Hamiltonian is Beletsky (2001)

$$\begin{aligned} \mathcal {H}= (C/L^3) \big [ 1- 3 \, (L_\parallel / L )^2 \big ], \end{aligned}$$
(18)

with C a constant. Here, L is the satellite’s angular momentum and \(L_\parallel \) its projection on the planet’s axis of rotation. When expressed with the spinor components from Eqs. (14), they read

$$\begin{aligned} L&= \tfrac{1}{4}\left( x_0^2 + x_1^2 + x_2^2 + x_3^2\right) , \end{aligned}$$
(19a)
$$\begin{aligned} L_\parallel&= \tfrac{1}{2} n_1 (x_0 x_2 + x_1 x_3) + \tfrac{1}{2} n_2 (x_2 x_3 - x_0 x_1) + \tfrac{1}{4} n_3 (x_0^2 - x_1^2 - x_2^2 + x_3^2), \end{aligned}$$
(19b)

with \(\textbf{n}=[n_1,n_2,n_3]\) the unit vector along the planet’s rotational axis.Footnote 6 After injecting the Hamiltonian from Eq. (18), Eqs. (17) have an exact solution in closed form (see “Appendix D”). Assuming \(\textbf{n}=[0,0,1]\), it reads

$$\begin{aligned} x_0&= A_{+} \sin (\omega _{+} t + \delta _{+}), \end{aligned}$$
(20a)
$$\begin{aligned} x_1&= A_{-} \sin (\omega _{-} t + \delta _{-}), \end{aligned}$$
(20b)
$$\begin{aligned} x_2&= A_{-} \cos (\omega _{-} t + \delta _{-}), \end{aligned}$$
(20c)
$$\begin{aligned} x_3&= A_{+} \cos (\omega _{+} t + \delta _{+}), \end{aligned}$$
(20d)

with \({ \delta _{\pm } }\) some given phases, the amplitudes \({ A_{\pm } }\) satisfying the constraints

$$\begin{aligned} A_{+}^2 + A_{-}^2&= 4L , \end{aligned}$$
(21a)
$$\begin{aligned} A_{+}^2 - A_{-}^2&= 4L_\parallel , \end{aligned}$$
(21b)

and the constant frequencies

$$\begin{aligned} \omega _{\pm } = \tfrac{3C}{2} \left( \pm \tfrac{L^2-5L_\parallel ^2}{L^6} + \tfrac{2L_\parallel }{L^5} \right) . \end{aligned}$$
(22)

When substituting into Eqs. (14), we recover that both \(\textbf{L}\) and \(\textbf{K}\) precess with constant magnitudes (Beletsky 2001). The critical inclination (Lubowe 1969) follows from the resonance condition \(\omega _{+} = \omega _{-}\).

4 Kozai–Lidov oscillations

To test our formalism against a numerical example, we now investigate the secular dynamics of a tight binary with a test particle, perturbed by a distant third object. Truncating the Hamiltonian at third order in the semi-major axes ratio, the dynamics of the inner binary follows from the Hamiltonian [see Eqs. (2) and (3) in Katz et al. 2011]

$$\begin{aligned} \mathcal {H}= C \big ( \mathcal {H}_\textrm{q}+ \epsilon _\textrm{o}\mathcal {H}_\textrm{o}\big ), \end{aligned}$$
(23)

where \({ \mathcal {H}_{\textrm{q}} }\) (resp. \(\mathcal {H}_{\textrm{o}}\)) is the quadrupolar (resp. octupolar) contribution. They read

$$\begin{aligned} \mathcal {H}_\textrm{q}&= \tfrac{3}{4} \left( \tfrac{1}{2} L_z^2 + D^2 - \tfrac{5}{2}D_z^2 - \tfrac{1}{6} \right) , \end{aligned}$$
(24a)
$$\begin{aligned} \mathcal {H}_\textrm{o}{}&= \tfrac{75}{64} \left( D_x \left( \tfrac{1}{5} - \tfrac{8}{5}D^2 + 7D_z^2 - L_z^2\right) - 2 D_z L_x L_z \right) , \end{aligned}$$
(24b)

where \(\textbf{L}\) is the inner binary’s specific angular momentum and \({ \textbf{D} = \sqrt{1 - L^{2}} \textbf{K} / L }\) its eccentricity vector (see Eq. (9.133) of Goldstein et al. 2002). The constants are

$$\begin{aligned} C&= \frac{G m_\textrm{per}a_\textrm{in}^2}{a_\textrm{per}^3\left( 1-e_\textrm{per}^2\right) ^{3/2}}, \end{aligned}$$
(25a)
$$\begin{aligned} \epsilon _\textrm{o}&= \frac{a_\textrm{in}}{a_\textrm{per}}\frac{e_\textrm{per}}{1-e_\textrm{per}^2}, \end{aligned}$$
(25b)

where G is the gravitational constant, \(m_{\textrm{per}}\), \(a_{\textrm{per}}\) and \(e_{\textrm{per}}\) are, respectively, the mass, semi-major axis and eccentricity of the distant perturber, and \(a_{\textrm{in}}\) the semi-major axis of the tight binary.

Using the Hamiltonian from Eq. (23), we integrated Eqs. (17) numerically. The solution is shown in Fig. 1. It exhibits the well-known Kozai–Lidov oscillations and perfectly agrees with the solution obtained from an independent integration using the code from Naoz et al. (2013).

Fig. 1
figure 1

Numerical solution of Eqs. (17) for the Hamiltonian from Eq. (23). The perturber’s (fixed) orbital parameters are \({ m_{\textrm{per}} = 1 \, M_\odot }\), \({ a_{\textrm{per}} = 5 \, \textrm{au} }\), \({ e_{\textrm{per}}= 0 }\) and \({ g_{\textrm{per}} = 0 }\), with g the argument of pericenter, see “Appendix A.” The inner test particle orbits around an object of mass \({ M = 0.001 \, M_{\odot } }\), with semi-major axis \({ a_{\textrm{in}} = 0.1 \, \textrm{au} }\). At the initial time, the inner orbit’s parameters are set to \({ e_{\textrm{in}} = 0.1 }\), \({ g_{\textrm{in}} = 0 }\), \({ I_{\textrm{in}} = 50^\circ }\) and \({ h_{\textrm{in}} = 0 }\), with I and h the inclination and argument of node, respectively. The integration of the spinorial equations of motion was performed using the classical fourth-order Runge–Kutta scheme (see, e.g. Hairer et al. 2008) with timestep \({ \delta t = 0.1\,\textrm{yr} }\), giving a final relative error in the total energy of order \({10^{-13}}\). The time evolution is compared with the use of the independent code from Naoz et al. (2013)

5 Discussion and summary

We followed H83 in using spinors to describe quasi-Keplerian systems on secular timescales. In that case, an orbit-averaged Keplerian orbit is represented by a single spinor rather than two vectors. The Poisson brackets of these spinor components turn out to be remarkably simple: they are canonically conjugate variables. As such, the spinorial counterpart of the vectorial Milankovitch equations is thus a set of standard canonical Hamiltonian equations.

The spinorial formalism has difficulties if the orbit is either circular or radial, which limits its applicability. In the circular case, it has an extra degree of freedom associated with the orientation of the pericenter vector, which is unphysical at circular orbits. In the radial case, the spinor is identically zero (see Eq. 19a), and one loses the information about the orbit’s orientation.

Future work will be devoted to testing alternative normalisations other than Eq. (11) that could help at extreme eccentricities, as well as using the bivector formulation from “Appendix C.” We will also explore if the formalism above could be used efficiently in numerical integrations (see, e.g. McLachlan et al. 2014).