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)
: