What's the minimum step size that can be used in Euler's method before it becomes unreliable?

497 Views Asked by At

In particular, if Euler's method is implemented on a computer, what's the minimum step size that can be used before rounding errors cause the Euler approximations to become completely unreliable?

I presume it's when step size reaches the machine epsilon? E.g. if machine epsilon is e-16, then once step size is roughly e-16, the Euler approximations are unreliable.

2

There are 2 best solutions below

2
On BEST ANSWER

It depends on the problem. Basically, you have two sources of errors in each step, the rounding errors that are some multiple of the machine constant $\mu=2\cdot10^{-16}$ (scaled by the scale of the functions involved) and the local truncation error, which depends on derivatives of the ODE function (thus also involving the function scale) and the square $h^2$ of the step size. You want the truncation error to dominate the rounding errors, which in the simplest case demands $h^2>\mu$ or $h>\sqrt\mu\sim 10^{-8}$. This changes if the ODE function is in some sense "strongly curved".

0
On

In each step you will have about the same rounding errors, independent of the step size. But for example halving the step size means you need twice as many steps which doubles the rounding errors. If you wanted to solve your ODE over an interval of length one, and chose a step size of $10^{-16}$, you'd need $10^{16}$ steps with $10^{16}$ rounding errors, which will be quite fatal.

You should first determine how much precision you actually need, then set the step size small enough that the truncation error stays within the required precision. At that point you can likely improve the total error a bit by reducing the step size a bit. As Lutz Lehmann said, at very roughly $h = 10^{-8}$ there will be a point where reducing the step size will increase the rounding error more than it decreases the truncation error, so you definitely don't want to go below that step size.

But also consider that more steps = more time spent on calculations. So the step size of $10^{-16}$ would have been totally unrealistic anyway. You just can't perform $10^{16}$ steps.

You might be much better off using a higher order solver, for example just Runge-Kutta, where the truncation error can be small enough with much larger step size and therefore less rounding errors and much fewer calculations to perform.