Documentation

TauCeti.Analysis.InnerProductSpace.Symmetric.FunctionalCalculus

The functional calculus of a symmetric operator in finite dimension #

Let T be a symmetric endomorphism of a finite-dimensional inner product space E over โ„ or โ„‚ (any RCLike field ๐•œ). For a real function f : โ„ โ†’ โ„, the operator f(T) is the spectral sum โˆ‘แตข f(ฮปแตข) eแตข โŠ— eแตข over an orthonormal eigenbasis (eแตข) of T with eigenvalues (ฮปแตข). This file defines it as LinearMap.IsSymmetric.cfc and proves the identities that make it a functional calculus: f(T) acts as multiplication by f(ฮป) on every eigenvector of T with eigenvalue ฮป, and it is the unique endomorphism doing so. Everything else follows from this characterization: f(T) is symmetric, depends only on the values of f at the eigenvalues of T, is additive and multiplicative in f, recovers T from the identity function, is compatible with composition of functions, and is preserved by every linear map intertwining two symmetric operators. In particular f(T) commutes with every endomorphism commuting with T. A bound on |f| at the eigenvalues of T bounds the norm of f(T).

No continuity of f is required, and the construction works uniformly over RCLike scalars by finite sums, without any Cโ‹†-algebra structure. It agrees with Mathlib's continuous functional calculus of the corresponding bounded operator: see LinearMap.IsSymmetric.toContinuousLinearMap_cfc. A function that is nonnegative at the eigenvalues of T gives a positive operator; applied to Real.sqrt on a positive operator, this yields the positive square root LinearMap.IsPositive.sqrt.

The name follows Matrix.IsHermitian.cfc, Mathlib's eigenbasis construction of the functional calculus of a Hermitian matrix.

Main declarations #

References #

noncomputable def LinearMap.IsSymmetric.cfc {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f : โ„ โ†’ โ„) :
E โ†’โ‚—[๐•œ] E

The functional calculus f(T) of a symmetric operator T on a finite-dimensional inner product space: the spectral sum โˆ‘แตข f(ฮปแตข) eแตข โŠ— eแตข of the rank-one projections eแตข โŠ— eแตข = rankOne ๐•œ eแตข eแตข over Mathlib's ordered orthonormal eigenbasis (eแตข) of T, whose eigenvalues are (ฮปแตข).

The result does not depend on the choice of eigenbasis: see cfc_eq_sum and eq_cfc_iff.

