1 Introduction

Lie–Poisson systems and isospectral flows are two well-studied classes of dynamical systems. The former appear as Poisson reductions of Hamiltonian systems for which the configuration and symmetry space is a Lie group (see the monograph [17] and references therein). The classical example is the free rigid body as viewed by Poincaré [26]. The latter, isospectral flows, appear as Lax formulations of integrable systems (see the survey papers [5, 30, 31] and references therein). The classical example is the Toda lattice as viewed by Flaschka [8, 29].

The study of numerical methods for the two classes of systems is by now classical subjects in numerical analysis. The motivation for such schemes came through the strong connection between matrix factorizations in numerical linear algebra and isospectral flows (see the survey papers [6, 23]). This was initiated by the remarkable discovery that the iterative QR-algorithm for computing eigenvalues is a discretization of the (non-periodic) Toda flow [7, 28].

The general form of an isospectral flow is

$$\begin{aligned} \dot{W} = [B(W),W], \quad W\in S\subset \mathfrak {gl}(n,\mathbb {C}). \end{aligned}$$
(1)

Here, \([\cdot ,\cdot ]\) denotes the matrix commutator, S is a linear subspace of the Lie algebra \(\mathfrak {gl}(n,\mathbb {C})\), and the function \(B:S\rightarrow \mathfrak {n}(S)\) maps into the normalizer algebra \(\mathfrak {n}(S)\) (see Sect. 3 for details). The most studied setting is when \(S={{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) is the space of symmetric real matrices, for which the normalizer is the Lie algebra of skew-symmetric real matrices \(\mathfrak {n}(S) = \mathfrak {so}(n)\). Another setting is when \(S=\mathfrak {g}\) is a Lie subgroup of \(\mathfrak {gl}(n,\mathbb {C})\), for which the normalizer is the subalgebra itself \(\mathfrak {n}(S) = \mathfrak {g}\).

Let us now discuss the connection between isospectral flows and Lie–Poisson systems. The predominant example connecting the two is Manakov’s n-dimensional rigid body [16].

Recall that a Lie–Poisson system evolves on the dual \(\mathfrak {g}^*\) of a Lie algebra \(\mathfrak {g}\). Given a Hamiltonian function H on \(\mathfrak {g}^*\), the flow \(W(t)\in \mathfrak {g}^*\) is given by

$$\begin{aligned} \dot{W} = {{\,\mathrm{ad}\,}}^*_{d H(W)}(W), \end{aligned}$$
(2)

where the operator \({{\,\mathrm{ad}\,}}^*\) is defined by

$$\begin{aligned} \langle {{\,\mathrm{ad}\,}}^*_{U}(W),V\rangle = \langle W,[U,V]\rangle \qquad \forall \, U,V\in \mathfrak {g}. \end{aligned}$$
(3)

Without loss of generality, we may assume that \(\mathfrak {g}\) is a subalgebra of \(\mathfrak {gl}(n,\mathbb {C})\). To identify \(\mathfrak {gl}(n,\mathbb {C})^*\) with \(\mathfrak {gl}(n,\mathbb {C})\), we use the Frobenius inner product

$$\begin{aligned} \langle W,V\rangle = {{\,\mathrm{Tr}\,}}(W^\dagger V), \end{aligned}$$

where \(W^\dagger \) denotes the conjugate transpose. In this way, we also identify \(\mathfrak {g}^*\) with the subspace \(\mathfrak {g}\subset \mathfrak {gl}(n,\mathbb {C})\). Next we extend the Hamiltonian to all of \(\mathfrak {gl}(n,\mathbb {C})\) by taking it to be constant on the affine spaces given by translations of the orthogonal complement of \(\mathfrak {g}\). Then, dH corresponds to \(\nabla H\). From definition (3) and the identification of \(\mathfrak {g}^*\) with \(\mathfrak {g}\), we get

$$\begin{aligned} {{\,\mathrm{ad}\,}}^*_W(M) = \Pi \,[W^\dagger ,M], \end{aligned}$$

where \(\Pi \) is the orthogonal projection \(\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {g}\). We thus arrive at an explicit formulation of the Lie–Poisson system (2), namely

$$\begin{aligned} \dot{W} = \Pi \,[\nabla H(W)^\dagger ,W]. \end{aligned}$$
(4)

Now, the key observation is that if the representation of \(\mathfrak {g}\) as a subalgebra of \(\mathfrak {gl}(n,\mathbb {C})\) is closed under conjugate transpose, then Eq. (4) becomes the isospectral flow

$$\begin{aligned} \dot{W} = [\nabla H(W)^\dagger ,W]. \end{aligned}$$
(5)

Such a representation is possible if and only if \(\mathfrak {g}\) is a reductive Lie algebra (see Sects. 23 for details). Thus, we arrive at the statement that Lie–Poisson systems for any reductive Lie algebra can be viewed as isospectral flows. Recall that most classical Lie algebras are reductive, for example \(\mathfrak {gl}(n,\mathbb {C}), \mathfrak {gl}(n,\mathbb {R}), \mathfrak {sl}(n,\mathbb {C})\), \(\mathfrak {sl}(n,\mathbb {R})\), \(\mathfrak {u}(n)\), \(\mathfrak {su}(n)\), \(\mathfrak {so}(n)\), and \(\mathfrak {sp}(n)\).

An interesting consequence of Eq. (5) is that whenever the function B(W) in the isospectral flow (1) can be written as \(B(W) = \nabla H(W)^\dagger \), then it can be extended to a Lie–Poisson system on \(\mathfrak {gl}(n,\mathbb {C})\) (or possibly a smaller reductive Lie algebra containing S). Indeed, just extend the Hamiltonian function H to be constant of the affine fibers orthogonal to S. In this way, we obtain an extended system foliated into invariant affine subspaces generated by S. The Toda flow is an example where this construction is possible (see Sect. 5.2).

The key feature of isospectral flows is, of course, that the eigenvalues of W are preserved. Equivalently, given any analytic function f extended to matrices, the function

$$\begin{aligned} F(W) = {{\,\mathrm{Tr}\,}}(f(W)) \end{aligned}$$

is a first integral regardless of the choice of B(W) in (1). From the perspective of Lie–Poisson systems (5), this means that F(W) is a Casimir function associated with the Lie–Poisson structure (3). Although there are infinitely many Casimir functions, only a finite number of them can be functionally independent.

In this paper, we develop spectral preserving numerical methods for flows of form (1) which, in the case of Hamiltonian isospectral flows (5), also preserves the Lie–Poisson structure. There already exist at least four ways to achieve this:

  • If the Hamiltonian can be written as a sum of explicitly integrable Hamiltonians one can use splitting method (see [22] and references therein).

  • The Lie–Poisson system on \(\mathfrak {g}^*\simeq \mathfrak {g}\) can be extended to a constrained canonical Hamiltonian system on \(T^*G\simeq TG\subset T\mathrm {GL}(n,\mathbb {C})\). One can then use the symplectic RATTLE method (or higher order versions of it) for the constrained system (see [13, 21]).

  • One can use symplectic Lie group methods on \(T^*G\) as developed in [3]. These methods rely on an invertible mapping between the Lie algebra and (an identity neighborhood of) the Lie group, such as the exponential map (works in general) or the Cayley map (works for quadratic Lie groups).

  • One can, in some cases, use collective symplectic integrators, which rely on Clebsch variables originating from a Hamiltonian action of G on a symplectic vector space (see [18, 19] for details).

Compared to these methods, our approach is: (i) simpler since the algorithms are formulated directly on the algebra \(\mathfrak {g}\subset \mathfrak {gl}(n,\mathbb {C})\); (ii) free of constraints; (iii) free of algebra-to-group maps, such as the exponential or Cayley map; (iv) generic as they apply to any isospectral Hamiltonian flow. Furthermore, through the framework of Poisson reduction (cf. [17]) our methods are directly related to classical symplectic Runge–Kutta methods (or partitioned symplectic Runge–Kutta methods). Therefore, they merit the designation Isospectral Symplectic Runge–Kutta (IsoSyRK) methods.

The paper is organized as follows. In Sect. 2, we give the definitions of the new methods and we state our main results. In Sect. 3, we develop a discrete reduction theory for isospectral Lie–Poisson flows. These results are instrumental in Sect. 4, where we specialize our construction to symplectic Runge–Kutta methods. All numerical examples are given in Sect. 5.

2 Main Results

A Runge–Kutta method is defined by its Butcher tableau (cf. [9])

(6)

where \(\mathbf {A}\in \mathbb {R}^{s\times s}\) and \(\mathbf {b},\mathbf {c} \in \mathbb {R}^s\). Furthermore, if

$$\begin{aligned} b_ia_{ij}+b_ja_{ji}= b_ib_j, \end{aligned}$$
(7)

for \(i,j=1,\ldots ,s\), then the corresponding Runge–Kutta method is symplectic when applied to canonical Hamiltonian systems on \(\mathbb {R}^{2n}\) [27]. However, directly applying a symplectic Runge–Kutta method to the Hamiltonian isospectral flow (5) does not yield a Poisson integrator. Nor does it, in general, preserve the isospectral property, as is well known.

Definition 1

(IsoSyRK) Given a Butcher tableau (6) fulfilling the symplectic condition (7), the corresponding Isospectral Symplectic Runge–Kutta method for flow (1) is the map

$$\begin{aligned} \Phi _{h}:\mathfrak {gl}(n,\mathbb {C})\ni W_k \longmapsto W_{k+1}\in \mathfrak {gl}(n,\mathbb {C}) \end{aligned}$$

defined by

$$\begin{aligned} \left. \begin{aligned} X_i&= - \Big (W_n+\sum _{j=1}^s a_{ij} X_j\Big )h B(\widetilde{W}_i) \\ Y_i&= hB(\widetilde{W}_i)\Big (W_k+\sum _{j=1}^s a_{ij} Y_j\Big ) \\ K_{ij}&= hB(\widetilde{W}_i)\Big (\sum _{j'=1}^s (a_{ij'}X_{j'}+a_{jj'}K_{ij'})\Big ) \\ \widetilde{W}_i&=W_k+\sum _{j=1}^s a_{ij} (X_j+Y_j+K_{ij})&\\ W_{k+1}&= W_k + \sum _{i=1}^sb_i[h B(\widetilde{W}_i),\widetilde{W}_i] , \end{aligned}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), where \(h>0\) denotes the step size.

Theorem 1

The method in Definition 1 fulfills the following properties:

  1. (1)

    It has the same order as the underlying Runge–Kutta method.

  2. (2)

    It is isospectral; for any analytic function f extended to matrices

    $$\begin{aligned} {{\,\mathrm{Tr}\,}}(f(W_{k+1})) = {{\,\mathrm{Tr}\,}}(f(W_k)). \end{aligned}$$
  3. (3)

    It is equivariant with respect to Lie algebra morphisms; if \({\mathcal {A}}:\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C})\) is a linear invertible mapping fulfilling for all \(X,Y\in \mathfrak {gl}(n,\mathbb {C})\)

    $$\begin{aligned} {\mathcal {A}}[X,Y] = [{\mathcal {A}} X,{\mathcal {A}} Y], \end{aligned}$$

    then the following diagram commutes

    figure a
  4. (4)

    It is a Lie–Poisson integrator if the isospectral flow is Hamiltonian, i.e., of form (5). Furthermore, if the isospectral flow is Hamiltonian, it is equivariant with respect to linear Lie–Poisson isomorphisms \({\mathcal {B}}:\mathfrak {gl}(n,\mathbb {C})^*\rightarrow \mathfrak {gl}(n,\mathbb {C})^*\).

  5. (5)

    It restricts to a Lie–Poisson integrator for any Lie subalgebra \(\mathfrak {g}\subset \mathfrak {gl}(n,\mathbb {C})\) defined by

    $$\begin{aligned} W\in \mathfrak {g}\iff W^\dagger J + J W = 0, \end{aligned}$$
    (8)

    where \(J^2 = c I \) for some \(c\in \mathbb {R}\backslash \{ 0\}\).

  6. (6)

    It restricts to a Lie–Poisson integrator for any Lie subalgebra given by arbitrary intersections of \(\mathfrak {gl}(n,\mathbb {R})\), \(\mathfrak {sl}(n,\mathbb {C})\), and Lie algebras of form (8).

  7. (7)

    It extends to a Lie–Poisson integrator for direct products of Lie algebras of the form in item (6).

  8. (8)

    It restricts to an isospectral integrator on the orthogonal complement \(\mathfrak {g}^\bot \subset \mathfrak {gl}(n,\mathbb {C})\) of any Lie algebra \(\mathfrak {g}\) of the form in item (6), provided that B restricts to a mapping \(B:\mathfrak {g}^\bot \rightarrow \mathfrak {g}\).

Proof

The theorem is a combination of results proved in Theorem 3, Corollary 1, Theorems 4 and 6. \(\square \)

Remark 1

Items (5)–(6) of Theorem 1 imply that the IsoSyRK methods constitute Lie–Poisson integrators for the classical Lie algebras \(\mathfrak {sl}(n,\mathbb {C})\), \(\mathfrak {sl}(n,\mathbb {R})\), \(\mathfrak {so}(n)\), \(\mathfrak {u}(n)\), \(\mathfrak {su}(n)\), \(\mathfrak {sp}(n,\mathbb {C})\), and \(\mathfrak {sp}(n,\mathbb {R})\). Item (8) implies that they also preserve the classical isospectral setting as flows on symmetric or Hermitian matrices, since, for example, \(\mathfrak {so}(n)^\bot = {{\,\mathrm{Sym}\,}}(n,\mathbb {R})\).

We also have an analogous, albeit slightly weaker, result for partitioned symplectic Runge–Kutta methods, such as defined by two Butcher tableaux (cf. [9])

(9)

If, for \(i,j=1,\ldots ,s\), the coefficients in the tableaux fulfill

$$\begin{aligned} \begin{array}{ll} b_i\widehat{a}_{ij}+\widehat{b}_ja_{ji}=b_i\widehat{b}_j, \\ \widehat{b}_i=b_i, \end{array} \end{aligned}$$
(10)

then the corresponding partitioned Runge–Kutta method is symplectic when applied to canonical Hamiltonian systems on \(\mathbb {R}^{2n}\).

Definition 2

(IsoSyPRK) Given two Butcher tableaux (9) fulfilling the symplectic conditions (10), the corresponding Isospectral Symplectic Partitioned Runge–Kutta method for flow (1) is the map

$$\begin{aligned} \Phi _{h}:\mathfrak {gl}(n,\mathbb {C})\ni W_k \longmapsto W_{k+1}\in \mathfrak {gl}(n,\mathbb {C}) \end{aligned}$$

defined by

$$\begin{aligned} X_i&= - h\Big (W_n+\sum _{j=1}^s a_{ij} X_j\Big )B(\widetilde{W}_i) \\ Y_i&= hB(\widetilde{W}_i)\Big (W_n+\sum _{j=1}^s \widehat{a}_{ij} Y_j\Big ) \\ K_{ij}&= hB(\widetilde{W}_i)\Big (\sum _{j'=1}^s (a_{ij'}X_{j'}+\widehat{a}_{jj'}K_{ij'})\Big ) \\ \widetilde{W}_i&=W_n+\sum _{j=1}^s a_{ij} X_j+\widehat{a}_{ij} (Y_j+K_{ij}) \\ W_{n+1}&= W_n + h\sum _{i=1}^sb_i[B(\widetilde{W}_i),\widetilde{W}_i] . \end{aligned}$$

for \(i,j=1,\ldots ,s\), where \(h>0\) denotes the step size.

Theorem 2

The method in Definition 2 fulfills the following properties:

  1. (1)

    It has the same order as the underlying partitioned Runge–Kutta method.

  2. (2)

    It is isospectral; for any analytic function f extended to matrices

    $$\begin{aligned} {{\,\mathrm{Tr}\,}}(f(W_{k+1})) = {{\,\mathrm{Tr}\,}}(f(W_k)). \end{aligned}$$
  3. (3)

    It is equivariant with respect to Lie algebra morphisms; if \({\mathcal {A}}:\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C})\) is a linear invertible mapping fulfilling for all \(X,Y\in \mathfrak {gl}(n,\mathbb {C})\)

    $$\begin{aligned} {\mathcal {A}}[X,Y] = [{\mathcal {A}} X,{\mathcal {A}} Y], \end{aligned}$$

    then the following diagram commutes

    figure b
  4. (4)

    It is a Lie–Poisson integrator if the isospectral flow is Hamiltonian, i.e., of form (5). Furthermore, if the isospectral flow is Hamiltonian, it is equivariant with respect to linear Lie–Poisson isomorphisms \({\mathcal {B}}:\mathfrak {gl}(n,\mathbb {C})^*\rightarrow \mathfrak {gl}(n,\mathbb {C})^*\).

  5. (5)

    If it restricts to a Lie–Poisson integrator for a Lie subalgebra \(\mathfrak {g}\subset \mathfrak {gl}(n,\mathbb {C})\) defined by

    $$\begin{aligned} W\in \mathfrak {g}\iff W^\dagger J + J W = 0, \end{aligned}$$

    where \(J^2 = c I \) for some \(c\in \mathbb {R}\backslash \{ 0\}\) and \(b_i\ne 0\) for \(i=1,\ldots ,s\), then the two Butcher tableaux coincide. (It is a standard Runge–Kutta method.)

Proof

The theorem is a combination of results proved in Theorem 3, Corollary 1, Theorems 5 and  6. \(\square \)

3 Reduction Theory for Isospectral Lie–Poisson Integrators

Let us consider Lie–Poisson systems of form (5). Conditions under which the flow remains in a linear subspace S of \(\mathfrak {gl}(n,\mathbb {C})\) are intrinsically connected to the \(\mathfrak {gl}(n,\mathbb {C})\)-normalizer of S. We recall here its definition:

Definition 3

Let G be a Lie group and \(\mathfrak {g}\) its Lie algebra. Furthermore, let \(S\subseteq \mathfrak {g}\) be a linear subspace. Then, the two sets

$$\begin{aligned}&N(S)=\lbrace g\in G \mid g^{-1} S g\subseteq S \rbrace \\&\mathfrak {n}(S)=\lbrace \xi \in \mathfrak {g}\mid [\xi ,S]\subseteq S \rbrace \end{aligned}$$

are, respectively, called the G-normalizer and the \(\mathfrak {g}\)-normalizer of S. Notice that N(S) is a subgroup of G and \(\mathfrak {n}(S)\) is a Lie subalgebra of \(\mathfrak {g}\).

We now give some examples of Definition 3. We first give the following definition.

Definition 4

Let \(\mathfrak {g}\subseteq \mathfrak {sl}(n,\mathbb {C})\) be a Lie algebra and \(J\in GL(n,\mathbb {C})\). Then, \(\mathfrak {g}\) is said to be a J-quadratic Lie algebra if \(A^\dagger J+JA=0\), for any \(A\in \mathfrak {g}\).

Examples of normalizers:

  1. (1)

    \(S=\mathfrak {sl}(n,\mathbb {C})\) with \(\mathfrak {n}(S)=\mathfrak {gl}(n,\mathbb {C})\).

  2. (2)

    \(S=\mathfrak {g}\subset \mathfrak {sl}(n,\mathbb {C})\) is a J-quadratic Lie subalgebra with \(\mathfrak {n}(S)=\mathfrak {g}\oplus \mathbb {C}\, \mathrm {Id}\). A typical case is \(S=\mathfrak {su}(n)\) for which \(\mathfrak {n}(S)=\mathfrak {u}(n)\), corresponding to \(J=\mathrm {Id}\).

  3. (3)

    \(S=\mathfrak {g}^\bot \), where \(\mathfrak {g}\subset \mathfrak {sl}(n,\mathbb {C})\) is a J-quadratic Lie subalgebra, with \(\mathfrak {n}(S)=\mathfrak {g}\oplus \mathbb {C}\, \mathrm {Id}\).Footnote 1 A typical case is \(S={{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) and \(\mathfrak {n}(S)=\mathfrak {o}(n)\), corresponding to \(J=\mathrm {Id}\).

Remark 2

If \(S= \mathfrak {g}\) is a Lie subalgebra of \(\mathfrak {gl}(n,\mathbb {C})\) one may ask under which conditions the isospectral Hamiltonian system (5) coincides with the Lie–Poisson system on \(\mathfrak {g}\). Recall that \(\nabla H\) is the gradient of H with respect to the Frobenius inner product. It is not a restriction to assume that \(\nabla H(W)\in \mathfrak {g}\) for all \(W\in \mathfrak {gl}(n,\mathbb {C})\) (since we can extend H to be constant on the affine complements of \(\mathfrak {g}\)). Due to the conjugate transpose on \(\nabla H(W)\) it is not, however, enough that \(\nabla H(W) \in \mathfrak {g}\); instead we need \(\nabla H(W)^\dagger \in \mathfrak {g}\). A sufficient condition for this to be true is that \(\mathfrak {g}\) is closed under conjugate transpose: \(\mathfrak {g}^\dagger \subset \mathfrak {g}\). Such \(\mathfrak {g}\) are, up to representation, the semisimple Lie algebras ([14], Prop. 6.28). This means that, after the identification of the dual of the Lie algebra \(\mathfrak {g}\) with itself (using the Frobenius inner product), a Lie–Poisson system on a semisimple Lie algebra \(\mathfrak {g}\) coincides with a Lie–Poisson system on \(\mathfrak {gl}(n,\mathbb {C})\) restricted to \(\mathfrak {g}\). In fact, slightly more is true: due to the bracket in the right hand side of (5) it is enough that

$$\begin{aligned} {[}\mathfrak {g}^\dagger ,\mathfrak {g}]\subset \mathfrak {g}. \end{aligned}$$

This holds when \(\mathfrak {g}\) is a reductive Lie algebra, i.e., the direct sum of a semisimple Lie algebra and an abelian Lie algebra.

A Lie–Poisson systems on a Lie algebra \(\mathfrak {g}\) can be viewed as the Lie–Poisson reduction of a canonical Hamiltonian system on \(T^*G\) with a G-symmetric Hamiltonian. Going backwards, one may “unreduce” any Lie–Poisson system to a canonical Hamiltonian system on the cotangent bundle of the corresponding Lie group. Our objective is to show that the isospectral symplectic Runge–Kutta methods (cf. Sect. 2) originate as a “discrete Lie–Poisson reduction” of symplectic Runge–Kutta methods.

We thus proceed by extending Eq. (5) to a canonical system on\(T^*GL(n,\mathbb {C})\). To do so, one needs the momentum map (cf. [17]) associated with the right action of \(GL(n,\mathbb {C})\) on \(T^*GL(n,\mathbb {C})\):

$$\begin{aligned} (Q,P)\cdot G = (QG, P(G^{-1})^\dagger ), \end{aligned}$$

for \(G,Q\in GL(n,\mathbb {C})\) and \(P\in T^*_QGL(n,\mathbb {C})\). The momentum map for this (Hamiltonian) action is given by

$$\begin{aligned} \mu :T^*GL(n,\mathbb {C}) \rightarrow \mathfrak {gl}(n,\mathbb {C})^*\simeq \mathfrak {gl}(n,\mathbb {C}), \quad \mu (Q,P)=Q^\dagger P. \end{aligned}$$

This momentum map provides a left-invariant Hamiltonian function \(\widetilde{H}(Q,P)=H(Q^\dagger P)\) on \(T^*GL(n,\mathbb {C})\), i.e., an Hamiltonian function invariant with respect to the left action

$$\begin{aligned} G\cdot (Q,P) = (GQ,(G^{-1})^\dagger P). \end{aligned}$$
(11)

The fact that the momentum map is a Poisson map between \(T^*GL(n,\mathbb {C})\) and \(\mathfrak {gl}(n,\mathbb {C})^*\) means that a symplectic map in \(\Phi :T^*GL(n,\mathbb {C})\rightarrow T^*GL(n,\mathbb {C})\) which is equivariant with respect to action (11) descends to a corresponding map \(\phi :\mathfrak {gl}(n,\mathbb {C})^* \rightarrow \mathfrak {gl}(n,\mathbb {C})^*\). In terms of numerical integrators, this means that a \(GL(n,\mathbb {C})\)-equivariant symplectic integrator on \(T^*GL(n,\mathbb {C})\) induces a Poisson integrator on \(\mathfrak {gl}(n,\mathbb {C})^*\). As we shall see, this is precisely how the isospectral symplectic Runge–Kutta methods come about.

Using the momentum map (11), the canonical Hamiltonian system on \(T^*GL(n,\mathbb {C})\) is given by

$$\begin{aligned} \begin{array}{ll} \dot{Q}= Q\nabla H(Q^\dagger P) \\ \dot{P}= -P\nabla H(Q^\dagger P)^\dagger , \end{array} \end{aligned}$$
(12)

where H is the same Hamiltonian as in (5).

We now translate the condition of staying on S from (5) to (12).

Proposition 1

Consider a solution (Q(t), P(t)) of Hamilton’s equations (12) for a given initial point (Q(0), P(0)) and let \(S\subseteq \mathfrak {gl}^*(n,\mathbb {C})\) be a linear subspace as before. Then, there exists a time \(T>0\) such that the following three statements are equivalent:

  1. (1)

    \(Q(t)^\dagger P(t)\in S\), for any \(0\le t\le T\);

  2. (2)

    \(Q(0)^\dagger P(0)\in S\) and \(\nabla H(Q^\dagger P)^\dagger (t)\in \mathfrak {n}(S)\), for any \(0\le t\le T\);

  3. (3)

    \(Q(0)^\dagger P(0)\in S\) and there exists a fixed \(G\in GL(n,\mathbb {C})\) such that \(GQ(t)^\dagger \in N(S)\), for any \(0\le t\le T\).

Proof

Let U be a neighborhood of \(Q(0)^\dagger P(0)\) such that the map \(\exp ^{-1}:U\subset GL(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C}) \) is well defined. Then, let T be a positive real number such that \(\exp (\int _{0}^{t} \nabla H(Q^\dagger P)^\dagger (s) ds)\in U\), for \(0\le t\le T\).

\(1)\Rightarrow 2)\) We have that \(S\ni \frac{dQ^\dagger P}{dt}=[\nabla H(Q^\dagger P)^\dagger ,Q^\dagger P]\), since S is a linear space and \((Q^\dagger P)(t)\in S\), for any \(0\le t\le T\). But this means that \(\nabla H(Q^\dagger P)^\dagger \) has to be in \(\mathfrak {n}(S)\), for any \(0\le t\le T\).

\(2)\Rightarrow 1)\) For \(0\le t\le T\), we have that:

