This is a little JavaScript application to demonstrate two ideas:

  • Equivariance
  • Modified vector field


The area below represents a portion of the plane, with a vector field. The vector field is circular to begin with.

Clicking on the area adds an initial condition, and shows the exact trajectory up to time one.

You can apply an affine transformation (currently, only translation, rotation and scalings are supported) to the vector field, by dragging either of the two circular handles initially in the middle.

There are several switches (either checkbox or key press), that toggle the visibility of

  • the exact solution (W)
  • the exact trajectory (E)
  • the numerical solution (R)
  • the modified trajectory (trajectory of the modified vector field) (M)

Here is the playing area, the explanations follow afterwards.

Nothing here.

Affine Equivariance

Affine equivariance is the property to be insensitive to affine transformation. Here are two specific examples which are perhaps easier to understand than the general case.

Change of origin

You see by playing with the model above that translating the vector field also translates the computed solutions. It means that the choice of the origin does not matter. It is a fundamental property of, for instance, Runge–Kutta methods.

Arbitrary Units

Another fundamental property of affine equivariant methods is that they are insensitive to scalings. In other words, the choice of units is irrelevant. For instance, you can choose to use metres, and that will give you a given vector field. You may then compute the solution, and you will obtain numbers, which are to be interpreted in metres as well.

Suppose now that you want to change units, and use kilometres instead. That gives you a completely different vector field! (It's tentamount to change the scaling in the playground above). What scaling equivariance means is that if you recompute using kilometres instead, and interpret the result in kilometres, and then convert it to metres, you will obtain the same result as when the vector field and initial conditions were expressed in metres.

Modified Vector Field

As you see in the model above, the computed result is always a little bit off the exact result. That's expected, as the numerical integrator cannot compute the solution exactly.

There are two interpretation of this.

The forward error analysis is the idea that the poor method tries as hard at it can, but does not succeed.

The backward error analysis interpretation is that the method could compute the trajectory exactly, but doesn't, on purpose! The method computes instead the exact solution of another vector field (called the modified vector field), which visibility can be toggled above. You will best understand this interpretation by switching off the exact solution (EW), switching on the modified trajectory (M) and adding a new trajectory.

Given a fixed method (for instance, a Runge–Kutta method), one can define its modified vector field map \(\varphi \) as the map which sends a vector field to the modified vector field that the method solves exactly.

Modified Vector Field and Equivariance

How does the modified vector field behave with respect to equivariance? Well, as you can see above, equivariance is the statement that, roughly speaking, the vector field and the modified vector field move together. If you translate the original vector field, then the modified vector field will be translated by the same amount. If you scale the original vector field, then the modified vector field will be scaled by the same amount. The same holds for general affine transformation, if the method is affine equivariant.

If we denote an element of the affine group by \(g\), and the action of \(g\) on a vector field by \(g \cdot f\), then the equivariance statement for the modified vector field map \(\varphi \) is

\begin{equation*} \varphi (g \cdot f) = g \cdot \varphi (f) \end{equation*}


Numerical method always have an extra property that we call locality. For the modified vector field map \(\varphi \), locality means that if a vector field \(f\) is zero on a neighbourhood of a point \(x\), then \(\varphi (f)\) is also zero at the point \(x\).

In a recent result, joint work with Hans Munthe-Kaas, we give a complete characterisation of the local, equivariant modified vector field maps. In essence, the result is that the Taylor development of a local, affine equivariant modified vector field map takes a very special form, that we call “equivariant series”, and looks very similar to B-Series. Feel free to have a look in our paper more more details.

Say thanks!