Euler Method

From ProofWiki
Jump to: navigation, search

Proof Technique

Consider the first order ODE:

$(1): \quad y' = \map f {x, y}$ subject to the initial condition $\map y {x_0} = y_0$

where $\map f {x, y}$ is a continuous real function.

Let $\map y x$ be the solution of $(1)$.

For all $n \in \N_{>0}$, we define:

$x_n = x_{n - 1} + h$

where $h \in \R_{>0}$.

Then for all $n \in \N_{>0}$ such that $x_n$ is in the domain of $y$:

$y_{n + 1} = y_n + h \map f {x_n, y_n}$

is an approximation to $\map y {x_{n + 1} }$.


Let $(1)$ be integrated with respect to $x$ from $x_0$ to $x_1$.

\((2):\quad\) \(\displaystyle \map y {x_1} - \map y {x_0}\) \(=\) \(\displaystyle \int_{x_0}^{x_1} \map f {x, y} \rd x\)
\(\displaystyle \leadsto \ \ \) \(\displaystyle y \left({x_1}\right)\) \(=\) \(\displaystyle y_0 + \int_{x_0}^{x_1} f \left({x, y}\right) \, \mathrm d x\)
Assuming that the integrand in $(2)$ varies little over the interval $\closedint {x_0} {x_1}$:
\(\displaystyle \leadsto \ \ \) \(\displaystyle \map y {x_1}\) \(\approx\) \(\displaystyle y_0 + \map f {x_0, y_0} \paren {x_1 - x_0}\)
\(\displaystyle \) \(=\) \(\displaystyle y_0 + h \, \map f {x_0, y_0}\)

Because $f$ is continuous, the assumption holds.

By making $h$ small, the difference:

$y_0 + h \, \map f {x_0, y_0} - \map f {x_1, y_1}$

can be made arbitrarily small.

$y_{n + 1}$ can be defined recursively:

\(\displaystyle \map y {x_{n + 1} } - \map y {x_n}\) \(=\) \(\displaystyle \int_{x_n}^{x_{n + 1} } \map f {x, y} \rd x\)
\(\displaystyle \leadsto \ \ \) \(\displaystyle \map y {x_{n + 1} }\) \(=\) \(\displaystyle \map y {x_n} + \int_{x_n}^{x_{n + 1} } \map f {x, y} \rd x\)
\(\displaystyle \) \(\approx\) \(\displaystyle \map y {x_n} + \map f {x_n, y_n} \paren {x_{n + 1} - x_n}\)


The errors accumulate; with increasing $n$ the values of $y_{n + 1}$ are based on increasingly inaccurate values of $y_n$.

These can be reduced by making $h$ smaller, so the inaccuracies can be reduced by increasing the computation needed.


Source of Name

This entry was named for Leonhard Paul Euler.