Documentation

LeanPool.NavierStokesAndEuler.Euler.Foundations.PacketPerturbation

Relative perturbation estimates for the finite-dimensional scalar ODE in the Euler packet proposal. These results do not assert the PDE packet lemma.

theorem EulerPacketPerturbation.integral_absorb {g : } {a b A K : } (hab : a b) (hg : ContinuousOn g (Set.Icc a b)) (hgn : tSet.Icc a b, 0 g t) (hK : 0 K) (hsmall : K * (b - a) 1 / 2) (hineq : tSet.Icc a b, g t A + K * (s : ) in a..t, g s) (t : ) :
t Set.Icc a bg t 2 * A

A compact-interval Volterra absorption estimate with an explicit factor of two and no exponential loss.

theorem EulerPacketPerturbation.relative_integral_absorb {f U : } {a b A K : } (hab : a b) (hf : ContinuousOn f (Set.Icc a b)) (hU : ContinuousOn U (Set.Icc a b)) (hfn : tSet.Icc a b, 0 f t) (hUp : tSet.Icc a b, 0 < U t) (hK : 0 K) (hsmall : K * (b - a) 1 / 2) (hineq : tSet.Icc a b, f t U t * (A + K * (s : ) in a..t, f s / U s)) (t : ) :
t Set.Icc a bf t 2 * A * U t

Absorbing a Duhamel inequality after division by a positive reference solution. This preserves relative rather than absolute control.

theorem EulerPacketPerturbation.forced_wronskian_derivative {D c u u₁ Y Y₁ f g : } {t : } (hu : HasDerivAt u (u₁ t) t) (hfu : HasDerivAt (fun (s : ) => D s * u₁ s) (c t * u t) t) (hY : HasDerivAt Y (Y₁ t + f t) t) (hfY : HasDerivAt (fun (s : ) => D s * Y₁ s) (c t * Y t + D t * g t) t) :
HasDerivAt (fun (s : ) => u s * (D s * Y₁ s) - D s * u₁ s * Y s) (D t * (u t * g t - u₁ t * f t)) t

The Wronskian of a homogeneous solution and a forced solution obeys an exact first-order forcing identity.

theorem EulerPacketPerturbation.forced_wronskian_integral {D c u u₁ Y Y₁ f g : } {a b : } (hu : tSet.Icc a b, HasDerivAt u (u₁ t) t) (hfu : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * u₁ s) (c t * u t) t) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfY : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * Y₁ s) (c t * Y t + D t * g t) t) (hDc : ContinuousOn D (Set.Icc a b)) (hu₁c : ContinuousOn u₁ (Set.Icc a b)) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (t : ) :
t Set.Icc a bu t * (D t * Y₁ t) - D t * u₁ t * Y t = u a * (D a * Y₁ a) - D a * u₁ a * Y a + (s : ) in a..t, D s * (u s * g s - u₁ s * f s)

The integrated forced Wronskian identity.

theorem EulerPacketPerturbation.forced_variation_of_constants {D c u u₁ v v₁ Y Y₁ f g : } {a b : } (hu : tSet.Icc a b, HasDerivAt u (u₁ t) t) (hv : tSet.Icc a b, HasDerivAt v (v₁ t) t) (hfu : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * u₁ s) (c t * u t) t) (hfv : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * v₁ s) (c t * v t) t) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfY : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * Y₁ s) (c t * Y t + D t * g t) t) (hDc : ContinuousOn D (Set.Icc a b)) (hu₁c : ContinuousOn u₁ (Set.Icc a b)) (hv₁c : ContinuousOn v₁ (Set.Icc a b)) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (hW0 : u a * (D a * v₁ a) - D a * u₁ a * v a = 1) (t : ) :
t Set.Icc a bhave A := u a * (D a * Y₁ a) - D a * u₁ a * Y a + (s : ) in a..t, D s * (u s * g s - u₁ s * f s); have B := v a * (D a * Y₁ a) - D a * v₁ a * Y a + (s : ) in a..t, D s * (v s * g s - v₁ s * f s); Y t = v t * A - u t * B Y₁ t = v₁ t * A - u₁ t * B

Variation of constants from two homogeneous solutions whose Wronskian flux is normalized to one. This handles forcing in both state components.

