---
title: Existence, Uniqueness, and Euler's Method
module: First-Order Equations
moduleNumber: 2
lessonNumber: 5
order: 205
summary: >
  Existence and uniqueness can be settled before any attempt to solve. The
  existence-uniqueness theorem gives sufficient conditions on f, and a standard
  example shows what fails when they do not hold. Picard's successive
  approximations build the solution as the limit of an iteration, and Euler's
  method turns the same tangent-line idea into a numerical procedure for the
  equations no formula reaches.
topics: [First-Order Equations]
draft: false
sources:
  - book: Boyce
    ref: "§2.8 The Existence and Uniqueness Theorem; §2.7 Numerical Approximations: Euler's Method; §2.4 (Theorem 2.4.2)"
  - book: Simmons
    ref: "Ch. 13 §69 The Method of Successive Approximations; §70 Picard's Theorem"
---

Most first-order initial value problems have no elementary solution, so two
questions come before any attempt to solve one: whether a solution exists, and
whether it is unique. Both matter: a model with no solution predicts nothing, and
a model with several solutions predicts nothing definite. The existence-uniqueness theorem
answers both under mild hypotheses, and its proof supplies a method — Picard
iteration — that also underlies the numerical approach when no formula is
available.

## The existence and uniqueness theorem

For the general nonlinear problem the guarantee is local and rests on the
continuity of $f$ together with its partial derivative in $y$.

> **Theorem (Existence and uniqueness).** Let $f$ and $\partial f / \partial y$ be
> continuous on a rectangle $\alpha < t < \beta$, $\gamma < y < \delta$ containing
> $(t_0, y_0)$. Then there is an interval $|t - t_0| < h$ on which the initial
> value problem
>
> $$
> y' = f(t, y), \qquad y(t_0) = y_0
> $$
>
> has exactly one solution $y = \phi(t)$.

Two features distinguish this from the
[linear theorem](/differential-equations/first-order/linear-first-order-integrating-factors).
First, it is _local_: the solution is promised only on some interval $|t - t_0| < h$,
possibly small, and the theorem gives no estimate of $h$. Second, the hypotheses
are _sufficient but not necessary_. Continuity of $f$ alone secures existence;
uniqueness needs the extra control on $\partial f/\partial y$. When the equation is
linear, $f = -p(t)y + g(t)$ has $\partial f/\partial y = -p(t)$, and the two
continuity requirements reduce to continuity of $p$ and $g$, recovering the
stronger global linear statement.

A geometric corollary of uniqueness: two solution curves cannot intersect. A
crossing point would be an initial condition satisfied by two different solutions,
contradicting the theorem. This is what forbids solutions from touching an
equilibrium in finite time in the
[phase-line analysis](/differential-equations/first-order/autonomous-and-population-dynamics).

## When uniqueness fails

The condition on $\partial f/\partial y$ cannot be dropped. Consider

$$
y' = y^{1/3}, \qquad y(0) = 0.
$$

Here $f = y^{1/3}$ is continuous everywhere, so a solution exists, but
$\partial f/\partial y = \tfrac13 y^{-2/3}$ blows up at $y = 0$ — exactly the
initial point. Uniqueness is not guaranteed, and indeed it fails. Separating
variables gives $y = \left(\tfrac{2}{3}t\right)^{3/2}$ for $t \geq 0$, but the
constant function $y \equiv 0$ is also a solution, as is its negative. Worse, for
any $t_0 > 0$ the function that stays at zero until $t_0$ and then lifts off along
$\pm\left(\tfrac23(t - t_0)\right)^{3/2}$ is a solution too. Infinitely many
solution curves pass through the origin, fanning out into a **solution funnel**.