$$\begin{aligned} (Q^\dagger P)(t)=\exp \left( \!\int _{0}^{t} \nabla H(Q^\dagger P)^\dagger (s) \mathrm{d}s\!\right) Q(0)^\dagger P(0)\exp \left( \!-\int _0^t \nabla H(Q^\dagger P)^\dagger (s) \mathrm{d}s\!\right) , \end{aligned}$$

which proves the statement, since \(N(S)\supseteq \exp (\mathfrak {n}(S))\).

\(2)\Rightarrow 3)\) Let \(G\in GL(n,\mathbb {C})\) such that \(GQ(t)^\dagger \in N(S)\). Then, we have:

$$\begin{aligned} GQ(t)^\dagger =\exp \left( \int _{0}^{t} \nabla H(Q(s)^\dagger P(s))^\dagger \mathrm{d}s\right) GQ(0)^\dagger , \end{aligned}$$

which proves the statement, since \(N(S)\supseteq \exp (\mathfrak {n}(S))\).

\(3)\Rightarrow 2)\) By the formula above, we have

$$\begin{aligned} GQ^\dagger (t)(GQ(0)^\dagger )^{-1}=\exp \left( \int _{0}^{t} \nabla H(Q(s)^\dagger P(s))^\dagger \mathrm{d}s\right) . \end{aligned}$$