def EulerPacketPerturbation.kernel11 (D u u₁ v v₁ : ) (t s : ) :

First displacement component of the scalar fundamental propagator.

Equations
Instances For
    def EulerPacketPerturbation.kernel12 (D u v : ) (t s : ) :

    First velocity component of the scalar fundamental propagator.

    Equations
    Instances For
      def EulerPacketPerturbation.kernel21 (D u₁ v₁ : ) (t s : ) :

      Second displacement component of the scalar fundamental propagator.

      Equations
      Instances For
        def EulerPacketPerturbation.kernel22 (D u u₁ v v₁ : ) (t s : ) :

        Second velocity component of the scalar fundamental propagator.

        Equations
        Instances For
          theorem EulerPacketPerturbation.forced_kernel_formula {D c u u₁ v v₁ Y Y₁ f g : } {a b : } (hu : tSet.Icc a b, HasDerivAt u (u₁ t) t) (hv : tSet.Icc a b, HasDerivAt v (v₁ t) t) (hfu : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * u₁ s) (c t * u t) t) (hfv : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * v₁ s) (c t * v t) t) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfY : tSet.Icc a b, HasDerivAt (fun (s : ) => D s * Y₁ s) (c t * Y t + D t * g t) t) (hDc : ContinuousOn D (Set.Icc a b)) (hu₁c : ContinuousOn u₁ (Set.Icc a b)) (hv₁c : ContinuousOn v₁ (Set.Icc a b)) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (hW0 : u a * (D a * v₁ a) - D a * u₁ a * v a = 1) (t : ) :
          t Set.Icc a bY t = kernel11 D u u₁ v v₁ t a * Y a + kernel12 D u v t a * Y₁ a + (s : ) in a..t, kernel11 D u u₁ v v₁ t s * f s + kernel12 D u v t s * g s Y₁ t = kernel21 D u₁ v₁ t a * Y a + kernel22 D u u₁ v v₁ t a * Y₁ a + (s : ) in a..t, kernel21 D u₁ v₁ t s * f s + kernel22 D u u₁ v v₁ t s * g s

          Duhamel's formula in component form, with an explicitly defined fundamental kernel.

          theorem EulerPacketPerturbation.linear_combination_solution {D c u u₁ v v₁ : } {t A B : } (hu : HasDerivAt u (u₁ t) t) (hv : HasDerivAt v (v₁ t) t) (hfu : HasDerivAt (fun (s : ) => D s * u₁ s) (c t * u t) t) (hfv : HasDerivAt (fun (s : ) => D s * v₁ s) (c t * v t) t) :
          HasDerivAt (fun (s : ) => A * u s + B * v s) (A * u₁ t + B * v₁ t) t HasDerivAt (fun (s : ) => D s * (A * u₁ s + B * v₁ s)) (c t * (A * u t + B * v t)) t

          Linear combinations of homogeneous scalar solutions are homogeneous.

          theorem EulerPacketPerturbation.equation30_kernel_bound {ε Θ : } {U U₁ V V₁ : } ( : 0 < ε) (hεsmall : ε 1 / 4) ( : 1 Θ) (hU : ∀ (t : ), 0 tHasDerivAt U (U₁ t) t) (hV : ∀ (t : ), 0 tHasDerivAt V (V₁ t) t) (hfluxU : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * U₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * U t) t) (hfluxV : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * V₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * V t) t) (hU0 : U 0 = 1) (hU₁0 : U₁ 0 = 0) (hV₁0 : V₁ 0 = 1) (s t : ) :
          0 ss tt Θhave D := fun (r : ) => 1 + (ε ^ 2 * r ^ 2) ^ 2; |kernel11 D U U₁ V V₁ t s| + |kernel21 D U₁ V₁ t s| 20 * Θ ^ 8 * (U t / U s) |kernel12 D U V t s| + |kernel22 D U U₁ V V₁ t s| 20 * Θ ^ 8 * (U t / U s)

          The ideal fundamental kernel inherits the relative propagator bound in each column.

          theorem EulerPacketPerturbation.two_column_bound {a b c d x y C : } (h1 : |a| + |c| C) (h2 : |b| + |d| C) :
          |a * x + b * y| + |c * x + d * y| C * (|x| + |y|)

          The induced sum-of-absolute-values bound from two column bounds.

          theorem EulerPacketPerturbation.kernel_integral_bound {K11 K12 K21 K22 f g U : } {a b y0 y₁0 y y₁ C : } (hab : a b) (h11 : ContinuousOn K11 (Set.Icc a b)) (h12 : ContinuousOn K12 (Set.Icc a b)) (h21 : ContinuousOn K21 (Set.Icc a b)) (h22 : ContinuousOn K22 (Set.Icc a b)) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (hUc : ContinuousOn U (Set.Icc a b)) (hUp : sSet.Icc a b, 0 < U s) (hcol1 : sSet.Icc a b, |K11 s| + |K21 s| C * (U b / U s)) (hcol2 : sSet.Icc a b, |K12 s| + |K22 s| C * (U b / U s)) (hy : y = K11 a * y0 + K12 a * y₁0 + (s : ) in a..b, K11 s * f s + K12 s * g s) (hy₁ : y₁ = K21 a * y0 + K22 a * y₁0 + (s : ) in a..b, K21 s * f s + K22 s * g s) :
          |y| + |y₁| C * (U b / U a) * (|y0| + |y₁0|) + C * U b * (s : ) in a..b, (|f s| + |g s|) / U s

          Passing from Duhamel's formula and relative kernel bounds to a scalar relative integral inequality, with the forcing in both components.

          theorem EulerPacketPerturbation.equation30_forced_bound {ε Θ a b : } {U U₁ V V₁ Y Y₁ f g : } ( : 0 < ε) (hεsmall : ε 1 / 4) ( : 1 Θ) (ha : 0 a) (hb : b Θ) (hU : ∀ (t : ), 0 tHasDerivAt U (U₁ t) t) (hV : ∀ (t : ), 0 tHasDerivAt V (V₁ t) t) (hfluxU : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * U₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * U t) t) (hfluxV : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * V₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * V t) t) (hU0 : U 0 = 1) (hU₁0 : U₁ 0 = 0) (hV₁0 : V₁ 0 = 1) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfluxY : tSet.Icc a b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Y₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Y t + (1 + (ε ^ 2 * t ^ 2) ^ 2) * g t) t) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (t : ) :
          t Set.Icc a b|Y t| + |Y₁ t| 20 * Θ ^ 8 * (U t / U a) * (|Y a| + |Y₁ a|) + 20 * Θ ^ 8 * U t * (s : ) in a..t, (|f s| + |g s|) / U s

          Duhamel's inequality for the exact scalar ODE, measured relative to the zero-slope reference solution. The forcing may occur in both components.

          theorem EulerPacketPerturbation.continuousOn_of_flux {D f : } {S : Set } (hD : ContinuousOn D S) (hf : ContinuousOn (fun (t : ) => D t * f t) S) (hDn : tS, D t 0) :

          Continuity of the second state component follows from continuity of its nonvanishing flux coefficient and of the flux.

          theorem EulerPacketPerturbation.equation30_perturbed_bound {ε Θ a b δ : } {U U₁ V V₁ Y Y₁ f g : } ( : 0 < ε) (hεsmall : ε 1 / 4) ( : 1 Θ) (ha : 0 a) (hab : a b) (hb : b Θ) ( : 0 δ) (hsmall : 20 * Θ ^ 8 * δ * (b - a) 1 / 2) (hU : ∀ (t : ), 0 tHasDerivAt U (U₁ t) t) (hV : ∀ (t : ), 0 tHasDerivAt V (V₁ t) t) (hfluxU : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * U₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * U t) t) (hfluxV : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * V₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * V t) t) (hU0 : U 0 = 1) (hU₁0 : U₁ 0 = 0) (hV₁0 : V₁ 0 = 1) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfluxY : tSet.Icc a b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Y₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Y t + (1 + (ε ^ 2 * t ^ 2) ^ 2) * g t) t) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (hforcing : tSet.Icc a b, |f t| + |g t| δ * (|Y t| + |Y₁ t|)) (t : ) :
          t Set.Icc a b|Y t| + |Y₁ t| 40 * Θ ^ 8 * (U t / U a) * (|Y a| + |Y₁ a|)

          A sufficiently small perturbation grows by at most twice the ideal relative propagator bound. Smallness is an explicit interval inequality.

          theorem EulerPacketPerturbation.equation30_perturbed_difference_bound {ε Θ a b δ : } {U U₁ V V₁ Y Y₁ Z Z₁ f g : } ( : 0 < ε) (hεsmall : ε 1 / 4) ( : 1 Θ) (ha : 0 a) (hab : a b) (hb : b Θ) ( : 0 δ) (hsmall : 20 * Θ ^ 8 * δ * (b - a) 1 / 2) (hU : ∀ (t : ), 0 tHasDerivAt U (U₁ t) t) (hV : ∀ (t : ), 0 tHasDerivAt V (V₁ t) t) (hfluxU : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * U₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * U t) t) (hfluxV : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * V₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * V t) t) (hU0 : U 0 = 1) (hU₁0 : U₁ 0 = 0) (hV₁0 : V₁ 0 = 1) (hY : tSet.Icc a b, HasDerivAt Y (Y₁ t + f t) t) (hfluxY : tSet.Icc a b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Y₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Y t + (1 + (ε ^ 2 * t ^ 2) ^ 2) * g t) t) (hZ : tSet.Icc a b, HasDerivAt Z (Z₁ t) t) (hfluxZ : tSet.Icc a b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Z₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Z t) t) (hfc : ContinuousOn f (Set.Icc a b)) (hgc : ContinuousOn g (Set.Icc a b)) (hforcing : tSet.Icc a b, |f t| + |g t| δ * (|Y t| + |Y₁ t|)) (t : ) :
          t Set.Icc a b|Y t - Z t| + |Y₁ t - Z₁ t| 20 * Θ ^ 8 * (U t / U a) * (|Y a - Z a| + |Y₁ a - Z₁ a|) + 800 * δ * Θ ^ 17 * (U t / U a) * (|Y a| + |Y₁ a|)

          Quantitative difference from an ideal solution. A perturbation of size δ = O(e Θ^12) produces the source's O(e Θ^29) relative error.

          theorem EulerPacketPerturbation.equation30_relative_error_order29 {ε Θ b e lam : } {U U₁ V V₁ Y Y₁ Z Z₁ f g : } ( : 0 < ε) (hεsmall : ε 1 / 4) ( : 1 Θ) (hb0 : 0 b) (hb : b Θ) (he : 0 e) (hlam : 0 lam) (hsmall : 40 * e * Θ ^ 21 1) (hU : ∀ (t : ), 0 tHasDerivAt U (U₁ t) t) (hV : ∀ (t : ), 0 tHasDerivAt V (V₁ t) t) (hfluxU : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * U₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * U t) t) (hfluxV : ∀ (t : ), 0 tHasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * V₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * V t) t) (hU0 : U 0 = 1) (hU₁0 : U₁ 0 = 0) (hV₁0 : V₁ 0 = 1) (hY : tSet.Icc 0 b, HasDerivAt Y (Y₁ t + f t) t) (hfluxY : tSet.Icc 0 b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Y₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Y t + (1 + (ε ^ 2 * t ^ 2) ^ 2) * g t) t) (hZ : tSet.Icc 0 b, HasDerivAt Z (Z₁ t) t) (hfluxZ : tSet.Icc 0 b, HasDerivAt (fun (s : ) => (1 + (ε ^ 2 * s ^ 2) ^ 2) * Z₁ s) (2 * (1 - ε ^ 2 * (ε ^ 2 * t ^ 2)) * Z t) t) (hY0 : Y 0 = 1) (hY₁0 : Y₁ 0 = lam) (hZ0 : Z 0 = 1) (hZ₁0 : Z₁ 0 = lam) (hfc : ContinuousOn f (Set.Icc 0 b)) (hgc : ContinuousOn g (Set.Icc 0 b)) (hforcing : tSet.Icc 0 b, |f t| + |g t| e * Θ ^ 12 * (|Y t| + |Y₁ t|)) (t : ) :
          t Set.Icc 0 b|Y t - Z t| + |Y₁ t - Z₁ t| 800 * e * Θ ^ 29 * (1 + lam) * U t

          The explicit Θ^29 relative error bound in the source's normalization. Its Θ^21 smallness condition follows from the exact Duhamel argument above.