Why Nearby Euler Trajectories Can Separate
Forward Euler applies a simple update repeatedly, but its effect on a small difference between two computed values can be more subtle than the update itself. When the slope depends on the solution value, two nearby values generally receive different slopes. Their difference may shrink at one step and grow at another.
This matters whenever a numerical value is perturbed: the initial condition may be uncertain, or a small discrepancy may have entered a computation. The question here is specifically how the Euler rule propagates a difference between two approximations made with the same step size. This is distinct from asking how accurately either approximation represents the exact solution.
To study amplification, compare two Euler computations on the same time grid, with values \(Y_n\) and \(Z_n\). Write their signed difference as \(\delta_n=Y_n-Z_n\). Since both use the same slope function and step size,
The next difference depends not only on the current difference, but also on how strongly the slope changes between the two current values. That dependence is the central feature of nonlinear error amplification.
The Local Amplification Factor
Suppose \(f(t_n,y)\) is differentiable with respect to \(y\) throughout the interval between \(Y_n\) and \(Z_n\). If \(Y_n\ne Z_n\), the mean value theorem gives a value \(\xi_n\) between them such that
Substituting this identity into the difference recurrence yields an exact relation for these two computed values:
The factor \(1+h f_y(t_n,\xi_n)\) is a secant-based amplification factor: the derivative is evaluated at some point between the two approximations. For an infinitesimal perturbation about a single value \(y\), the derivative of the update map is exactly
For positive \(h\), a particular local factor contracts when \(-2/h<f_y(t_n,y)<0\). It amplifies when \(f_y(t_n,y)>0\) or \(f_y(t_n,y)<-2/h\). At the boundary values, the factor has absolute value \(1\). These conditions apply to the derivative at the value under consideration; in a nonlinear problem that derivative can change as the computation moves.
Worked Example: A Nonlinear Slope Amplifies a Difference
Worked Example: Comparing Two Euler Runs for \(y'=y^2\)
Use \(h=0.1\) and start two Euler computations at \(Y_0=1\) and \(Z_0=1.01\). The slope is \(f(y)=y^2\), so the update is \(G(y)=y+0.1y^2\).
For the first computation,
For the second computation,
At the next step, \(Z_1^2=1.11201^2=1.2365662401\), so
The initial difference is \(Z_0-Y_0=0.01\). After one step it is \(Z_1-Y_1=1.11201-1.1=0.01201\). After two steps it is \(Z_2-Y_2=1.23566662401-1.221=0.01466662401\). The difference has increased at both steps.
As a check, the update map is \(G(y)=y+0.1y^2\), with derivative \(G'(y)=1+0.2y\). This derivative is greater than \(1\) at both starting values, consistent with local amplification. The computed second-step difference is also the direct subtraction of the two displayed Euler values.
A Derivative Bound Gives a Multi-Step Estimate
A local factor describes one step. To bound the separation across several steps, it is useful to have a derivative bound on all the values that the two computations encounter.
Proof. By the mean value theorem, at each step with \(Y_n\ne Z_n\),
Using the difference recurrence and the triangle inequality,
If the two values coincide at a step, their next values also coincide, so the same inequality holds. Apply the inequality successively from step \(0\) to step \(n-1\): each step contributes a factor \(1+hL\). Therefore, \(\lvert\delta_n\rvert\le(1+hL)^n\lvert\delta_0\rvert\), as claimed. This proves the estimate under the stated derivative bound.
This estimate is a guaranteed upper bound, not a prediction that the difference will actually grow by that much. It uses the absolute derivative bound and can discard useful information about contraction. When the step sizes vary, the same argument gives the product bound \(\lvert\delta_n\rvert\le\lvert\delta_0\rvert\prod_{j=0}^{n-1}(1+h_jL_j)\), provided the relevant derivative bounds \(L_j\) hold at each step.
Worked Example: A Nonlinear Update Contracts Nearby Values
Worked Example: Comparing Euler Runs for the Logistic Slope
Consider \(y'=y(1-y)\) with \(h=0.5\), and start at \(Y_0=1\) and \(Z_0=0.9\). The update is \(G(y)=y+0.5y(1-y)\).
The first computation begins at \(Y_0=1\). Its slope is \(1(1-1)=0\), hence \(Y_1=1+0.5(0)=1\). Its slope at the next step is again \(0\), so \(Y_2=1\).
For the other computation, the initial slope is \(0.9(1-0.9)=0.9(0.1)=0.09\), and
At \(Z_1=0.945\), the slope is \(0.945(1-0.945)=0.945(0.055)=0.051975\). Thus
The absolute difference starts at \(\lvert 0.9-1\rvert=0.1\), becomes \(\lvert 0.945-1\rvert=0.055\), and then becomes \(\lvert 0.9709875-1\rvert=0.0290125\). Each step reduces the difference. The ratios are \(0.055/0.1=0.55\) and \(0.0290125/0.055=0.5275\). These values verify the contraction directly from the computed Euler updates.
Here \(f_y(y)=1-2y\). Near \(y=1\), the Euler-map derivative \(1+0.5(1-2y)\) has absolute value less than \(1\). The contraction in this example is therefore consistent with the local amplification factor.
Worked Example: A Negative Slope Can Still Amplify
Worked Example: A Large Step for a Nonlinear Slope
Let \(f(y)=-4y+y^2\), take \(h=1\), and compare initial values \(Y_0=0\) and \(Z_0=0.01\). The update is \(G(y)=y+f(y)=-3y+y^2\).
At \(Y_0=0\), the slope is \(f(0)=0\), so \(Y_1=0\). At \(Z_0=0.01\),
and therefore
The initial separation is \(0.01\), while the separation after one step is \(\lvert -0.0299-0\rvert=0.0299\), almost three times as large. More precisely, the signed difference changes from \(0.01\) to \(-0.0299\), a factor of \(-2.99\). The update-map derivative is \(G'(y)=-3+2y\), which is \(-3\) at \(y=0\). Its absolute value is \(3>1\), in agreement with the observed amplification. Direct substitution into the Euler update confirms both computed values.
A Common Mistake: Treating a Negative Derivative as Contraction
A negative value of \(f_y\) says that the slope tends to decrease as \(y\) increases. It does not, by itself, say that a forward Euler step reduces the size of a difference. The relevant quantity is the absolute value of \(1+h f_y\).
For the last example, an incorrect argument would say: “Since \(f_y(0)=-4\), the step contracts.” That conclusion ignores both the step size and the added \(1\) in the update-map derivative. With \(h=1\), the actual local factor is
The correction is to compute the full Euler-map factor and compare its absolute value with \(1\). A negative factor reverses the sign of a small difference; its magnitude determines whether that difference contracts or amplifies.
Using Amplification Analysis Carefully
The derivative of the slope can vary along a nonlinear trajectory, so a single derivative value may describe only one step or one local region. For a practical analysis:
- Identify the two Euler values being compared and confirm they use the same time grid and step sizes.
- Estimate \(f_y\) between the values at each step, rather than using only the slope \(f\) itself.
- Form the local factor \(1+h f_y\), or use a derivative bound to obtain a guaranteed estimate.
- Repeat the analysis along the computed path, since the amplification factor can change from step to step.
The factor can explain why a small difference grows or shrinks, but it does not alone establish that an Euler approximation is accurate. In particular, comparing two Euler computations measures their sensitivity to differing values; accuracy relative to the exact solution also depends on the discretization. Keeping these questions separate makes the role of amplification clear.
Check Your Understanding
Use the Euler update map and the difference recurrence to answer these questions.
- For a scalar equation \(y'=f(t,y)\), what is the derivative of the forward Euler update map with respect to \(y\)?
- For \(h=0.2\) and \(f_y(t_n,y)=-2\), does the local factor contract, preserve, or amplify a small difference?
- Why does a bound \(\lvert f_y\rvert\le L\) imply \(\lvert\delta_n\rvert\le(1+hL)^n\lvert\delta_0\rvert\) for fixed positive step size?
- In the logistic example, what were the absolute differences after zero, one, and two steps?
- Why is it not enough to know that \(f_y\) is negative when deciding whether an Euler step contracts?