How to show a numerical method is symmetric?

204 Views Asked by At

This is the definition I've been given, say $y_n=y_{n-1}+h_n\phi(y_{n-1},y_n,h)$ then this method is symmetric if $\phi(u,v,h)=\phi(v,u,-h)$. If anyone can provide a worked out example of a numerical method that satisfies this property that would be great. I'm just looking for clarity of the concept. I've tried google and nothing

1

There are 1 best solutions below

3
On

So there's some theory around symmetric methods, I refer you to Hairer's "Geometric Numerical Integration", all of this discussion pulls from that text! (so this is not my own work!) Anyway, there's a way you can take common methods and get symmetric methods from them.

#-------------------- What does it mean to be (non)symmetic? ---------------------#

Symmetric: The definition for symmetric is as you say.. if you take a negative time step from the end point do you arrive at the start? (i.e. symmetric if $\Phi(u,v,h)=\Phi(v,u,-h)$). This is the purple colored path in the image below.

Non-symmetric: Consider the forward Euler update for the autonomous ODE $\frac{dy(t)}{dt} = f(y)$.

Denote forward Euler as the map $\Phi_F(y,h)$ (https://en.wikipedia.org/wiki/Euler_method#Derivation) $$ y_1 = \Phi_F(y_0,h) = y_0 + h f(y_0)$$ Step 1: Starting from $y_0$ update to $y_1$ using forward Euler (see image below).

Step 2: "turn around" and use the same map with a negative time step (see image!). $$ y_2 = \Phi_F(y_1,-h) = y_1 - h f(y_1)$$

You can ask, when I "turned around" and went "forward" did I end up in the same spot? (i.e. $y_0 = y_2$). You'll see that, unless $f(y)$ is a constant, you did NOT end where you started! So forward Euler is NOT symmetric.

Diagram of symmetric & non-symmetric updates.

#----- How do I get a symmetric update without "guess and test"? -----#

The Concept: Now that we have a Non-symmetric update, let's see how to use it to get a symmetric update! Let's say you wanted determine the symmetric part of a matrix... what would you do? $M_{symmetric} = 1/2(M + M^T)$.

The same can be done for updates. You would compute the adjoint update method (i.e. transpose) and compose the two functions together.

Adjoint of forward Euler: Start from forward Euler and rearrange the map so that you DO end up at the place you started. $$ y_1 = \Phi_F(y_0,h) = y_0 + h f(y_0)$$ $$ y_0 = y_1 - h f(y_0)$$ Recognize the backward Euler method (https://en.wikipedia.org/wiki/Backward_Euler_method#Derivation)! $$ y_0 = \Phi_B(y_0,y_1,-h)$$

Function composition of method with its adjoint: $$y_1 = \Phi_B(y_1,y_{1/2},h/2) \circ \Phi_F(y_0,h/2) = \Phi_B(y_1,\Phi_F(y_0,h/2),h/2)$$ $$ y_{1/2} = \Phi_F(y_0,h/2) = y_0 + h/2 f(y_0)$$ $$ y_1 = \Phi_B(y_1,y_{1/2},h/2) = y_0 + h/2 f(y_0) + h/2 f(y_1)$$

You may recognize this as the trapezoid method!! Which as Lehmann showed in your comments is symmetric.

#-------- Conclusions--------#

Since you couldn't find anything on google, I have given you a reference material Hairer "Geometric Numerical Integration". I have also defined the symmetric concept for integrators and connected it to the symmetric concept for matrices. I have provided you a way to use that concept to arrive at symmetric examples! Best of luck in your future integration endeavors!