# Geometric integrators besides midpoint/Crank-Nicolson?

I have a first-order ODE $$\dot{x} = a(t) \times x, \quad x(0) \in\mathbb{R}^3.$$ with $$\|a(t)\| = 1 \;\forall t$$. Consequently, $$\|x(t)\|=\|x(0)\|$$ for all $$t>0$$. I would like this to be reflected in the numerical solution of the ODE, so for time-stepping I'm looking at geometric integrators like Crank-Nicolson.

What other geometric integrators for first-order ODEs are there?

• I'm pretty sure that property does not hold. Imagine $A(t) = 1$ May 2, 2021 at 10:26
• You might mean that $A(t)\in so(3)$, not $SO(3)$. The usual approach is to solve for $x(t)=e^{S(t)}x_0$ where $S$ is still skew-symmetric. There exist expansion formulas for the derivative of the matrix exponential, these lead to approximative ODE for $S$ which can then be solved using standard methods. May 2, 2021 at 12:36
• @ThijsSteel I think that $\times$ is the cross product and $a(t)$ is required to be a 3-dimensional vector. May 3, 2021 at 7:00

The go-to reference on this topic is the extensive book by Hairer, Lubich, & Wanner (HLW). The kind of property you are dealing with is known as a quadratic invariant, since $$\|x(t)\|^2$$ is constant. These are covered in Section IV.2 of the book.
$$b_i a_{ij} + b_j a_{ji} = b_i b_j$$ for all $$i,j$$. Such methods are fully implicit; the most widely known are the Gauss methods (developed by Butcher and based on Gauss quadrature). There are also partitioned methods that preserve quadratic invariants, but these aren't applicable to your system.
If you are looking for an explicit method that conserves the Euclidean norm for your problem, a simple approach is orthogonal projection (HLW Section IV.4). In your case, this simply means normalizing $$x$$ after each time step (by dividing it by its length).