Picard–Lindelöf Theorem
Statement
Consider the initial value problem
where is continuous in and Lipschitz in : there exists such that
for all in some interval around and all near .
Theorem (Picard–Lindelöf): Under these hypotheses there exists and a unique continuously differentiable function satisfying the IVP.
The proof constructs as the fixed point of the Picard operator
showing that a sufficiently high iterate is a contraction on an appropriate function space.
Visualization
Picard iteration for , (exact solution ):
Start from the constant guess and apply repeatedly.
| Iterate | Formula | Value at |
|---|---|---|
| constant | ||
| exact |
Each iterate is the partial Taylor sum of ; the Picard contraction forces convergence.
Proof Sketch
- Integral reformulation. solves the IVP iff , i.e. is a fixed point of .
- Function space. Work on with the sup-norm; this is a complete metric space.
- Contraction estimate. For small enough , . Choose to make .
- Banach fixed-point theorem. A contraction on a complete metric space has a unique fixed point, which the Picard iterates converge to.
- Uniqueness. Two fixed points satisfy ; since , both must coincide.
Connections
The Lipschitz condition is the same regularity assumed in the Mean Value TheoremMean Value TheoremThere exists a point where the instantaneous rate of change equals the average rate of changeRead more → proof; the Banach fixed-point step is the analytic analogue of the contracting-map argument behind Brouwer Fixed-Point TheoremBrouwer Fixed-Point TheoremEvery continuous map from a compact convex set to itself has a fixed pointRead more →.
Lean4 Proof
import Mathlib.Analysis.ODE.PicardLindelof
/-!
Picard–Lindelöf in Mathlib lives in `IsPicardLindelof`.
We verify the Picard iterates for y' = y, y(0) = 1 — each iterate
is the n-th partial Taylor sum for exp.
-/
/-- The n-th Picard iterate for y' = y starting from y_0(t) = 1. -/
noncomputable def picardExp (n : ℕ) (t : ℝ) : ℝ :=
∑ k ∈ Finset.range (n + 1), t ^ k / k.factorial
theorem picardExp_zero (t : ℝ) : picardExp 0 t = 1 := by
simp [picardExp]
/-- picardExp 1 t = 1 + t (first Picard iterate). -/
theorem picardExp_one (t : ℝ) : picardExp 1 t = 1 + t := by
simp [picardExp, Finset.sum_range_succ]
/-- The Picard iterates converge to exp t: picardExp n agrees with the n-th
partial sum of the Taylor series for exp. -/
theorem picardExp_eq_partialSum (n : ℕ) (t : ℝ) :
picardExp n t = ∑ k ∈ Finset.range (n + 1), t ^ k / k.factorial := rflReferenced by
- Linear ODE General SolutionDifferential Equations
- WronskianDifferential Equations
- Heat Equation Maximum PrincipleDifferential Equations