$$
% caption: When the hypothesis on the y-derivative fails, uniqueness can fail:
% infinitely many solutions of y' = y^{1/3} leave the origin, some immediately,
% others after resting at zero for a while.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (-0.4,0) -- (5.2,0) node[right] {$t$};
  \draw[->, black] (0,-1.8) -- (0,1.9) node[above] {$y$};
  % the zero solution
  \draw[black, thick] (0,0) -- (5.0,0);
  % immediate lift-off, upper and lower
  \draw[thick] plot[domain=0:5, samples=50] (\x, {0.32*pow(\x,1.5)});
  \draw[thick] plot[domain=0:5, samples=50] (\x, {-0.32*pow(\x,1.5)});
  % delayed lift-off from t0 = 2.2
  \draw[thick] plot[domain=2.2:5, samples=40] (\x, {0.32*pow(\x-2.2,1.5)});
  \draw[thick] plot[domain=2.2:5, samples=40] (\x, {-0.32*pow(\x-2.2,1.5)});
  \fill[acc] (0,0) circle (2pt);
  \node[acc, anchor=north east] at (0,-0.1) {$(0$, $0)$};
  \node[black, anchor=south] at (3.6,0.02) {rest, then lift o\/f\/f};
\end{tikzpicture}
$$

Away from the $t$-axis the derivative $\partial f/\partial y$ is finite and
continuous, so through any point _not_ on the axis there is a unique solution. The
failure is confined to where the hypothesis breaks.

## The interval of existence

The number $h$ in the theorem is genuinely local, and its size can be estimated
from a bound on $f$. Suppose $f$ and $\partial f/\partial y$ are continuous on the
rectangle $R: |t| \le a$, $|y| \le b$ (translating the initial point to the
origin), and let $M$ bound $|f|$ on $R$. Each iterate in the construction below has
slope at most $M$ in magnitude, so its graph stays inside a bow-tie region of
slopes $\pm M$ through the origin. That region remains inside $R$ as long as
$|t| \le b/M$, giving

$$
h = \min\!\left(a, \frac{b}{M}\right).
$$

The solution is certain to exist at least on $|t| < h$. It may extend much
further, but the theorem alone promises only this.

$$
% caption: The existence rectangle R and the bow-tie of slope M through the
% origin; the solution is guaranteed as far as the bow-tie stays inside R, which
% fixes h = min(a, b/M).
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  % rectangle R
  \draw[black, thick] (-3,-1.6) rectangle (3,1.6);
  \node[black, anchor=north east] at (3,1.6) {$R$};
  \draw[black] (0,-1.6) node[below]{}; 
  \node[black, anchor=north] at (3,-1.6) {$t = a$};
  \node[black, anchor=east] at (-3,1.35) {$y = b$};
  % axes
  \draw[black] (-3,0) -- (3,0);
  \draw[black] (0,-1.6) -- (0,1.6);
  % bow-tie: lines of slope M=0.8 through origin, shaded region
  \fill[acc!12] (0,0) -- (2,1.6) -- (-2,1.6) -- (0,0) -- (2,-1.6) -- (-2,-1.6) -- cycle;
  \draw[black, thick] (-2,-1.6) -- (2,1.6);
  \draw[black, thick] (-2,1.6) -- (2,-1.6);
  \draw[black, dashed] (2,-1.6) -- (2,1.6);
  \node[black, anchor=north] at (2,-1.65) {$t = \tfrac{b}{M}$};
  \fill[black] (0,0) circle (1.8pt);
\end{tikzpicture}
$$

## Picard's successive approximations

The proof of existence is constructive. Integrating $y' = f(t,y)$ from the initial
point converts the initial value problem $y' = f(t,y)$, $y(0) = 0$ into the
equivalent **integral equation**

$$
\phi(t) = \int_0^t f\big(s, \phi(s)\big)\,\d s.
$$

Any solution of one solves the other. Picard's idea is to solve the integral
equation by iteration: start from a guess $\phi_0(t) = 0$ and feed each
approximation back through the integral to produce the next.[^simmons-picard]

$$
\phi_{n+1}(t) = \int_0^t f\big(s, \phi_n(s)\big)\,\d s,
\qquad n = 0, 1, 2, \dots
$$

Each iterate satisfies the initial condition; none generally satisfies the
equation, but the sequence converges to one that does.