Instances For
    theorem LinearMap.IsSymmetric.cfc_apply_of_apply_eq_smul {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f : โ„ โ†’ โ„) {x : E} {ฮผ : โ„} (hx : T x = โ†‘ฮผ โ€ข x) :
    (hT.cfc f) x = โ†‘(f ฮผ) โ€ข x

    Eigenvector action. If Tx = ฮผx, then f(T)x = f(ฮผ)x.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_apply_eigenvectorBasis {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} {n : โ„•} (hT : T.IsSymmetric) (hn : Module.finrank ๐•œ E = n) (f : โ„ โ†’ โ„) (i : Fin n) :
    (hT.cfc f) ((hT.eigenvectorBasis hn) i) = โ†‘(f (hT.eigenvalues hn i)) โ€ข (hT.eigenvectorBasis hn) i

    The functional calculus acts diagonally on every ordered eigenbasis of T.

    theorem LinearMap.IsSymmetric.eq_cfc_iff {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f : โ„ โ†’ โ„) {S : E โ†’โ‚—[๐•œ] E} :
    S = hT.cfc f โ†” โˆ€ (ฮผ : โ„) (x : E), T x = โ†‘ฮผ โ€ข x โ†’ S x = โ†‘(f ฮผ) โ€ข x

    Uniqueness. An endomorphism equals f(T) exactly when it acts as multiplication by f(ฮผ) on every eigenvector of T with eigenvalue ฮผ.

    theorem LinearMap.IsSymmetric.cfc_eq_sum {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} {n : โ„•} (hT : T.IsSymmetric) (hn : Module.finrank ๐•œ E = n) (f : โ„ โ†’ โ„) :
    hT.cfc f = โˆ‘ i : Fin n, โ†‘(f (hT.eigenvalues hn i)) โ€ข โ†‘(((InnerProductSpace.rankOne ๐•œ) ((hT.eigenvectorBasis hn) i)) ((hT.eigenvectorBasis hn) i))

    The functional calculus is the spectral sum over any ordered eigenbasis of T.

    theorem LinearMap.IsSymmetric.cfc_apply {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} {n : โ„•} (hT : T.IsSymmetric) (hn : Module.finrank ๐•œ E = n) (f : โ„ โ†’ โ„) (x : E) :
    (hT.cfc f) x = โˆ‘ i : Fin n, (โ†‘(f (hT.eigenvalues hn i)) * inner ๐•œ ((hT.eigenvectorBasis hn) i) x) โ€ข (hT.eigenvectorBasis hn) i

    The spectral expansion of f(T)x in any ordered eigenbasis of T.

    theorem LinearMap.IsSymmetric.isSymmetric_cfc {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f : โ„ โ†’ โ„) :

    The functional calculus of a symmetric operator is symmetric.

    theorem LinearMap.IsSymmetric.cfc_congr {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) {f g : โ„ โ†’ โ„} (hfg : โˆ€ (ฮผ : โ„), Module.End.HasEigenvalue T โ†‘ฮผ โ†’ f ฮผ = g ฮผ) :
    hT.cfc f = hT.cfc g

    The functional calculus only depends on the values of f at the eigenvalues of T.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_id {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) :

    The identity function recovers the operator.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_id' {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) :
    (hT.cfc fun (ฮผ : โ„) => ฮผ) = T

    The identity function, written as a lambda, recovers the operator.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_const {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (c : โ„) :
    (hT.cfc fun (x : โ„) => c) = โ†‘c โ€ข 1

    A constant function gives the corresponding multiple of the identity.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_zero {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) :
    hT.cfc 0 = 0

    The zero function gives the zero operator.

    @[simp]
    theorem LinearMap.IsSymmetric.cfc_one {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) :
    hT.cfc 1 = 1

    The constant function 1 gives the identity operator.

    theorem LinearMap.IsSymmetric.cfc_add {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f g : โ„ โ†’ โ„) :
    hT.cfc (f + g) = hT.cfc f + hT.cfc g

    The functional calculus is additive in the function.

    theorem LinearMap.IsSymmetric.cfc_mul {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f g : โ„ โ†’ โ„) :
    hT.cfc (f * g) = hT.cfc f * hT.cfc g

    Product law. The functional calculus is multiplicative in the function: (fg)(T) = f(T)g(T).

    theorem LinearMap.IsSymmetric.cfc_comp {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f g : โ„ โ†’ โ„) :
    hT.cfc (g โˆ˜ f) = โ‹ฏ.cfc g

    Composition of functions corresponds to iterating the functional calculus: (g โˆ˜ f)(T) = g(f(T)).

    theorem LinearMap.IsSymmetric.comp_cfc_eq_cfc_comp {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] [NormedAddCommGroup F] [InnerProductSpace ๐•œ F] [FiniteDimensional ๐•œ F] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) {T' : F โ†’โ‚—[๐•œ] F} (hT' : T'.IsSymmetric) {S : E โ†’โ‚—[๐•œ] F} (hS : S โˆ˜โ‚— T = T' โˆ˜โ‚— S) (f : โ„ โ†’ โ„) :

    A linear map intertwining two symmetric operators intertwines their functional calculi: if S T = T' S, then S f(T) = f(T') S.

    theorem LinearMap.IsSymmetric.commute_cfc {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) {S : E โ†’โ‚—[๐•œ] E} (hS : Commute S T) (f : โ„ โ†’ โ„) :
    Commute S (hT.cfc f)

    Commutant preservation. Every endomorphism commuting with T commutes with f(T).

    theorem LinearMap.IsSymmetric.norm_cfc_apply_le {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) (f : โ„ โ†’ โ„) {c : โ„} (hf : โˆ€ (ฮผ : โ„), Module.End.HasEigenvalue T โ†‘ฮผ โ†’ |f ฮผ| โ‰ค c) (x : E) :

    Norm bound. If |f(ฮป)| โ‰ค c at every eigenvalue ฮป of T, then โ€–f(T)xโ€– โ‰ค cโ€–xโ€–.

    theorem LinearMap.IsSymmetric.norm_cfc_apply_sq_add_norm_cfc_apply_sq {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) {f g : โ„ โ†’ โ„} (hfg : โˆ€ (ฮผ : โ„), Module.End.HasEigenvalue T โ†‘ฮผ โ†’ f ฮผ ^ 2 + g ฮผ ^ 2 = 1) (x : E) :

    Pythagorean splitting. If f(ฮป)ยฒ + g(ฮป)ยฒ = 1 at every eigenvalue ฮป of T, then โ€–f(T)xโ€–ยฒ + โ€–g(T)xโ€–ยฒ = โ€–xโ€–ยฒ. For instance f = sin and g = cos.

    theorem LinearMap.IsSymmetric.isPositive_cfc {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {T : E โ†’โ‚—[๐•œ] E} (hT : T.IsSymmetric) {f : โ„ โ†’ โ„} (hf : โˆ€ (ฮผ : โ„), Module.End.HasEigenvalue T โ†‘ฮผ โ†’ 0 โ‰ค f ฮผ) :

    Positivity. If f is nonnegative at every eigenvalue of T, then f(T) is positive.