Search code examples
mathsimulationgame-physicsnumerical-methodsnumerical-integration

The time-reversibility of the semi-implicit Euler numerical integration method


It's clear that the semi-implicit Euler integration method is symplectic, but I can't find any info about it's time-reversibility. So the question: is it time-reversible?


Solution

  • Looking at the Hooke's law example in Semi-implicit_Euler_method

    v_{n+1} = v_n - omega^2 x_n dt
    x_{n+1} = x_n + v_{n+1} dt
    

    One way of thinking about reversibility is whether we can recover v_n and x_n given v_{n+1} and x_{n+1}. Rearranging the second

    x_n = x_{n+1) - v_{n+1} dt
    

    so we can find x_n, knowing this we can find v_n

    v_n = v_{n+1} + omega^2 x_n dt
    

    Note this is different from what you would get it you ran the semi-implicit Euler method backwards by reversing the time with dt = - dt. Doing that you would do the two steps in the other order.

    v_n = v_{n+1} + omega^2 x_{n+1} dt
    x_n = x_{n+1} - v_n dt
    

    In this Google spreadsheet with Hooke's law I've implemented the method for Hooke's law. Columns B and C are the position and velocity going forward. Columns D and E are starting at the end and applying the method with reversed time. Columns F and G start from the end but apply the method which recover the original data. You can see the graphs going forward and backwards don't quite match.