> **Worked example.** For $y' = 2t(1 + y)$, $y(0) = 0$, the integral equation is
> $\phi(t) = \int_0^t 2s(1 + \phi(s))\,\d s$. Starting from $\phi_0 = 0$ and
> feeding each iterate back through the integral,
>
> $$
> \phi_1 = \int_0^t 2s\,\d s = t^2,
> \qquad
> \phi_2 = \int_0^t 2s(1 + s^2)\,\d s = t^2 + \frac{t^4}{2},
> $$
>
> $$
> \phi_3 = \int_0^t 2s\!\left(1 + s^2 + \frac{s^4}{2}\right)\d s = t^2 + \frac{t^4}{2} + \frac{t^6}{2\cdot 3}.
> $$
>
> By induction $\phi_n(t) = \sum_{k=1}^{n} \dfrac{t^{2k}}{k!}$, the partial sum of a
> series converging for all $t$ with limit
>
> $$
> \phi(t) = \sum_{k=1}^{\infty}\frac{t^{2k}}{k!} = e^{t^2} - 1,
> $$
>
> the exact solution. The iterates agree with it on a widening interval as $n$
> grows.

$$
% caption: Picard iterates for y' = 2t(1+y): each successive approximation tracks
% the true solution over a wider interval, converging to it everywhere.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (-0.2,0) -- (3.0,0) node[right] {$t$};
  \draw[->, black] (0,-0.2) -- (0,2.9) node[above] {$y$};
  % true solution 0.5(e^{t^2}-1)
  \draw[acc, very thick] plot[domain=0:1.35, samples=60] (\x, {0.5*(exp(\x*\x)-1)});
  \node[acc, anchor=east] at (1.32,2.4) {limit};
  % phi_2 = t^2 + t^4/2  (closer to the limit)
  \draw[black, thick] plot[domain=0:1.35, samples=40] (\x, {0.5*(\x*\x + \x*\x*\x*\x/2)});
  \node[black, anchor=west] at (1.4,1.55) {$n=2$};
  % phi_1 = t^2  (farthest)
  \draw[black, thick] plot[domain=0:1.35, samples=40] (\x, {0.5*\x*\x});
  \node[black, anchor=west] at (1.4,0.85) {$n=1$};
\end{tikzpicture}
$$

The convergence proof rests on a **Lipschitz condition**: if
$\partial f/\partial y$ is bounded by $K$ on the rectangle, then
$|f(t, y_1) - f(t, y_2)| \le K|y_1 - y_2|$, which controls how fast successive
iterates separate and forces the series of differences to converge. This same
condition can replace continuity of $\partial f/\partial y$ in the theorem's
hypotheses.

## Euler's method

Picard iteration proves solutions exist but rarely computes them past a few steps.
For actual numbers, Euler's method (1768) turns the tangent line into a stepping
rule. The solution through $(t_0, y_0)$ has known slope $f(t_0, y_0)$ there, so its
tangent line

$$
y = y_0 + f(t_0, y_0)(t - t_0)
$$

approximates it for a short step. Advancing to $t_1 = t_0 + h$ gives an approximate
value $y_1$; from $(t_1, y_1)$ the slope $f(t_1, y_1)$ gives the next segment, and
so on. With uniform step $h$ the rule is

$$
y_{n+1} = y_n + f(t_n, y_n)\,h,
\qquad n = 0, 1, 2, \dots
$$

The result is a polygonal path of linked tangent segments approximating the true curve.

$$
% caption: Euler's method links tangent segments: at each step the slope f(t_n,
% y_n) extends the path by one interval, and the polygon drifts from the true
% solution as errors accumulate.
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (-0.2,0) -- (5.6,0) node[right] {$t$};
  \draw[->, black] (0,-0.2) -- (0,3.2) node[above] {$y$};
  % true solution (a concave curve)
  \draw[black, very thick] plot[domain=0:5.2, samples=60] (\x, {2.9*(1 - exp(-0.55*\x))});
  \node[black, anchor=south] at (4.7,2.55) {true solution};
  % euler polygon under it (steps of h=1.3)
  \coordinate (e0) at (0,0);
  \coordinate (e1) at (1.3,{0 + 1.3*1.6});
  % recompute simple stepping visually: slopes decreasing
  \coordinate (p0) at (0,0);
  \coordinate (p1) at (1.3,1.5);
  \coordinate (p2) at (2.6,2.35);
  \coordinate (p3) at (3.9,2.85);
  \coordinate (p4) at (5.2,3.15);
  \draw[acc, very thick] (p0) -- (p1) -- (p2) -- (p3) -- (p4);
  \foreach \p in {p0,p1,p2,p3,p4} \fill[acc] (\p) circle (2pt);
  \node[black, anchor=north west] at (1.3,1.45) {$y_1$};
  \node[black, anchor=north west] at (2.6,2.3) {$y_2$};
  % step markers
  \draw[black, dashed] (1.3,0) -- (1.3,1.5);
  \draw[black, dashed] (2.6,0) -- (2.6,2.35);
  \node[black, anchor=north] at (0.65,-0.05) {$h$};
