Documentation

Mathlib.Analysis.Calculus.LogDeriv

Logarithmic Derivatives #

We define the logarithmic derivative of a function f as deriv f / f. We then prove some basic facts about this, including how it changes under multiplication and composition.

noncomputable def logDeriv {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] (f : π•œ β†’ π•œ') (x : π•œ) :
π•œ'

The logarithmic derivative of a function defined as deriv f /f. Note that it will be zero at x if f is not DifferentiableAt x.

Equations
Instances For
    theorem logDeriv_apply {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] (f : π•œ β†’ π•œ') (x : π•œ) :
    logDeriv f x = deriv f x / f x
    theorem logDeriv_eq_zero_of_not_differentiableAt {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] (f : π•œ β†’ π•œ') (x : π•œ) (h : Β¬DifferentiableAt π•œ f x) :
    logDeriv f x = 0
    @[simp]
    theorem logDeriv_id {π•œ : Type u_1} [NontriviallyNormedField π•œ] (x : π•œ) :
    logDeriv id x = 1 / x
    @[simp]
    theorem logDeriv_id' {π•œ : Type u_1} [NontriviallyNormedField π•œ] (x : π•œ) :
    logDeriv (fun (x : π•œ) => x) x = 1 / x
    @[simp]
    theorem logDeriv_const {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] (a : π•œ') :
    (logDeriv fun (x : π•œ) => a) = 0
    theorem logDeriv_mul {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f g : π•œ β†’ π•œ'} (x : π•œ) (hf : f x β‰  0) (hg : g x β‰  0) (hdf : DifferentiableAt π•œ f x) (hdg : DifferentiableAt π•œ g x) :
    logDeriv (fun (z : π•œ) => f z * g z) x = logDeriv f x + logDeriv g x
    theorem logDeriv_div {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f g : π•œ β†’ π•œ'} (x : π•œ) (hf : f x β‰  0) (hg : g x β‰  0) (hdf : DifferentiableAt π•œ f x) (hdg : DifferentiableAt π•œ g x) :
    logDeriv (fun (z : π•œ) => f z / g z) x = logDeriv f x - logDeriv g x
    theorem logDeriv_mul_const {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : π•œ β†’ π•œ'} (x : π•œ) (a : π•œ') (ha : a β‰  0) :
    logDeriv (fun (z : π•œ) => f z * a) x = logDeriv f x
    theorem logDeriv_const_mul {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : π•œ β†’ π•œ'} (x : π•œ) (a : π•œ') (ha : a β‰  0) :
    logDeriv (fun (z : π•œ) => a * f z) x = logDeriv f x
    theorem logDeriv_prod {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {ΞΉ : Type u_3} {s : Finset ΞΉ} {f : ΞΉ β†’ π•œ β†’ π•œ'} {x : π•œ} (hf : βˆ€ i ∈ s, f i x β‰  0) (hd : βˆ€ i ∈ s, DifferentiableAt π•œ (f i) x) :
    logDeriv (fun (x : π•œ) => ∏ i ∈ s, f i x) x = βˆ‘ i ∈ s, logDeriv (f i) x

    The logarithmic derivative of a finite product is the sum of the logarithmic derivatives.

    theorem logDeriv_fun_zpow {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : π•œ β†’ π•œ'} {x : π•œ} (hdf : DifferentiableAt π•œ f x) (n : β„€) :
    logDeriv (fun (x : π•œ) => f x ^ n) x = ↑n * logDeriv f x
    theorem logDeriv_fun_pow {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : π•œ β†’ π•œ'} {x : π•œ} (hdf : DifferentiableAt π•œ f x) (n : β„•) :
    logDeriv (fun (x : π•œ) => f x ^ n) x = ↑n * logDeriv f x
    @[simp]
    theorem logDeriv_zpow {π•œ : Type u_1} [NontriviallyNormedField π•œ] (x : π•œ) (n : β„€) :
    logDeriv (fun (x : π•œ) => x ^ n) x = ↑n / x
    @[simp]
    theorem logDeriv_pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] (x : π•œ) (n : β„•) :
    logDeriv (fun (x : π•œ) => x ^ n) x = ↑n / x
    @[simp]
    theorem logDeriv_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] (x : π•œ) :
    logDeriv (fun (x : π•œ) => x⁻¹) x = -1 / x
    theorem logDeriv_comp {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : π•œ' β†’ π•œ'} {g : π•œ β†’ π•œ'} {x : π•œ} (hf : DifferentiableAt π•œ' f (g x)) (hg : DifferentiableAt π•œ g x) :
    logDeriv (f ∘ g) x = logDeriv f (g x) * deriv g x
    theorem logDeriv_eqOn_iff {π•œ : Type u_1} {π•œ' : Type u_2} [NontriviallyNormedField π•œ] [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [IsRCLikeNormedField π•œ] {f g : π•œ β†’ π•œ'} {s : Set π•œ} (hf : DifferentiableOn π•œ f s) (hg : DifferentiableOn π•œ g s) (hs2 : IsOpen s) (hsc : IsPreconnected s) (hgn : βˆ€ x ∈ s, g x β‰  0) (hfn : βˆ€ x ∈ s, f x β‰  0) :
    Set.EqOn (logDeriv f) (logDeriv g) s ↔ βˆƒ (z : π•œ'), z β‰  0 ∧ Set.EqOn f (z β€’ g) s
    theorem AnalyticAt.tendsto_mul_logDeriv_simple_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] [CompleteSpace π•œ] {f : π•œ β†’ π•œ} {x : π•œ} (hf : AnalyticAt π•œ f x) (hfx : f x = 0) (hf' : deriv f x β‰  0) :
    Filter.Tendsto (fun (w : π•œ) => (w - x) * logDeriv f w) (nhdsWithin x {x}ᢜ) (nhds 1)

    At a simple zero of an analytic function, the logarithmic residue (w - x) * logDeriv f w tends to 1.