Since the left-hand side is in N(S) for any \(0\le t\le T\), we have \(\nabla H(Q(t)^\dagger P(t))^\dagger \in \mathfrak {n}(S)\) for any \(0\le t\le T\), by the definition of T. \(\square \)

Although the statements in Proposition 1 are equivalent for the exact flow, they are different after discretization. Indeed, in order to understand the conditions for our isospectral symplectic Runge–Kutta methods to preserve the flow on S we need the definition of weak and strong first integrals.

Definition 5

Let M be a smooth manifold and \(N\subset M\) a smooth submanifold. Consider the following dynamical system on N:

$$\begin{aligned} \begin{array}{ll} \dot{z}= X(z) \\ z(0) = z_0, \end{array} \end{aligned}$$
(13)

with X a smooth vector field on N and \(z_0\in N\). Assume further that X can be extended on a \(\varepsilon -\)neighborhood \(N_\varepsilon \) of N in M.

Then, a differentiable function \(I:N_\varepsilon \rightarrow \mathbb {C}\) is said to be a weak, respectively, strong first integral of (13) if

$$\begin{aligned} \begin{array}{ll} \langle d I(z), X(z)\rangle = 0 \text{ for } \text{ all } z\in N \\ \langle d I(z), X(z)\rangle = 0 \text{ for } \text{ all } z\in N_\varepsilon . \end{array} \end{aligned}$$

In numerical analysis, it is often the case that integration schemes on a submanifold N actually depend on how N is embedded in a larger (vector) space M. That is, the integration scheme is not intrinsic to N (for example evaluations of the vector field outside of N may occur). In this situation, the difference between strong and weak first integrals is essential. Indeed, for non-intrinsic methods one can at best expect to conserve strong first integrals. Motivated by this, we make the following:

Assumption 1

Let \(S_\varepsilon \) be a \(\varepsilon -\)neighborhood of S in \(\mathfrak {gl}(n,\mathbb {C})\). We assume that \(\nabla H^\dagger \) can be extended to \(S_\varepsilon \) such that \(\nabla H(W)^\dagger \in \mathfrak {n}(S)\) for all \(W\in S_\varepsilon \).

Since S is a linear space the natural way to extend \(\nabla H^\dagger \) is to take it to be constant on the affine complements of S. With this extension, the gradient of the Hamiltonian requires only an orthogonal projection of W to S.

Under Assumption 1, our Proposition 1 says that \((Q^\dagger P)\in S\) is determined by weak first integrals of the Hamiltonian system (12) provided that the gradient of the Hamiltonian is in \(\mathfrak {n}(S)\). In fact, having \((Q^\dagger P)\in S\) is equivalent to \([\nabla H(Q^\dagger P)^\dagger ,Q^\dagger P]\in S\) which in general is not true for \(Q^\dagger P\) in an \(\varepsilon -\)neighborhood of S. Instead, an equivalent formulation corresponding to strong first integrals is given by the third statement, which says that there exists a fixed matrix G such that \(GQ^\dagger \in N(S)\). Therefore, only the numerical methods that have \(GQ^\dagger \in N(S)\) as a discrete invariant correspond to integrators that preserve S. In particular, if N(S) is a quadratic Lie group one can expect symplectic Runge–Kutta methods to yield a discrete flow that preserves S since they preserve general quadratic first integrals. On the other hand, the same cannot be expected from symplectic partitioned Runge–Kutta methods, since they only preserve special (bilinear) quadratic first integrals.

We summarize our findings in the following theorem.

Theorem 3

Consider a Lie–Poisson system of form (5) evolving on a linear subspace \(S\subset \mathfrak {gl}(n,\mathbb {C})\). Let \(\Phi _h:T^*GL(n,\mathbb {C})\rightarrow T^*GL(n,\mathbb {C})\) be a symplectic numerical method for the corresponding canonical Hamiltonian system (12) obtained by extension from S in accordance with Assumption 1.

  1. (1)

    If \(\Phi _h\) is equivariant with respect to action (11), i.e.,

    $$\begin{aligned} G\cdot \Phi _h(Q,P) =\Phi _h( G\cdot (Q,P)). \end{aligned}$$

    then it descends to a Lie–Poisson integrator \(\phi _h\) on \(\mathfrak {gl}(n,\mathbb {C})\).

  2. (2)

    If, in addition, \(\Phi _h\) preserves the foliation

    $$\begin{aligned} {\mathcal {F}}_G = \{Q\mid GQ^\dagger \in N(S) \}, \qquad G\in GL(n,\mathbb {C}) \end{aligned}$$

    then \(\phi _h\) restricts to an integrator on S.