\end{tikzpicture}
$$

> **Worked example.** Apply Euler's method to $y' = 3 - 2t - 0.5y$, $y(0) = 1$,
> with step $h = 0.2$. Each step reads the slope $f(t_n, y_n) = 3 - 2t_n - 0.5y_n$
> and advances $y_{n+1} = y_n + h\,f(t_n, y_n)$. The first slope is
> $f(0, 1) = 2.5$, so $y_1 = 1 + 0.2(2.5) = 1.5$; then $f(0.2, 1.5) = 1.85$ gives
> $y_2 = 1.5 + 0.2(1.85) = 1.87$, and so on. The exact solution
> $y = 14 - 4t - 13e^{-t/2}$ supplies the error at each node.
>
> | $t_n$ | slope $f(t_n, y_n)$ | Euler $y_n$ | exact $y(t_n)$ | error |
> | --- | --- | --- | --- | --- |
> | $0.0$ | $2.500$ | $1.0000$ | $1.0000$ | $0.0000$ |
> | $0.2$ | $1.850$ | $1.5000$ | $1.4371$ | $0.0629$ |
> | $0.4$ | $1.265$ | $1.8700$ | $1.7565$ | $0.1135$ |
> | $0.6$ | $0.739$ | $2.1230$ | $1.9694$ | $0.1536$ |
> | $0.8$ | $0.265$ | $2.2707$ | $2.0858$ | $0.1849$ |
> | $1.0$ | $-$ | $2.3236$ | $2.1151$ | $0.2085$ |
>
> The error grows at every node: the global truncation error accumulates in
> proportion to the number of steps taken.

Two kinds of error accumulate:

- **Local truncation error** is the mistake made in a single step, from replacing
  the curve by its tangent. For Euler's method it is proportional to $h^2$.
- **Global truncation error** is the total deviation at a fixed $t$ after many
  steps. Because the number of steps grows as $1/h$, the global error is
  proportional to $h$: Euler's method is **first order**. Halving the step size
  roughly halves the error.

First-order accuracy is coarse. The
[Runge-Kutta methods](/differential-equations/numerical/euler-and-runge-kutta)
sample the slope at several points per step to reach far higher order at
comparable cost, but every one of them is a refinement of the tangent-stepping
idea Euler introduced.

## Summary

- The **existence-uniqueness theorem** guarantees a single local solution when $f$
  and $\partial f/\partial y$ are continuous near the initial point; continuity of
  $f$ alone gives existence but not uniqueness.
- Uniqueness can genuinely **fail**: $y' = y^{1/3}$, $y(0) = 0$ has infinitely many
  solutions, precisely because $\partial f/\partial y$ is unbounded there.
- The **interval of existence** is only local, bounded below by
  $h = \min(a, b/M)$ from a bound $M$ on $f$ over a rectangle.
- **Picard iteration** proves existence by converging the sequence
  $\phi_{n+1} = \int_0^t f(s, \phi_n)\,\d s$ to the solution, under a Lipschitz
  condition.
- **Euler's method** computes solutions numerically by linked tangent steps
  $y_{n+1} = y_n + f(t_n, y_n)h$, with global error proportional to $h$.

[^simmons-picard]: **Simmons**, _Differential Equations_, Ch. 13 §69–§70 — the method of successive approximations and Picard's theorem: reformulating the initial value problem as an integral equation and iterating to the solution under a Lipschitz condition. The existence rectangle, non-uniqueness example, and Euler's method follow Boyce §2.8, §2.4, and §2.7.
