High-contrast homogenization: Geometry.ProjectiveDistance #
Imported from the Apache-2.0 HighContrastHomogenization development at commit
7a13dbcd8d6609264a713373f5c69ceeac870472.
The projective distance between positive matrices #
The reference text defines, for positive m₀, m₁,
d_pr([m₀],[m₁]) = ½ (log λ_max(m₀^{-1/2} m₁ m₀^{-1/2})
- log λ_min(m₀^{-1/2} m₁ m₀^{-1/2})),
which is e.scale.selection.projective.distance. Writing X := m₀^{-1/2} m₁ m₀^{-1/2},
which is positive definite, the two eigenvalues are read off by the relative
size of HCPoly.Geometry.RelativeSize:
relSize m₁ m₀ = ‖X‖ = λ_max(X)holds by the definition ofrelSize;relSize m₀ m₁ = ‖X⁻¹‖ = λ_min(X)⁻¹, which isrelSize_eq_norm_normalize_inv.
Because log (λ_min(X)) = - log (‖X⁻¹‖), the printed difference of
logarithms is the sum used here as the definition:
projDist m₀ m₁ = ½ (log (relSize m₁ m₀) + log (relSize m₀ m₁)).
This encoding never names an eigenvalue and never inverts a matrix, so the
symmetry projDist_comm, the scale invariance projDist_smul_left and
projDist_smul_right — the invariances that make the bracket notation [m]
legitimate — and the triangle inequality all reduce to the least-scalar-bound
characterization relSize_le_iff.
The workhorse for the canonical-geometry estimates is projDist_le_of_le: a
two-sided Loewner sandwich a m₀ ≤ m₁ ≤ b m₀ bounds the distance by
½ log (b/a). The triangle inequality is exactly that bound applied to the
composition of two sandwiches with the sharp constants.
Statements whose truth needs ‖(1 : Matrix n n ℝ)‖ = 1 carry a Nonempty
instance on the index type; on an empty index type every relative size vanishes
and the definition degenerates.
Logarithm arithmetic #
The logarithm is kept opaque: these helpers speak only about abstract positive
reals, and no later proof lets a linear-arithmetic step see Real.log applied
to a matrix expression.
The distance #
The projective distance of e.scale.selection.projective.distance, encoded through the
relative sizes of the pair in both directions.
Equations
- HCPolySupport.HighContrast.projDist m₀ m₁ = 1 / 2 * (Real.log (HCPolySupport.HighContrast.relSize m₁ m₀) + Real.log (HCPolySupport.HighContrast.relSize m₀ m₁))
Instances For
The printed form. With X = m₀^{-1/2} m₁ m₀^{-1/2} the definition is
the reference text's difference of the logarithms of the extreme eigenvalues of
X: the first term is log ‖X‖ and the second is - log (λ_min X).
The projective distance is symmetric.
Invariances #
The two-sided bound #
The workhorse bound. A two-sided Loewner sandwich
a m₀ ≤ m₁ ≤ b m₀ bounds the projective distance by ½ log (b/a).
The triangle inequality #
The triangle inequality of e.scale.selection.projective.distance. The sharp
constants of the two sandwiches compose, and the logarithm of the quotient of
the composed constants splits into the two distances.