Differentiability of the norm in a real normed vector space #
This file provides basic results about the differentiability of the norm in a real vector space.
Most are of the following kind: if the norm has some differentiability property
(DifferentiableAt, ContDiffAt, HasStrictFDerivAt, HasFDerivAt) at x, then so it has
at t • x when t ≠ 0.
Main statements #
ContDiffAt.contDiffAt_norm_smul: If the norm is continuously differentiable up to ordernatx, then so it is att • xwhent ≠ 0.differentiableAt_norm_smul: Ift ≠ 0, the norm is differentiable atxif and only if it is att • x.HasFDerivAt.hasFDerivAt_norm_smul: If the norm has a Fréchet derivativefatxandt ≠ 0, then it has(SignType t) • fas a Fréchet derivative att · x.fderiv_norm_smul:fderiv ℝ (‖·‖) (t • x) = (SignType.sign t : ℝ) • (fderiv ℝ (‖·‖) x), this holds without any differentiability assumptions.DifferentiableAt.fderiv_norm_self: if the norm is differentiable atx, thenfderiv ℝ (‖·‖) x x = ‖x‖.norm_fderiv_norm: if the norm is differentiable atxthen the operator norm of its derivative is1(on a non-trivial space).
Tags #
differentiability, norm
theorem not_differentiableAt_norm_zero (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ℝ E] [Nontrivial E] :
¬DifferentiableAt ℝ (fun (x : E) => ‖x‖) 0
theorem ContDiffAt.contDiffAt_norm_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {n : WithTop ℕ∞} {x : E} {t : ℝ} (ht : t ≠ 0) (h : ContDiffAt ℝ n (fun (x : E) => ‖x‖) x) :
ContDiffAt ℝ n (fun (x : E) => ‖x‖) (t • x)
theorem contDiffAt_norm_smul_iff {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {n : WithTop ℕ∞} {x : E} {t : ℝ} (ht : t ≠ 0) :
theorem ContDiffAt.contDiffAt_norm_of_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {n : WithTop ℕ∞} {x : E} {t : ℝ} (h : ContDiffAt ℝ n (fun (x : E) => ‖x‖) (t • x)) :
ContDiffAt ℝ n (fun (x : E) => ‖x‖) x
theorem HasStrictFDerivAt.hasStrictFDerivAt_norm_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : t ≠ 0) (h : HasStrictFDerivAt (fun (x : E) => ‖x‖) f x) :
HasStrictFDerivAt (fun (x : E) => ‖x‖) (↑(SignType.sign t) • f) (t • x)
theorem HasStrictFDerivAt.hasStrictDerivAt_norm_smul_neg {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : t < 0) (h : HasStrictFDerivAt (fun (x : E) => ‖x‖) f x) :
HasStrictFDerivAt (fun (x : E) => ‖x‖) (-f) (t • x)
theorem HasStrictFDerivAt.hasStrictDerivAt_norm_smul_pos {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : 0 < t) (h : HasStrictFDerivAt (fun (x : E) => ‖x‖) f x) :
HasStrictFDerivAt (fun (x : E) => ‖x‖) f (t • x)
theorem HasFDerivAt.hasFDerivAt_norm_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : t ≠ 0) (h : HasFDerivAt (fun (x : E) => ‖x‖) f x) :
HasFDerivAt (fun (x : E) => ‖x‖) (↑(SignType.sign t) • f) (t • x)
theorem HasFDerivAt.hasFDerivAt_norm_smul_neg {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : t < 0) (h : HasFDerivAt (fun (x : E) => ‖x‖) f x) :
HasFDerivAt (fun (x : E) => ‖x‖) (-f) (t • x)
theorem HasFDerivAt.hasFDerivAt_norm_smul_pos {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : StrongDual ℝ E} {x : E} {t : ℝ} (ht : 0 < t) (h : HasFDerivAt (fun (x : E) => ‖x‖) f x) :
HasFDerivAt (fun (x : E) => ‖x‖) f (t • x)
theorem differentiableAt_norm_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {x : E} {t : ℝ} (ht : t ≠ 0) :
theorem DifferentiableAt.differentiableAt_norm_of_smul {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {x : E} {t : ℝ} (h : DifferentiableAt ℝ (fun (x : E) => ‖x‖) (t • x)) :
DifferentiableAt ℝ (fun (x : E) => ‖x‖) x
theorem DifferentiableAt.fderiv_norm_self {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {x : E} (h : DifferentiableAt ℝ (fun (x : E) => ‖x‖) x) :
theorem norm_fderiv_norm {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {x : E} [Nontrivial E] (h : DifferentiableAt ℝ (fun (x : E) => ‖x‖) x) :