On this page
Whitening
Imports 2 library modules and 10 external
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.matrix, mathcomp.algebra.sesquilinear, mathcomp.classical.boolp, mathcomp.classical.classical_sets, mathcomp.reals.reals, mathcomp.algebra.ring_tactic
Imported by 1
Let S be a real symmetric matrix whose quadratic form is bounded below: b |x|^2 <= x S x^T for every row vector x, with b > 0. If S = P^T diag (d) P is its spectral decomposition, the matrix W = diag (d)^(-1/2) P whitens S: W S W^T = 1 (whitening_mxP), and |x W| <= |x| / sqrt b for every row vector x (frobenius_whitening_mx). For b = 1, W does not increase norms (whitening_exists).
whitening_ | diag_mx (\row_i (Num.sqrt (d 0 i))^-1) *m P for the chosen spectral decomposition S = P^T diag_mx d P (sym_spectralmx, sym_spectral_diag) |
Main results
| Results | Statement |
|---|---|
Whitening: if S is symmetric and b |x|^2 <= x S x^T for all row vectors x, with b > 0, then the eigenvalues of S are at least b, and W = diag(d)^(-1/2) P, for the spectral decomposition S = P^T diag(d) P, satisfies W S W^T = 1 and |x W| <= |x| / sqrt b. | |
The case b = 1: a symmetric S with |x|^2 <= x S x^T has a W with W S W^T = 1 and |x W| <= |x| for all x. |
Declarations5 exported
Variable R : realType. Implicit Types n : nat.
forall [R : realType] [n : nat], 'M_n -> 'M_nDefinition whitening_mx n (S : 'M[R]_n) : 'M[R]_n := diag_mx (\row_i (Num.sqrt (sym_spectral_diag S 0 i))^-1) *m sym_spectralmx S.
Whitening: if S is symmetric and b |x|^2 <= x S x^T for all row vectors x, with b > 0, then the eigenvalues of S are at least b, and W = diag(d)^(-1/2) P, for the spectral decomposition S = P^T diag(d) P, satisfies W S W^T = 1 and |x W| <= |x| / sqrt b.
Used by 3 declarations in 1 file
- this file: whitening_mxP, frobenius_whitening_mx, whitening_exists
forall [R : realType] [n : nat] [S0 : 'M_n] [b : R], S0 \is symmetricmx -> (forall x : 'rV_n, b * mxdot x x <= mxdot (x *m S0) x) -> forall i : 'I_n, b <= sym_spectral_diag S0 0 i
A lower bound on the quadratic form bounds the eigenvalues below.
Stated in the README together with whitening_mx.
Statement as written in the source
Lemma sym_spectral_diag_ge n (S : 'M[R]_n) (b : R) : S \is symmetricmx -> (forall x : 'rV[R]_n, b * mxdot x x <= mxdot (x *m S) x) -> forall i, b <= sym_spectral_diag S 0 i.
Used by 2 declarations in 1 file
- this file: whitening_mxP, frobenius_whitening_mx
forall [R : realType] [n : nat] [S0 : 'M_n] [b : R], 0 < b -> S0 \is symmetricmx -> (forall x : 'rV_n, b * mxdot x x <= mxdot (x *m S0) x) -> whitening_mx S0 *m S0 *m (whitening_mx S0)^T = 1%:M
Stated in the README together with whitening_mx.
Statement as written in the source
Lemma whitening_mxP n (S : 'M[R]_n) (b : R) : 0 < b -> S \is symmetricmx -> (forall x : 'rV[R]_n, b * mxdot x x <= mxdot (x *m S) x) -> whitening_mx S *m S *m (whitening_mx S)^T = 1%:M.
Used by 1 declaration in 1 file
- this file: whitening_exists
forall [R : realType] [n : nat] [S0 : 'M_n] [b : R], 0 < b -> S0 \is symmetricmx -> (forall x : 'rV_n, b * mxdot x x <= mxdot (x *m S0) x) -> forall x : 'rV_n, frobenius (x *m whitening_mx S0) <= (Num.ExtraDef.sqrtr b)^-1 * frobenius x
Stated in the README together with whitening_mx.
Statement as written in the source
Lemma frobenius_whitening_mx n (S : 'M[R]_n) (b : R) : 0 < b -> S \is symmetricmx -> (forall x : 'rV[R]_n, b * mxdot x x <= mxdot (x *m S) x) -> forall x : 'rV[R]_n, frobenius (x *m whitening_mx S) <= (Num.sqrt b)^-1 * frobenius x.
Used by 1 declaration in 1 file
- this file: whitening_exists
forall [R : realType] [n : nat] [S0 : 'M_n], S0 \is symmetricmx -> (forall x : 'rV_n, mxdot x x <= mxdot (x *m S0) x) -> exists W : 'M_n, W *m S0 *m W^T = 1%:M /\ (forall x : 'rV_n, frobenius (x *m W) <= frobenius x)
The whitening of a matrix that dominates the identity.
The case b = 1: a symmetric S with |x|^2 <= x S x^T has a W with W S W^T = 1 and |x W| <= |x| for all x.
Statement as written in the source
Used by 2 declarations in 1 file
- GaussianAnalysis.fourier.small_ball: vector_small_ball, vector_small_ball_variance