Previous | Next --- Slide 36 of 46
Back to Lecture Thumbnails
PandaX

Why do we still call Backward Euler stable if it exhibits numerical damping?

BryceSummers

I think integration schemes are called numerically stable if they do not diverge to giving infinitely varying values. In other words the system is always representable by numbers that the computer can represent accurately.

kmcrane

Right—one rough sense in which people talk about stability is to say that an integrator is stable if it doesn't "blow up," i.e., if the per-step error doesn't grow without bound as the integration progresses. That's not what we saw with forward Euler: the energy shoots off to infinity, and each time step we're making larger and larger errors. With backward Euler, we also have errors (due to numerical damping) but these errors are bounded, i.e., there's no "blow up" or increase in per-step errors as time goes on. Formal stability analysis is a big topic; the analysis we looked at in class for backward and forward Euler is known as A-stability.

Sohil

When we say that energy is conserved "almost exactly", does that mean that the small error can eventually cause blow-up / dampening? Is this not a problem? I would imagine for any simulation that has to run for a long time the error will eventually add up.

kapalani

I think the time step is the one that would cause the animation to blow up. The error is proportional to O(timestep), so with a sufficiently large time step I think even symplectic euler would blow up. Atleast that's the behavior when I experimeted with the integration timestep in my project implementation

dsaksena

"new" velocity is found using time k or k+1? If it's the updated velocity using current configuration (k) how is it different from forward euler?

kapalani

The new velocity uses $u_{t}$ and the new position uses $v_{t+1}$ So $v_{t+1} = f(u_{t})$ and $u_{t+1} = f(v_{t+1})$ If it was forward Euler for both then the new position would use $v_{t}$ not $v_{t+1}$

dsaksena

Oh yeah asst4 got it thx!

kmcrane

Just to be clear:

  • Symplectic Euler is not unconditionally stable, i.e., for a sufficiently large time step it will blow up.
  • For any stable time step, the error in energy will remain within a constant factor of the original energy for all time. I.e., no matter how long you run the simulation, the energy will never drift further than some amount that does not depend on the duration of the simulation.
  • However, the error in configuration may grow, i.e., the trajectory will drift from the true trajectory, even though the energy is conserved.

A good example is a planet orbiting a star. The planet will never spiral outwards, or crash into the sun, but it may be the completely wrong time of year.