Documentation

Mathlib.Analysis.ODE.ExistUnique

Existence and uniqueness of solutions to ODEs #

This file collects the public-facing existence and uniqueness theorems for solutions to ODEs in normed spaces.

Main results #

Tags #

integral curve, vector field, existence, uniqueness, Picard-Lindelöf, Gronwall

Existence of solutions to ODEs #

theorem IsPicardLindelof.exists_eq_forall_mem_Icc_hasDerivWithinAt {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {tmin tmax : } {t₀ : (Set.Icc tmin tmax)} {x₀ x : E} {a r L K : NNReal} (hf : IsPicardLindelof f t₀ x₀ a r L K) (hx : x Metric.closedBall x₀ r) :
∃ (α : E), α t₀ = x tSet.Icc tmin tmax, HasDerivWithinAt α (f t (α t)) (Set.Icc tmin tmax) t

Picard-Lindelöf (Cauchy-Lipschitz) theorem, differential form. This version shows the existence of a local solution whose initial point x may be different from the centre x₀ of the closed ball within which the properties of the vector field hold.

theorem IsPicardLindelof.exists_eq_forall_mem_Icc_hasDerivWithinAt₀ {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {tmin tmax : } {t₀ : (Set.Icc tmin tmax)} {x₀ : E} {a L K : NNReal} (hf : IsPicardLindelof f t₀ x₀ a 0 L K) :
∃ (α : E), α t₀ = x₀ tSet.Icc tmin tmax, HasDerivWithinAt α (f t (α t)) (Set.Icc tmin tmax) t

Picard-Lindelöf (Cauchy-Lipschitz) theorem, differential form.

theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_hasDerivWithinAt_lipschitzOnWith {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {tmin tmax : } {t₀ : (Set.Icc tmin tmax)} {x₀ : E} {a r L K : NNReal} (hf : IsPicardLindelof f t₀ x₀ a r L K) :
∃ (α : EE), (∀ xMetric.closedBall x₀ r, α x t₀ = x tSet.Icc tmin tmax, HasDerivWithinAt (α x) (f t (α x t)) (Set.Icc tmin tmax) t) ∃ (L' : NNReal), tSet.Icc tmin tmax, LipschitzOnWith L' (fun (x : E) => α x t) (Metric.closedBall x₀ r)

Picard-Lindelöf (Cauchy-Lipschitz) theorem, differential form. This version shows the existence of a local flow and that it is Lipschitz continuous in the initial point.

theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_hasDerivWithinAt_continuousOn {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {tmin tmax : } {t₀ : (Set.Icc tmin tmax)} {x₀ : E} {a r L K : NNReal} (hf : IsPicardLindelof f t₀ x₀ a r L K) :
∃ (α : E × E), (∀ xMetric.closedBall x₀ r, α (x, t₀) = x tSet.Icc tmin tmax, HasDerivWithinAt (fun (x_1 : ) => α (x, x_1)) (f t (α (x, t))) (Set.Icc tmin tmax) t) ContinuousOn α (Metric.closedBall x₀ r ×ˢ Set.Icc tmin tmax)

Picard-Lindelöf (Cauchy-Lipschitz) theorem, differential form. This version shows the existence of a local flow and that it is continuous on its domain as a (partial) map E × ℝ → E.

theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_forall_mem_Icc_hasDerivWithinAt {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {tmin tmax : } {t₀ : (Set.Icc tmin tmax)} {x₀ : E} {a r L K : NNReal} (hf : IsPicardLindelof f t₀ x₀ a r L K) :
∃ (α : EE), xMetric.closedBall x₀ r, α x t₀ = x tSet.Icc tmin tmax, HasDerivWithinAt (α x) (f t (α x t)) (Set.Icc tmin tmax) t

Picard-Lindelöf (Cauchy-Lipschitz) theorem, differential form. This version shows the existence of a local flow.

$C^1$ vector field #

theorem ContDiffAt.exists_forall_mem_closedBall_exists_eq_forall_mem_Ioo_hasDerivAt {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {x₀ : E} (hf : ContDiffAt 1 f x₀) (t₀ : ) :
r > 0, ε > 0, xMetric.closedBall x₀ r, ∃ (α : E), α t₀ = x tSet.Ioo (t₀ - ε) (t₀ + ε), HasDerivAt α (f (α t)) t

If a vector field f : E → E is continuously differentiable at x₀ : E, then it admits an integral curve α : ℝ → E defined on an open interval, with initial condition α t₀ = x, where x may be different from x₀.

theorem ContDiffAt.exists_forall_mem_closedBall_exists_eq_forall_mem_Ioo_hasDerivAt₀ {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {x₀ : E} (hf : ContDiffAt 1 f x₀) (t₀ : ) :
∃ (α : E), α t₀ = x₀ ε > 0, tSet.Ioo (t₀ - ε) (t₀ + ε), HasDerivAt α (f (α t)) t

If a vector field f : E → E is continuously differentiable at x₀ : E, then it admits an integral curve α : ℝ → E defined on an open interval, with initial condition α t₀ = x₀.

theorem ContDiffAt.exists_eventually_eq_hasDerivAt {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {f : EE} {x₀ : E} (hf : ContDiffAt 1 f x₀) (t₀ : ) :
∃ (α : EE), ∀ᶠ (xt : E × ) in nhds x₀ ×ˢ nhds t₀, α xt.1 t₀ = xt.1 HasDerivAt (α xt.1) (f (α xt.1 xt.2)) xt.2

If a vector field f : E → E is continuously differentiable at x₀ : E, then it admits a flow α : E → ℝ → E defined on an open domain, with initial condition α x t₀ = x for all x within the domain.

Uniqueness of solutions to ODEs #

theorem ODE_solution_unique_of_mem_Icc_right {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {a b : } (hv : tSet.Ico a b, LipschitzOnWith K (v t) (s t)) (hf : ContinuousOn f (Set.Icc a b)) (hf' : tSet.Ico a b, HasDerivWithinAt f (v t (f t)) (Set.Ici t) t) (hfs : tSet.Ico a b, f t s t) (hg : ContinuousOn g (Set.Icc a b)) (hg' : tSet.Ico a b, HasDerivWithinAt g (v t (g t)) (Set.Ici t) t) (hgs : tSet.Ico a b, g t s t) (ha : f a = g a) :
Set.EqOn f g (Set.Icc a b)

There exists only one solution of an ODE $\dot x=v(t, x)$ in a set s ⊆ ℝ × E with a given initial value provided that the RHS is Lipschitz continuous in x within s, and we consider only solutions included in s.

This version shows uniqueness in a closed interval Icc a b, where a is the initial time.

theorem ODE_solution_unique_of_mem_Icc_left {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {a b : } (hv : tSet.Ioc a b, LipschitzOnWith K (v t) (s t)) (hf : ContinuousOn f (Set.Icc a b)) (hf' : tSet.Ioc a b, HasDerivWithinAt f (v t (f t)) (Set.Iic t) t) (hfs : tSet.Ioc a b, f t s t) (hg : ContinuousOn g (Set.Icc a b)) (hg' : tSet.Ioc a b, HasDerivWithinAt g (v t (g t)) (Set.Iic t) t) (hgs : tSet.Ioc a b, g t s t) (hb : f b = g b) :
Set.EqOn f g (Set.Icc a b)

A time-reversed version of ODE_solution_unique_of_mem_Icc_right. Uniqueness is shown in a closed interval Icc a b, where b is the "initial" time.

theorem ODE_solution_unique_of_mem_Icc {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {a b t₀ : } (hv : tSet.Ioo a b, LipschitzOnWith K (v t) (s t)) (ht : t₀ Set.Ioo a b) (hf : ContinuousOn f (Set.Icc a b)) (hf' : tSet.Ioo a b, HasDerivAt f (v t (f t)) t) (hfs : tSet.Ioo a b, f t s t) (hg : ContinuousOn g (Set.Icc a b)) (hg' : tSet.Ioo a b, HasDerivAt g (v t (g t)) t) (hgs : tSet.Ioo a b, g t s t) (heq : f t₀ = g t₀) :
Set.EqOn f g (Set.Icc a b)

A version of ODE_solution_unique_of_mem_Icc_right for uniqueness in a closed interval whose interior contains the initial time.

theorem ODE_solution_unique_of_mem_Ioo {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {a b t₀ : } (hv : tSet.Ioo a b, LipschitzOnWith K (v t) (s t)) (ht : t₀ Set.Ioo a b) (hf : tSet.Ioo a b, HasDerivAt f (v t (f t)) t f t s t) (hg : tSet.Ioo a b, HasDerivAt g (v t (g t)) t g t s t) (heq : f t₀ = g t₀) :
Set.EqOn f g (Set.Ioo a b)

A version of ODE_solution_unique_of_mem_Icc for uniqueness in an open interval.

theorem ODE_solution_unique_of_eventually {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {t₀ : } (hv : ∀ᶠ (t : ) in nhds t₀, LipschitzOnWith K (v t) (s t)) (hf : ∀ᶠ (t : ) in nhds t₀, HasDerivAt f (v t (f t)) t f t s t) (hg : ∀ᶠ (t : ) in nhds t₀, HasDerivAt g (v t (g t)) t g t s t) (heq : f t₀ = g t₀) :
f =ᶠ[nhds t₀] g

Local uniqueness of ODE solutions.

theorem ODE_solution_unique {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {K : NNReal} {f g : E} {a b : } (hv : ∀ (t : ), LipschitzWith K (v t)) (hf : ContinuousOn f (Set.Icc a b)) (hf' : tSet.Ico a b, HasDerivWithinAt f (v t (f t)) (Set.Ici t) t) (hg : ContinuousOn g (Set.Icc a b)) (hg' : tSet.Ico a b, HasDerivWithinAt g (v t (g t)) (Set.Ici t) t) (ha : f a = g a) :
Set.EqOn f g (Set.Icc a b)

There exists only one solution of an ODE $\dot x=v(t, x)$ with a given initial value provided that the RHS is Lipschitz continuous in x.

theorem ODE_solution_unique_univ {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {v : EE} {s : Set E} {K : NNReal} {f g : E} {t₀ : } (hv : ∀ (t : ), LipschitzOnWith K (v t) (s t)) (hf : ∀ (t : ), HasDerivAt f (v t (f t)) t f t s t) (hg : ∀ (t : ), HasDerivAt g (v t (g t)) t g t s t) (heq : f t₀ = g t₀) :
f = g

There exists only one global solution to an ODE $\dot x=v(t, x)$ with a given initial value provided that the RHS is Lipschitz continuous.