4
$\begingroup$

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?

$\endgroup$
3
  • 2
    $\begingroup$ I'm pretty sure that property does not hold. Imagine $A(t) = 1$ $\endgroup$ – Thijs Steel May 2 at 10:26
  • 2
    $\begingroup$ 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. $\endgroup$ – Lutz Lehmann May 2 at 12:36
  • $\begingroup$ @ThijsSteel I think that $\times$ is the cross product and $a(t)$ is required to be a 3-dimensional vector. $\endgroup$ – David Ketcheson May 3 at 7:00
4
$\begingroup$

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.

Any quadratic invariant will be preserved by a Runge-Kutta method if the method coefficients satisfy

$$ 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.

Methods that conserve quadratic invariants and symplectic methods are essentially the same class of methods, and section VI.7 of the book is devoted to a deeper study of this topic.

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).

Orthogonal projection can be detrimental when other invariants are important. A recent approach that can be used (with any integration method, including explicit methods) to preserve a chosen nonlinear invariant while still preserving all linear invariants is that of relaxation methods (disclosure: this is the work of myself and my collaborators).

$\endgroup$
1
  • $\begingroup$ Thanks, David, for this detailed answer! $\endgroup$ – Nico Schlömer May 3 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.