Based on the results in Theorem 3, we can now generalize the results to a general \(B(\cdot )\), i.e., to isospectral flows that are not necessarily Hamiltonian. This extension requires that the underlying method can be expanded in a B-series or P-series (cf. [9] for definitions and notation).Footnote 2 Consider first the generalization of Assumption 1:

Assumption 2

Let \(S_\varepsilon \) be a \(\varepsilon -\)neighborhood of S in \(\mathfrak {gl}(n,\mathbb {C})\). We assume that \(B(\cdot )\) can be extended to \(S_\varepsilon \) such that \(B(W) \in \mathfrak {n}(S)\) for all \(W\in S_\varepsilon \).

Then, based on Theorem 3, we have the following result.

Corollary 1

Consider an isospectral flow of form (1) evolving on a linear subspace \(S\subset \mathfrak {gl}(n,\mathbb {C})\). Let \(\Phi _h:T^*GL(n,\mathbb {C})\rightarrow T^*GL(n,\mathbb {C})\) be a symplectic B-series (or P-series) method for the corresponding system:

$$\begin{aligned} \begin{array}{ll} \dot{Q}= QB(Q^\dagger P)^\dagger \\ \dot{P}= -PB(Q^\dagger P), \end{array} \end{aligned}$$
(14)

obtained by extension from S in accordance with Assumption 2.

  1. (1)

    If \(\Phi _h\) is equivariant with respect to action (11), i.e.,

    $$\begin{aligned} G\cdot \Phi _h(Q,P) =\Phi _h( G\cdot (Q,P)). \end{aligned}$$

    then it descends to an isospectral integrator \(\phi _h\) on \(\mathfrak {gl}(n,\mathbb {C})\).

  2. (2)

    If, in addition, \(\Phi _h\) preserves the foliation

    $$\begin{aligned} {\mathcal {F}}_G = \{Q\mid GQ^\dagger \in N(S) \}, \qquad G\in GL(n,\mathbb {C}) \end{aligned}$$

    then \(\phi _h\) restricts to an integrator on S.

Proof

From Theorem 3, we know that for \(B(W)=\nabla H(W)^\dagger \) when we solve (14) with a symplectic integrator the discrete flow is isospectral for \(W:=Q^\dagger P\). Therefore, the (truncated) modified equation is of the form

$$\begin{aligned} \left. \begin{array}{ll} \dot{Q} = Q \nabla \widetilde{H}(Q^\dagger P)\\ \dot{P} = - P \nabla \widetilde{H}(Q^\dagger P)^\dagger , \end{array}\right. \end{aligned}$$
(15)

for some modified Hamiltonian \(\widetilde{H}\). On the other hand, since \(\Phi _h\) is a symplectic B-series method, the right hand side in (15) is a B-series whose coefficients satisfy the relation \(b(u\circ v)+b(v\circ u)=0\) for each pair of trees uv [9, Theorem IX.9.3]. In particular \(b(u\circ u)=0\). From [9, Lem IX.9.6 and Thm IX.9.8], it follows that the only elementary Hamiltonians that vanish for all the Hamiltonian functions H are those of the type \(H(u\circ u)\). Furthermore, it is clear from the form of (15) and the definition of B-series in terms of elementary differentials that the right hand side in (15) is of the form

$$\begin{aligned} \left( \begin{array}{ll} Q \sum \nolimits _{n=1}^\infty \sum \nolimits _{k=1}^\infty A^k_n(Q^\dagger P,H'(Q^\dagger P),H''(Q^\dagger P),\ldots ,H^{(k)}(Q^\dagger P))\\ -P \sum \nolimits _{n=1}^\infty \sum \nolimits _{k=1}^\infty B^k_n(Q^\dagger P,H'(Q^\dagger P),H''(Q^\dagger P),\ldots ,H^{(k)}(Q^\dagger P))^\dagger , \end{array}\right) \end{aligned}$$
(16)

for \(A_n^k,B_n^k\) homogeneous polynomials of degree n for each k.

We claim that to get the modified equation for a general B we just replace in (16) \((H^{(k)})^\dagger \) with \(B^{(k-1)}\) (which is possible since \(k\ge 1\)). Indeed, this follows since the coefficients of a symplectic B-series are uniquely determined by Hamiltonian vector fields [9, Thm IX.9.10]. Therefore, we conclude that a symplectic B-series integrator applied to (14), for a general B, is isospectral for \(W=Q^\dagger P\) with a modified equation of the form

$$\begin{aligned} \left. \begin{array}{ll} \dot{Q} = Q \widetilde{B}(Q^\dagger P)^\dagger \\ \dot{P} = - P \widetilde{B}(Q^\dagger P), \end{array}\right. \end{aligned}$$
(17)

for some \(\widetilde{B}(\cdot )\) obtained by replacing in (16) the \((H^{(k)})^\dagger \) with \(B^{(k-1)}\).

In the case when \(\Phi _h\) is a symplectic P-series, the proof is repeated similarly, using instead [9, Thm IX.10.3, Lem IX.10.6, Thm IX.10.8]. \(\square \)

4 Isospectral Symplectic Runge–Kutta Methods

In this section, we specialize Theorem 3 to the symplectic Runge–Kutta and partitioned Runge–Kutta methods. As a result, we obtain the novel numerical schemes for isospectral (Lie–Poisson) systems presented in Sect. 2.

4.1 Symplectic Runge–Kutta Methods

Given a Butcher tableau

the associated Runge–Kutta method for (1) is

$$\begin{aligned} K^Q_i= & {} \left( Q_n+h\sum _{j=1}^s a_{ij} K^Q_j\right) B\left( \left( Q_n+h\sum _{j=1}^s a_{ij} K^Q_j\right) ^\dagger \right. \nonumber \\&\left. \left( P_n+h\sum _{j=1}^s a_{ij} K^P_j\right) \right) ^\dagger \nonumber \\ K^P_i= & {} - \left( P_n+h\sum _{j=1}^s a_{ij} K^P_j\right) B\left( \left( Q_n+h\sum _{j=1}^s a_{ij} K^P_j\right) ^\dagger \right. \nonumber \\&\left. \left( P_n+h\sum _{j=1}^s a_{ij} K^P_j\right) \right) \\ Q_{n+1}= & {} Q_n + h\sum _{i=1}^s b_i K^Q_i\nonumber \\ P_{n+1}= & {} P_n + h\sum _{i=1}^s b_i K^P_i,\nonumber \end{aligned}$$
(18)

for \(i,j=1,\ldots ,s\). Recall that the method is symplectic, i.e., the discrete flow is a symplectic map, if \(b_ia_{ij}+b_ja_{ji}=b_ib_j\) for any \(i,j=1,\ldots ,s\).

Theorem 4

Given a Butcher tableau

of a symplectic s-stages Runge–Kutta method, let \(\Phi _h:T^*GL(n,\mathbb {C}) \rightarrow T^*GL(n,\mathbb {C})\) denote the corresponding integrator map for system (12). Then:

  1. (1)

    The symplectic integrator \(\Phi _h\) descends to a Lie–Poisson integrator \(\phi _h\) on \(\mathfrak {gl}(n,\mathbb {C})^*\simeq \mathfrak {gl}(n,\mathbb {C})\) for the isospectral Hamiltonian system (5). Furthermore, the map \(\phi _h\) is completely constructive as an implicit integration scheme (see below for specific formulas).

  2. (2)

    If S is an invariant subspace of (5) (as described above), then \(\phi _h\) preserves S in the cases \(S=\mathfrak {sl}(N,\mathbb {C})\), \(S=\mathfrak {g}\), and \(S=\mathfrak {g}^\bot \), for \(\mathfrak {g}\) a J-quadratic Lie subalgebra.

The schemes obtained in Theorem 4 are the following:

1. \(S=\mathfrak {sl}(n,\mathbb {C})\) or \(S=\mathfrak {gl}(n,\mathbb {C})\)

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) B(\widetilde{W}_i) \\ \\ Y_i = hB(\widetilde{W}_i) \left( W_n+\sum \nolimits _{j=1}^s a_{ij} Y_j\right) \\ \\ K_{ij} = hB(\widetilde{W}_i) \left( \sum \nolimits _{j'=1}^s (a_{ij'}X_{j'}+a_{jj'}K_{ij'})\right) \\ \\ \widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} (X_j+Y_j+K_{ij}) \\ \\ W_{n+1} = W_n + h\sum \nolimits _{i=1}^sb_i[B(\widetilde{W}_i),\widetilde{W}_i], \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), where the unknowns are \(X_i,Y_i,K_{ij}\) for \(i,j=1,\ldots ,s\) and the last two lines are explicit.

2. \(S=\mathfrak {g}\subseteq \mathfrak {gl}(n,\mathbb {C})\)J-Quadratic

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) B(\widetilde{W}_i) \\ \\ K_{ij} = hB(\widetilde{W}_i) \left( \sum \nolimits _{j'=1}^s (a_{ij'}X_{j'}+a_{jj'}K_{ij'})\right) \\ \\ \widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} (X_j-J^{-1}X_j^\dagger J+K_{ij}) \\ \\ W_{n+1} = W_n + h\sum \nolimits _{i=1}^sb_i[B(\widetilde{W}_i),\widetilde{W}_i], \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), where the unknowns are \(X_i,K_{ij}\) for \(i,j=1,\ldots ,s\) and the last two lines are explicit. The last line is also equivalent to

$$\begin{aligned} W_{n+1} = W_n + \sum _{i=1}^sb_i(X_i-J^{-1}X_j^\dagger J+K_{ii}-J^{-1}K_{ii}^\dagger J). \end{aligned}$$

3. \(S=\mathfrak {g}^\bot \), \(\mathfrak {g}\subseteq \mathfrak {sl}(n,\mathbb {C})\)J-Quadratic

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) B(\widetilde{W}_i) \\ \\ K_{ij} = hB(\widetilde{W}_i) \left( \sum \nolimits _{j'=1}^s (a_{ij'}X_{j'}+a_{jj'}K_{ij'})\right) \\ \\ \widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} (X_j+J^{-1}X_j^\dagger J+K_{ij}) \\ \\ W_{n+1} = W_n + h\sum \nolimits _{i=1}^sb_i[B(\widetilde{W}_i) ,\widetilde{W}_i], \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), where the unknowns are \(X_i,K_{ij}\) for \(i,j=1,\ldots ,s\) and the last two lines are explicit. The last line is also equivalent to

$$\begin{aligned} W_{n+1} = W_n + \sum _{i=1}^sb_i(X_i+J^{-1}X_j^\dagger J+K_{ii}+J^{-1}K_{ii}^\dagger J). \end{aligned}$$

Proof of Theorem 4

  1. (1)

    For \(S:=\mathfrak {sl}(n,\mathbb {C})\) we have that \(\mathfrak {n}(S)=\mathfrak {gl}(n,\mathbb {C})\) and \(N(S)=GL(n,\mathbb {C})\). Therefore, the hypotheses of Theorem 3 are trivially satisfied. To get the explicit construction, we look at the argument of the gradient of the Hamiltonian which suggests to define

    $$\begin{aligned} W_{n+1}&:= Q_{n+1}^\dagger P_{n+1}\\ W_{n}&:= Q_{n}^\dagger P_{n}\\ X_i&:=h Q_n^\dagger K_i^P\\ Y_i&:=h(K_i^Q)^\dagger P_n\\ K_{ij}&:= h^2\sum _{j'=1}^s a_{ij'}(K_j^Q)^\dagger K_{j'}^P\\ \widetilde{W}_i&:=W_n+\sum _{j=1}^s a_{ij} (X_j+Y_j+K_{ij}), \end{aligned}$$

    for \(i,j=1,\ldots ,s\). The equations for \(X_i, Y_i\) are straightforward (consider the equations of the Runge–Kutta method (18) and take the transpose of the first equation and multiply by \(P_n\), and multiply the second equation by \(Q_n^\dagger \), respectively).    To get the equations for \(K_{ij}\), we first transpose the first equation of (18); then, we multiply it (indexed now by \(j'\)) by \(h^2a_{ij'}K^P_{j'}\) and sum over \(j'\). We thereby get

    $$\begin{aligned} K_{ij} = hB(\widetilde{W}_i)\left( \sum _{j'=1}^s (a_{ij'}X_{j'}+a_{ij'}\widetilde{K}_{jj'})\right) \qquad \text {for } i,j=1,\ldots ,s, \end{aligned}$$

    where

    $$\begin{aligned} \widetilde{K}_{ij}:= h^2\sum _{j'=1}^s a_{ij'}(K_{j'}^Q)^\dagger K_{j}^P. \end{aligned}$$

    Multiplying the second equation of (18) (indexed now by \(j'\)) by \(h^2a_{ij'}(K^Q_{j'})^\dagger \) and then summing over \(j'\), we obtain

    $$\begin{aligned} \widetilde{K}_{ij} = -h\left( \sum _{j'=1}^s (a_{ij'}Y_{j'}+a_{ij'}K_{jj'})\right) B(\widetilde{W}_i) \qquad \text {for } i,j=1,\ldots ,s. \end{aligned}$$

    Using then

    $$\begin{aligned} \sum _{j'=1}^s\sum _{j''=1}^s a_{ij'}a_{jj''}(K_{j''}^Q)^\dagger K_{j'}^P = \sum _{j'=1}^s\sum _{j''=1}^s a_{jj'}a_{ij''}(K_{j'}^Q)^\dagger K_{j''}^P, \end{aligned}$$

    for \(i=1,\ldots ,s\), we get

    $$\begin{aligned} \sum _{j'=1}^s a_{ij'}\widetilde{K}_{jj'} = \sum _{j'=1}^s a_{jj'} K_{ij'} \qquad \text {for } i,j=1,\ldots ,s. \end{aligned}$$

    Therefore, the \(\widetilde{K}_{ij}\) depend completely on the \(K_{ij}\) and so we can neglect them, obtaining the desired equations for the \(K_{ij}\). Finally, to get the equation for \(W_{n+1}\), we multiply the third one of (18) transposed with the fourth one of (18) and we get

    $$\begin{aligned} W_{n+1} = W_n + \sum _{i=1}^s b_i(X_i + Y_i) + h^2\sum _{i,j=1}^s b_ib_j(K^Q_i)^\dagger K^P_j. \end{aligned}$$

    Using the symplecticity of the method, the last term becomes

    $$\begin{aligned} h^2\sum _{i,j=1}^s (b_ia_{ij}+b_ja_{ji})(K^Q_i)^\dagger K^P_j=\sum _{i=1}^s b_i(K_{ii}+\widetilde{K}_{ii}). \end{aligned}$$

    Therefore,

    $$\begin{aligned} W_{n+1} = W_n + \sum _{i=1}^s b_i(X_i + Y_i + K_{ii}+\widetilde{K}_{ii}). \end{aligned}$$

    Now substituting the equations found for \(X_i,Y_i,K_{ii},\widetilde{K}_{ii}\), we get the desired equation for \(W_{n+1}\).

  2. (2)

    Symplectic Runge–Kutta methods preserve exactly the strong quadratic first integrals of a dynamical system. In particular, when S is one of the spaces stated in the theorem, they preserve \(N(S)=\lbrace Q\in GL(n,\mathbb {C})|Q^\dagger JQ=J\rbrace \). Therefore, by Theorem 3, they descend to an integrator on S.

    It is also easy to check that, if we assume B to be in \(\mathfrak {n}(S)\), we get \(Y_i=-J^{-1}X_i^\dagger J\). Moreover, from the definition of \(K_{ij}\) and \(\widetilde{K}_{ij}\) and the equations:

    $$\begin{aligned} K_{ij}&= hB(\widetilde{W}_i)\left( \sum _{j'=1}^s (a_{ij'}X_{j'}+a_{jj'}K_{ij'})\right) \qquad \text{ for } i,j=1,\ldots ,s,\\ \widetilde{K}_{ij}&= -h\left( \sum _{j'=1}^s (a_{ij'}Y_{j'}+a_{ij'}K_{jj'})\right) B(\widetilde{W}_i) \qquad \text{ for } i,j=1,\ldots ,s, \end{aligned}$$

    we get also that

    $$\begin{aligned} -J^{-1}K_{ii}^\dagger J=\widetilde{K}_{ii}. \end{aligned}$$

\(\square \)

Remark 3

We stress that our methods are not intrinsically formulated on S. That is, they depend on how S is embedded as a subspace in \(\mathfrak {gl}(n,\mathbb {C})\). Therefore, there is no hope to present the schemes above only in terms of the matrix commutator.

Remark 4

The order of convergence of the descended methods is the same as the underlying Runge–Kutta ones (see Fig. 1), since if \(Q_n=Q(nh)+\mathcal {O}(h^p)\) and \(P_n=P(nh)+\mathcal {O}(h^p)\), then \(W_n=Q_n^\dagger P_n = W(nh) + \mathcal {O}(h^p)=Q(nh)^\dagger P(nh) + \mathcal {O}(h^p)\).

Fig. 1
figure 1

Maximum error in total time \(T=1s\), and time-step h, for \(h=1, 0.5^{2},\dots ,0.5^{17}\), in log–log scale, for 2\({\mathrm{nd}}\), 4\({\mathrm{th}}\), 6\({\mathrm{th}}\) order schemes in Definition 1, respectively, with dashed blue, purple and green line, applied to the generalized rigid body of Sect. 5.1. The continuous lines are, respectively, red \(h\mapsto h^3\), yellow \(h\mapsto h^5\), blue \(h\mapsto h^7\)

4.2 Partitioned Symplectic Runge–Kutta Methods

Given two Butcher tableaux

the associated partitioned Runge–Kutta method for (12) is given by

$$\begin{aligned} K^Q_i= & {} \left( Q_n+h\sum \nolimits _{j=1}^s \widehat{a}_{ij} K^Q_j\right) B\left( \left( Q_n+h\sum \nolimits _{j=1}^s \widehat{a}_{ij} K^Q_j\right) ^\dagger \right. \\&\left. \left( P_n+h\sum \nolimits _{j=1}^s a_{ij} K^P_j\right) \right) ^\dagger \\ K^P_i= & {} - \left( P_n+h\sum \nolimits _{j=1}^s a_{ij} K^P_j\right) B\left( \left( Q_n+h\sum \nolimits _{j=1}^s \widehat{a}_{ij} K^Q_j\right) ^\dagger \right. \\&\left. \left( P_n+h\sum \nolimits _{j=1}^s a_{ij} K^P_j\right) \right) \\ Q_{n+1}= & {} Q_n + h\sum \nolimits _{i=1}^s \widehat{b}_i K^Q_i\\ P_{n+1}= & {} P_n + h\sum \nolimits _{i=1}^s b_i K^P_i, \end{aligned}$$

for \(i,j=1,\ldots ,s\). The partitioned Runge–Kutta method is symplectic, i.e., the discrete flow is a symplectic map, if \(b_i\widehat{a}_{ij}+\widehat{b}_ja_{ji}=b_i\widehat{b}_j\) and \(\widehat{b}_i=b_i\) for \(i,j=1,\ldots ,s\).

Theorem 5

Given two Butcher tableaux

of a symplectic partitioned s-stage Runge–Kutta method, let \(\Phi _h:T^*GL(n,\mathbb {C}) \rightarrow T^*GL(n,\mathbb {C})\) denote the corresponding integrator map for system (12). Then:

  1. (1)

    The symplectic integrator \(\Phi _h\) descends to a Lie–Poisson integrator \(\phi _h\) on \(\mathfrak {gl}(n,\mathbb {C})^*\simeq \mathfrak {gl}(n,\mathbb {C})\) for the isospectral Hamiltonian system (5). Furthermore, the map \(\phi _h\) is completely constructive as an implicit integration scheme (see below for a specific formula).

  2. (2)

    The invariant subspace \(S=\mathfrak {sl}(N,\mathbb {C})\) of (5) is preserved by \(\phi _h\).

  3. (3)

    If \(S=\mathfrak {g}\), and \(S=\mathfrak {g}^\bot \), for \(\mathfrak {g}\) a J-quadratic Lie subalgebra and \(b_i\ne 0\), then \(\phi _h\) preserves S (for general Hamiltonians on S extended to \(\mathfrak {gl}(n,\mathbb {C})\)) if and only if \(a_{ij}=\widehat{a}_{ij}\), for \(i,j=1,\ldots ,s\).

The scheme obtained in Theorem 5 is the following:

\(S=\mathfrak {sl}(n,\mathbb {C})\) or \(S=\mathfrak {gl}(n,\mathbb {C})\)

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) B\left( \widetilde{W}_i\right) \\ \\ Y_i = hB\left( \widetilde{W}_i\right) \left( W_n+\sum \nolimits _{j=1}^s \widehat{a}_{ij} Y_j\right) \\ \\ K_{ij} = hB\left( \widetilde{W}_i\right) \left( \sum \nolimits _{j'=1}^s \left( a_{ij'}X_{j'}+\widehat{a}_{jj'}K_{ij'}\right) \right) \\ \\ \widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} X_j+\widehat{a}_{ij} \left( Y_j+K_{ij}\right) \\ \\ W_{n+1} = W_n + h\sum \nolimits _{i=1}^sb_i[B\left( \widetilde{W}_i\right) ,\widetilde{W}_i], \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), where the unknowns are \(X_i,Y_i,K_{ij}\) for \(i,j=1,\ldots ,s\) and the last two lines are explicit.

Proof of Theorem 5

  1. (1)

    The proof is, mutatis mutandis, identical to the one of the previous theorem. We have just to change accordingly the following definitions:

    $$\begin{aligned} \widetilde{K}_{ij}&:= h^2\sum _{j'=1}^s \hat{a}_{ij'}(K_j^Q)^\dagger K_{j'}^P\\ K_{ij}&:= h^2\sum _{j'=1}^s a_{ij'}(K_j^Q)^\dagger K_{j'}^P\\ \widetilde{W}_i&:=W_n+\sum _{j=1}^s a_{ij} X_j+\widehat{a}_{ij} (Y_j+K_{ij}), \end{aligned}$$

    and pointing out the following identity:

    $$\begin{aligned} \sum _{j'=1}^s a_{ij'}\widetilde{K}_{jj'} = \sum _{j'=1}^s \widehat{a}_{jj'} K_{ij'} \text{ for } i,j=1,\ldots ,s. \end{aligned}$$

    Finally, we just use the condition of symplecticity for partitioned Runge–Kutta methods.

  2. (2)

    Follows directly from the formula for \(W_{k+1}\).

  3. (3)

    Partitioned symplectic Runge–Kutta methods preserve exactly the strong quadratic first integrals of a dynamical system if they are on the form a(QP), where a is a bilinear form on the space of matrices. In particular, when S is one of the spaces in statement (3) of the theorem, to preserve \(N(S)=\lbrace Q\in GL(n,\mathbb {C})|Q^\dagger JQ=J\rbrace \) the method associated to Q-part has to preserve already the quadratic first integrals. This fact, together the condition of symplecticity of the partitioned Runge–Kutta methods, implies that \(a_{ij}=\widehat{a}_{ij}\), for \(i,j=1,\ldots ,s\) whenever \(b_i\ne 0\).\(\square \)

4.3 Linear Equivariance of the Schemes

In this paragraph, we prove that the isospectral symplectic Runge–Kutta methods in Theorems 4 and 5 are linearly equivariant with respect to the invertible linear transformations that leave Eqs. (1) and (5) of the same form. Notice that Eqs. (1) and (5) are not affine equivariant; linear equivariance is the best we can expect. The linear isomorphisms that leave Eqs. (1) and (5) invariant in form are, respectively, Lie algebra isomorphisms and Lie–Poisson isomorphisms. Indeed, consider a Lie algebra isomorphism \({\mathcal {A}}:\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C})\). Applying \({\mathcal {A}}\) to Eq. (1) gives

$$\begin{aligned} \dfrac{d}{dt}(\mathcal {A} W) = \mathcal {A}[B(W),W] = [\mathcal {A}B(W),\mathcal {A}W]=[(\mathcal {A}\circ B\circ \mathcal {A}^{-1})(\mathcal {A}W),\mathcal {A}W], \end{aligned}$$

which shows the invariance in form of Eq. (1) to Lie algebra isomorphism. In particular, we have the identity

$$\begin{aligned} \mathcal {A}[B(\mathcal {A}^{-1}W),\mathcal {A}^{-1}W] = [(\mathcal {A}\circ B\circ \mathcal {A}^{-1})(W),W]. \end{aligned}$$
(19)

Via the identification \(\mathfrak {gl}(n,\mathbb {C})^*\simeq \mathfrak {gl}(n,\mathbb {C})\) as previously explained, it is easy to check that the adjoint operator \({\mathcal {A}}^*:\mathfrak {gl}(n,\mathbb {C})^*\rightarrow \mathfrak {gl}(n,\mathbb {C})^*\) acts on the coadjoint representation like \(\mathcal {A}^*[X^\dagger ,Y] = [X^\dagger (\mathcal {A}^*)^{-1},\mathcal {A}^*Y]\), for \(X\in \mathfrak {gl}(n,\mathbb {C})\) and \(Y\in \mathfrak {gl}(n,\mathbb {C})^*\). In particular, \(\mathcal {A}^*\) is a Lie–Poisson map for Eq. (5):

$$\begin{aligned} \dfrac{d}{dt}(\mathcal {A}^* W)&= \mathcal {A}^*[\nabla H(W)^\dagger ,W] = [\nabla H(W)^\dagger (\mathcal {A}^*)^{-1},\mathcal {A}^*W] \\&= [\nabla (H\circ (\mathcal {A}^*)^{-1})^\dagger (\mathcal {A}^*W)^\dagger ,\mathcal {A}^*W], \end{aligned}$$

which leaves Eq. (5) invariant in form. We thus obtain the following identity:

$$\begin{aligned} {\mathcal {A}}^* [\nabla H(({\mathcal {A}}^*)^{-1}W)^\dagger ,\mathcal ({\mathcal {A}}^*)^{-1}W] = [\nabla ( H\circ ({\mathcal {A}}^*)^{-1})(W)^\dagger ,W]. \end{aligned}$$
(20)

For any map B and Hamiltonian H, let \(\phi _h(B)\) and \(\phi _h(H)\), respectively, denote integrators as in Theorem 4 or Theorem 5. Now, the numerical scheme \(\phi _h(B)\) is Lie equivariant, and, correspondingly, \(\phi _h(H)\) is Lie–Poisson equivariant if

$$\begin{aligned} {\mathcal {A}} \circ \phi _h(B) = \phi _h({\mathcal {A}} \circ B\circ {\mathcal {A}}^{-1}) \circ {\mathcal {A}}\end{aligned}$$
(21)
$$\begin{aligned} {\mathcal {A}}^* \circ \phi _h(H) = \phi _h(H\circ ({\mathcal {A}}^*)^{-1})\circ {\mathcal {A}}^*. \end{aligned}$$
(22)

The identities (19) and (20) show that the right hand sides of Eqs. (21),(22) have the same form. Therefore, it is enough to prove Eq. (21).

Theorem 6

Let \(\phi _h(B)\) be an isospectral (partitioned) symplectic Runge–Kutta method as in Theorem 4 (or Theorem 5). Then, \(\phi _h(B)\) is Lie equivariant for any Lie morphism \({\mathcal {A}}:\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C})\).

Proof

Let us consider Eq. (21) for the partitioned symplectic Runge–Kutta schemes. The same conclusion for the symplectic Runge–Kutta method will follow straightforwardly from this. We want to check Eq. (21) for any \(W_n\in \mathfrak {gl}(n,\mathbb {C})\) and \({\mathcal {A}}\) as above. The right hand side is

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h{\mathcal {A}}\left( {\mathcal {A}}^{-1}\left( \mathcal AW_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) \right) B\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \\ \\ Y_i = h\mathcal AB\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \left( {\mathcal {A}}^{-1}\left( AW_n+\sum \nolimits _{j=1}^s \widehat{a}_{ij} Y_j\right) \right) \\ \\ K_{ij} = hAB\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \left( \sum \nolimits _{j'=1}^s \left( {\mathcal {A}}^{-1}\left( a_{ij'}X_{j'}+\widehat{a}_{jj'}K_{ij'}\right) \right) \right) \\ \\ \widetilde{W}_i=\mathcal AW_n+\sum \nolimits _{j=1}^s a_{ij} X_j+\widehat{a}_{ij} \left( Y_j+K_{ij}\right) \\ \\ W_{n+1} = \mathcal AW_n + h\sum \nolimits _{i=1}^sb_i{\mathcal {A}}\left[ B\left( A^{-1}\widetilde{W}_i\right) ,{\mathcal {A}}^{-1}\widetilde{W}_i\right] , \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\), which is equivalent to

$$\begin{aligned} \left. \begin{array}{llll} {\mathcal {A}}^{-1}X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} {\mathcal {A}}^{-1}X_j\right) B\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \\ \\ {\mathcal {A}}^{-1}Y_i = hB\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \left( W_n+\sum \nolimits _{j=1}^s \widehat{a}_{ij} {\mathcal {A}}^{-1}Y_j\right) \\ \\ {\mathcal {A}}^{-1}K_{ij} = hB\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) \left( \sum \nolimits _{j'=1}^s \left( a_{ij'}{\mathcal {A}}^{-1}X_{j'}+\widehat{a}_{jj'}{\mathcal {A}}^{-1}K_{ij'}\right) \right) \\ \\ {\mathcal {A}}^{-1}\widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} {\mathcal {A}}^{-1}X_j+\widehat{a}_{ij} \left( {\mathcal {A}}^{-1}Y_j+{\mathcal {A}}^{-1}K_{ij}\right) \\ \\ W_{n+1} = {\mathcal {A}}\left( W_n+ h\sum \nolimits _{i=1}^sb_i\left[ B\left( {\mathcal {A}}^{-1}\widetilde{W}_i\right) ,{\mathcal {A}}^{-1}\widetilde{W}_i\right] \right) , \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\). Relabeling \(X_i:={\mathcal {A}}^{-1}X_i,Y_i={\mathcal {A}}^{-1}Y_i,K_{ij}:=A^{-1}K_{ij},\widetilde{W}_i:={\mathcal {A}}^{-1}\widetilde{W}_i\) we get

$$\begin{aligned} \left. \begin{array}{llll} X_i = - h\left( W_n+\sum \nolimits _{j=1}^s a_{ij} X_j\right) B\left( \widetilde{W}_i\right) \\ \\ Y_i = hB\left( \widetilde{W}_i\right) \left( W_n+\sum \nolimits _{j=1}^s \widehat{a}_{ij} Y_j\right) \\ \\ K_{ij} = hB\left( \widetilde{W}_i\right) \left( \sum \nolimits _{j'=1}^s \left( a_{ij'}X_{j'}+\widehat{a}_{jj'}K_{ij'}\right) \right) \\ \\ \widetilde{W}_i=W_n+\sum \nolimits _{j=1}^s a_{ij} X_j+\widehat{a}_{ij} \left( Y_j+K_{ij}\right) \\ \\ W_{n+1} = {\mathcal {A}}\left( W_n + h\sum \nolimits _{i=1}^sb_i \left[ B\left( \widetilde{W}_i\right) ,\widetilde{W}_i \right] \right) , \end{array}\right. \end{aligned}$$

for \(i,j=1,\ldots ,s\) which is exactly the left-hand side of (21). \(\square \)

5 Numerical Examples

In this section, we demonstrate the isospectral symplectic Runge–Kutta methods on some Hamiltonian isospectral flows often seen in the literature. As expected, we obtain near conservation of the Hamiltonian (owing to the symplectic quality) and exact conservation (up to round-off errors) of the Casimir functions (owing to the isospectral quality).Footnote 3

5.1 The Generalized Rigid Body

The core example among Hamiltonian isospectral systems is the generalized rigid body. It is known that in any dimension n it forms a complete integrable system in \(\mathfrak {so}(n)\), as proved by Manakov [16]. The Hamiltonian is given by

$$\begin{aligned} H(W) = \frac{1}{2}{{\,\mathrm{Tr}\,}}((\mathcal {I}^{-1}W)^\dagger W),\qquad W\in \mathfrak {so}(n), \end{aligned}$$
(23)

where \(\mathcal {I}:\mathfrak {so}(n)\rightarrow \mathfrak {so}(n)\) is a symmetric positive definite inertia tensor. The equations of motion are then

$$\begin{aligned} \left. \begin{array}{ll} \dot{W} = -[\mathcal {I}^{-1}W,W] \\ W(0)=W_0. \end{array}\right. \end{aligned}$$

We discretize this system for \(n=10\) with the method in Theorem 4 and with the Butcher tableau corresponding to the implicit midpoint method. Our implementation uses Newton iterations for the nonlinear system. The inertia tensor is given by

$$\begin{aligned} (\mathcal {I}^{-1}W)_{ij} = \frac{W_{ij}}{i} , \quad i,j=1,\ldots ,10 \end{aligned}$$

and we use the stepsize \(h=0.1\). The initial conditions are given by

$$\begin{aligned} (W_0)_{ij}=1/10 \quad \text {for}\quad i<j \qquad \text {and}\quad W_0^\dagger = -W_0 \end{aligned}$$

As shown in Fig. 2, the Hamiltonian is nearly conserved and the Casimir functions are conserved up to the accuracy of the Newton iterations.

Fig. 2
figure 2

Evolution of errors for the generalized rigid body in \(\mathfrak {so}(10)\). The Casimir functions correspond to the 10 eigenvalues (which occur in pairs). The Hamiltonian is given by (23). The data for the simulation are given by: stepsize h=0.1; inertia tensor \(\mathcal {I}=\mathrm {diag}(1,\ldots ,10)\); initial conditions \((W_0)_{ij}=1/10\) if \(i<j\), \((W_0)_{ij}=-1/10\) if \(i>j\), \((W_0)_{ij}=0\) if \(i=j\)

The Casimirs of the generalized rigid body only constitutes n first integrals, and they are therefore not enough to obtain the integrability. The additional, non-Casimir first integrals are not exactly preserved by our methods. However, from backward error analysis combined with KAM theory (see, e.g., [9]), one obtains that the additional integrals are nearly conserved (just as the Hamiltonian is nearly conserved).

5.2 The (Periodic) Toda Lattice

Among Hamiltonian integrable systems, the Toda lattice is perhaps the best known and most studied example. It represents a system of particles interacting pairwise with exponential forces. The equations of motion are determined by the Hamiltonian

$$\begin{aligned} H(p,q) = \sum _{k=1}^n \left( \frac{1}{2}p_k^2+\exp (q_k-q_{k+1})\right) , \end{aligned}$$

where \((q_i,p_i)\) are canonical coordinates of the n particles. Independently, Hénon [10], Flaschka [8] and Manakov [16] proved that the Toda system is integrable when \(q_n=q_{n+1}\) (periodic boundary conditions). This is most easily seen by providing a Lax pair formulation. Indeed, by the following change of variables

$$\begin{aligned} a_k =-\frac{1}{2}p_k, \qquad b_k=\frac{1}{2}\exp \left( \frac{1}{2}(q_k-q_{k+1})\right) , \end{aligned}$$

one obtains an equivalent isospectral flow

$$\begin{aligned} \dot{L}=[B(L),L], \end{aligned}$$
(24)

where

$$\begin{aligned} L=\left[ \begin{matrix} a_1 &{} b_1 &{} 0 &{} \ldots &{} b_n\\ b_1 &{} a_2 &{} b_2 &{} \ldots &{} 0\\ 0 &{} b_2 &{} a_3 &{} \ldots &{} 0\\ \vdots &{} \vdots &{} \vdots &{} \ddots &{} \vdots \\ b_n &{} 0 &{} 0 &{} \ldots &{} a_n \end{matrix}\right] , \quad B(L)=\left[ \begin{matrix} 0 &{} b_1 &{} 0 &{} \ldots &{} -b_n\\ -b_1 &{} 0 &{} b_2 &{} \ldots &{} 0\\ 0 &{} -b_2 &{} 0 &{} \ldots &{} 0\\ \vdots &{} \vdots &{} \vdots &{} \ddots &{} \vdots \\ b_n &{} 0 &{} 0 &{} \ldots &{} 0 \end{matrix}\right] . \end{aligned}$$

In these coordinates, the canonical Hamiltonian is simply \(H(L)=2{{\,\mathrm{Tr}\,}}(L^2)\).

So far, the mapping \(B(\cdot )\) is defined only for matrices of the form L above. A natural extension to any matrix \(W\in \mathfrak {gl}(n,\mathbb {C})\) is

$$\begin{aligned} B(W)= \left[ \begin{matrix} 0 &{} W_{12} &{} 0 &{} \ldots &{} -W_{1n}\\ -W_{21} &{} 0 &{} W_{23} &{} \ldots &{} 0\\ 0 &{} -W_{32} &{} 0 &{} \ldots &{} 0\\ \vdots &{} \vdots &{} \vdots &{} \ddots &{} \vdots \\ W_{n1} &{} 0 &{} 0 &{} \ldots &{} 0 \end{matrix}\right] . \end{aligned}$$

Next, in order to extend (24) to a Hamiltonian isospectral flow on \(\mathfrak {gl}(n,\mathbb {C})\) of the form in (5), we notice that we can take as a new Hamiltonian the function

$$\begin{aligned} \widetilde{H}(W) = -\frac{1}{2}{{\,\mathrm{Tr}\,}}(W^\dagger B(W)) + H(W) . \end{aligned}$$

Flow (5) of this Hamiltonian then coincides with (24) for matrices of the form L. Indeed, since \(B(W)\in \mathfrak {so}(n)\) when \(W\in {{\,\mathrm{Sym}\,}}(n,\mathbb {R})\), \({{\,\mathrm{Tr}\,}}(W^\dagger B(W))=0\) for \(W\in {{\,\mathrm{Sym}\,}}(n,\mathbb {R})\). Furthermore, \(\nabla \widetilde{H}(W)^\dagger =-B(W)\), when extended to any matrix W, since the linear mapping \(B:\mathfrak {gl}(n,\mathbb {C})\rightarrow \mathfrak {gl}(n,\mathbb {C})\) is symmetric with respect to the Frobenius inner product. Moreover, since the original Hamiltonian H(W) is itself a Casimir function its gradient does not affect the dynamics. We stress that the Hamiltonian structure of the extended system is different from the original canonical Hamiltonian structure in the q and p variables.

We discretize the system for \(n=4\) with the method in Theorem 4 and with the Butcher tableau corresponding to the implicit midpoint method. We use stepsize \(h=0.1\) and initial conditions

$$\begin{aligned} a_i=b_i=(-1)^i, \qquad i=1,\ldots ,4. \end{aligned}$$

Since the H(L) is one of the Casimir functions of the flow, it is preserved up to the iteration tolerance, as shown in Fig. 3.

We notice that in general our methods does not exactly preserve the zero entries of L (although they are nearly preserved). This is because the normalizer of the subspace of the symmetric matrices with the form of L is not J-quadratic for \(n>3\).

Fig. 3
figure 3

Error is Casimir functions for the periodic Toda Lattice with \(n=4\). The data for the simulation are given by: stepsize \(h=0.1\); initial conditions \(a_i=b_i=(-1)^i\) for \(i=1,\ldots ,4\)

5.3 The Euler Equations on a Sphere

Let us briefly mention a beautiful approach for spatial discretization of the incompressible Euler equations on a sphere, which leads to a finite dimensional Hamiltonian isospectral flow. For a full account, we refer to the publication [24].Footnote 4

On the 2-sphere \({\mathbb {S}}^2\) the hydrodynamical Euler equations for an incompressible, inviscid, and homogeneous fluid can be formulated in terms of vorticity of the velocity vector. The formulation is

$$\begin{aligned} \dot{\omega }&= \lbrace \Delta ^{-1}\omega ,\omega \rbrace \nonumber \\ \omega (0)&=\omega _0, \end{aligned}$$
(25)

where the vorticity function \(\omega \) is a smooth function on \(\mathbb {S}^2\) with zero mean, \(\Delta ^{-1}\) is the inverse of the Laplace–Beltrami operator on the sphere (which is invertible because the kernel consists only of the constant functions), and \(\lbrace \cdot ,\cdot \rbrace \) is the Poisson bracket between functions. This system is an infinite dimensional Lie–Poisson system on the dual of the algebra of divergence free vector field on \(\mathbb {S}^2\). The Casimir functions are given by

$$\begin{aligned} C(\omega ) = \int _{\mathbb {S}^2} f(\omega (x))\,\mathrm{d}x \end{aligned}$$

where \(f:\mathbb {R}\rightarrow \mathbb {R}\) is any smooth function. Thus, there are infinitely many independent first integrals. (Although not enough integrals for the system to be integrable.)

In geometric quantization theory (cf. [1]), the space of smooth functions is replaced by a Hilbert space of linear operators, and the Poisson bracket \(\{\cdot ,\cdot \}\) is replaced by the commutator \([\cdot ,\cdot ]\). The aim is to obtain a construction such that, in some sense, \([\cdot ,\cdot ]\) approximates \(\{\cdot ,\cdot \}\). In his PhD thesis, Hoppe [11] gave an explicit quantization of \((C^\infty ({\mathbb {S}}^2),\{\cdot ,\cdot \})\) in terms of the finite dimensional Lie algebras \(\mathfrak {su}(n,\mathbb {C})\), such that \([\cdot ,\cdot ] \rightarrow \{\cdot ,\cdot \}\) as \(n\rightarrow \infty \). This naturally leads to a spatial discretization of the vorticity equation (25) by simply replacing \(\{\cdot ,\cdot \}\) by \([\cdot ,\cdot ]\) and then working out what the corresponding discrete Laplacian \(\Delta _n\) should be. An explicit formula for \(\Delta _n\) was given by Hoppe and Yau [12]. The resulting spatially discretized equations thus become

$$\begin{aligned} \dot{W}&= [\Delta ^{-1}_n W ,W] \nonumber \\ W(0)&=W_0, \end{aligned}$$
(26)

where \(W\in \mathfrak {su}(n)\). This is an isospectral Hamiltonian system with respect to the Hamiltonian \(H(W)=\frac{1}{2}{{\,\mathrm{Tr}\,}}((\Delta ^{-1}_n W)^\dagger W)\).

In our paper [24], we develop and further explore a fully discrete version of (26) based on the isospectral methods in this paper. We thus obtain a discrete flow that preserves all the underlying structure of the Euler equations: conservation of Casimirs and the Lie–Poisson structure. In particular, conservation of Casimirs is essential for numerical studies of the long-time behavior of (25) and of the mechanisms behind the inverse energy cascade exclusive to 2D turbulence.

5.4 Point Vortices on a Sphere and the Heisenberg Spin Chain

As stated above, the symplectic isospectral Runge–Kutta methods are readily extended to product spaces. For example, we can deal with \((\mathfrak {su}(2)^*)^n\), where n is the number of vortices or spin particles in the point-vortices equation [25] or, respectively, the Heisenberg spin chain [20].

The Hamiltonian for point-vortex dynamics is

$$\begin{aligned} H(W_1,W_2,\ldots ,W_n)= -\frac{1}{4\pi }\sum _{\begin{array}{c} i,j=1 \\ i<j \end{array}}^n \Gamma _i\Gamma _j \log \left( 1-\dfrac{{{\,\mathrm{Tr}\,}}(W_i^\dagger W_j)}{\Vert W_i\Vert ^2\Vert W_j\Vert ^2}\right) , \end{aligned}$$

where \(W_1,\ldots ,W_n\) thought of a vectors in \(\mathbb {R}^3\) are the positions of the point vortices and \(\Gamma _1,\ldots ,\Gamma _n\) the respective strengths. For the Heisenberg spin chain, the Hamiltonian is

$$\begin{aligned} H(W_1,W_2,\ldots ,W_n)= \sum _{i=1}^n {{\,\mathrm{Tr}\,}}(W_i^\dagger W_{i+1}), \end{aligned}$$

where \(W_1,\ldots ,W_n\) are the spins of the particles and \(W_{n+1} = W_1\), see for example [20].

For these systems, a new first integral arises, due to the SU(2) symmetry of the Hamiltonians

$$\begin{aligned} H(GW_1G^{-1},GW_2G^{-1},\ldots ,GW_nG^{-1})=H(W_1,W_2,\ldots ,W_n), \end{aligned}$$

for any \(G\in SU(2)\). The corresponding first integrals are given by the (weighted) sum of the vortices/spins

$$\begin{aligned} M(W_1,W_2,\ldots ,W_n)=\sum _{i=1}^n\Gamma _iW_i. \end{aligned}$$

We use the midpoint-based numerical scheme of Theorem 4 for the point-vortex Hamiltonian with \(n=4\) and stepsize \(h=0.1\). The initial vortex positions are

$$\begin{aligned} x_1=[1 \ 0 \ 0],x_2=[-1 \ 0 \ 0],x_3=[0 \ 1 \ 0],x_4=[0 \ -1 \ 0]. \end{aligned}$$

As before, the Casimirs are conserved and the Hamiltonian is nearly conserved. In addition, the extra integral M is conserved up to machine precision, as can be seen in Fig. 4.

Fig. 4
figure 4

Evolution of errors for four point vortices on a sphere. Upper: three components of the momentum M. Lower: Hamiltonian. The data for the simulation are given by: stepsize \(h=0.1\); initial conditions \(x_1=[1 \ 0 \ 0],x_2=[-1 \ 0 \ 0],x_3=[0 \ 1 \ 0],x_4=[0 \ -1 \ 0]\)

5.5 The Bloch–Iserles Flow

Given \(N\in \mathfrak {so}(n)\), the Bloch–Iserles flow [2] on \({{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) is

$$\begin{aligned} \dot{W} = [W^2,N]. \end{aligned}$$

It can be cast as an isospectral flow (1) on \({{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) with \(B(W) = NW+WN\). Its interest lies in its integrable structure, which is fundamentally different from that of the Toda lattice and the generalized rigid body.

The Bloch–Iserles flow can be extended to a Hamiltonian isospectral flow on \(\mathfrak {gl}(n,\mathbb {R})^*\simeq \mathfrak {gl}(n,\mathbb {R})\) such that \({{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) is an invariant subspace, just as the Toda flow in Sect. 5.2 above. The Hamiltonian for this is

$$\begin{aligned} H(W) = {{\,\mathrm{Tr}\,}}(W^2 N). \end{aligned}$$

We give a numerical example with \(n=3\) and, again, the second-order midpoint-based scheme of Theorem 1 with stepsize \(h=0.1\). The matrix N and the initial conditions are

$$\begin{aligned} N=\frac{1}{\sqrt{2}}\begin{bmatrix} 0&1&0 \\ -1&0&1 \\ 0&-1&0 \end{bmatrix} \qquad \text {and}\qquad W_0= \begin{bmatrix} 0.0163&0.3928&0.2415 \\ 0.3928&0.1501&0.3443 \\ 0.2415&0.3443&0.6603 \end{bmatrix}. \end{aligned}$$

The evolution of energy and the Casimirs (eigenvalues) are given in Fig. 5. The integrable structure of the flow is revealed as quasi-periodicity in projections of the phase diagram, as seen in Fig. 6.

Fig. 5
figure 5

Casimir and Hamiltonian variation in time \(T=100\), for the Bloch–Iserles flow in \(\text{ Sym }(3)\) and time-step \(h=0.1\)

Fig. 6
figure 6

Projected phase space portrait for the Bloch–Iserles system. The resulting diagram reveals quasi-periodic motion on embedded tori as expected for integrable systems

5.6 The Toeplitz Inverse Eigenvalue Problem

In this section, we demonstrate that the methods introduced can be applied also to non-Hamiltonian systems. To this end, consider Chu’s flow on symmetric real matrices, which is of form (1) with

$$\begin{aligned} B(W)=\left[ \begin{matrix} 0 &{} W_{1,1}-W_{2,2} &{} W_{1,2}-W_{2,3} &{} \ldots &{} W_{1,n-1}-W_{2,n}\\ W_{2,2}-W_{1,1} &{} 0 &{} W_{2,2}-W_{3,3} &{} \ldots &{} W_{2,n-1}-W_{3,n} \\ W_{3,2}-W_{2,1} &{} W_{3,3}-W_{2,2} &{} 0 &{} \ldots &{} W_{3,n-1}-W_{4,n} \\ \vdots &{} \vdots &{} \vdots &{} \vdots &{} \vdots \\ W_{n,2}-W_{n-1,1} &{} W_{n,3}-W_{n-1,2} &{} W_{n,4}-W_{n-1,3} &{} \ldots &{} 0 \\ \end{matrix}\right] \end{aligned}$$

Notice that if \(W\in {{\,\mathrm{Sym}\,}}(n,\mathbb {R})\) then \(B(W)\in \mathfrak {so}(n)\).

The Toeplitz inverse eigenvalue problem reads as follows. Given a certain set of eigenvalues, find a symmetric Toeplitz matrix with that prescribed spectra (recall that a Toeplitz matrix is a matrix with constant elements on the diagonals). In [15], H.J. Landau established that, for any given spectra, there exists a symmetric Toeplitz matrix with those eigenvalues. Toward a practical algorithm, Chu [5] instead proved that fixed points of the isospectral flow with B(W) as above are symmetric Toeplitz matrices, provided the eigenvalues are distinct.

Chu’s flow is particularly interesting from a numerical point of view because there exist periodic orbits. Thus, the flow does not always converge to a fixed point. However, the periodic orbits are unstable and because of the floating point drift in numerical methods Chu’s flow in practice always converge to a symmetric Toeplitz matrix when the starting point has distinct eigenvalues [32].

A qualitatively better simulation of Chu’s flow, which preserves the periodic orbits, can be obtained by restriction to centrosymmetric matrices. A matrix is said to be centrosymmetric if it is invariant with respect to a rotation of the components of \(\pi \) grade. In other words, a matrix A is centrosymmetric if

$$\begin{aligned} A E-EA=0, \end{aligned}$$

where

$$\begin{aligned}E=\left[ \begin{matrix} 0 &{} 0 &{} \ldots &{} 0 &{} 1\\ 0 &{} 0 &{} \ldots &{} 1 &{} 0\\ \vdots &{} \vdots &{} \ddots &{} \vdots &{} \vdots \\ 0 &{} 1 &{} \ldots &{} 0 &{} 0\\ 1 &{} 0 &{} \ldots &{} 0 &{} 0 \end{matrix}\right] . \end{aligned}$$

The set of centrosymmetric matrices of dimension n is a Lie algebra which we denote by \(\text{ Centro }(n)\). In particular, we have that the symmetric Toeplitz matrices are centrosymmetric and B(W) is centrosymmetric when W is symmetric and centrosymmetric [32]. Therefore, for the Toeplitz problem, Chu’s flow can be restricted to the symmetric-centrosymmetric matrices. With this restriction, the periodic orbits are numerically preserved, and therefore, the simulation of the flow is more realistic. In fact, in order to avoid the drifting out from the periodic orbits, it is necessary to respect the centrosymmetric symmetry of the original flow in the discrete approximation.

Fig. 7
figure 7

Numerical simulation of Chu’s flow without forcing centrosymmetry of B(W)

Fig. 8
figure 8

Numerical simulation of Chu’s flow forcing centrosymmetry of B(W)

Fig. 9
figure 9

Eigenvalues (above) and components (below) for the Brockett flow (27) solved with the midpoint IsoSyRK method, with time-step \(h=0.1\). The initial condition \(W_0\) is a randomly generated self-adjoint matrix of dimension \(3\times 3\) and \(N=\text {diag}(1,2,3)\)

If S denotes the linear subspace of symmetric-centrosymmetric matrices, then by Theorem 3 the isospectral symplectic Runge–Kutta methods descend to an isospectral integrator on the symmetric-centrosymmetric matrices, provided that B(W) is in the normalizer of S, which is \(\mathfrak {so}(n)\cap \text{ Centro }(n)\).

We use the midpoint-based numerical scheme of Theorem 4 for Chu’s flow with \(n=4\) and stepsize \(h=0.1\). The initial conditions, proposed in [32], are

$$\begin{aligned} W_0=\left[ \begin{matrix} 0.1336 &{} 0 &{} 0 &{} 0.5669\\ 0 &{} -0.1336 &{} 0.378 &{} 0\\ 0 &{} 0.378 &{} -0.1336 &{} 0 \\ 0.5669 &{} 0 &{} 0 &{} 0.1336 \end{matrix}\right] \end{aligned}$$

Figures 7 and 8 show the difference of the behavior of the flow with and without the restriction to the centrosymmetric matrices, confirming the same predictions presented in [32].

5.7 The Brockett Flow

Another example of a non-Hamiltonian isospectral flow is the Brockett flow, or double bracket flow

$$\begin{aligned} \dot{W} = [[N,W],W], \end{aligned}$$
(27)

where N and W are \(n\times n\) self-adjoint complex matrices. In [4], Brockett shows that for a diagonal N with distinct entries and \(W_0\) a self-adjoint matrix with distinct eigenvalues, W(t) converges exponentially fast to a diagonal matrix with the eigenvalues sorted accordingly to the order of the entries of N. There are interesting connections between the Brockett flow and information theory. Indeed, the Brockett flow can be viewed as a gradient flow, with respect to the Fisher–Rao information metric, of a relative entropy functional on the statistical manifold of multivariate Gaussian distributions [23, Sec. 3.4.3].

We apply the isospectral midpoint method with \(h=0.1\). In Fig. 9, we plot the eigenvalues and the components variation for a randomly generated self-adjoint initial matrix \(W_0\) of dimension \(3\times 3\) and \(N=\text {diag}(1,2,3)\). Figure 9 displays the exponential convergence to a similar diagonal matrix.