Affine bases and barycentric coordinates #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Suppose P
is an affine space modelled on the module V
over the ring k
, and p : ι → P
is an
affine-independent family of points spanning P
. Given this data, each point q : P
may be written
uniquely as an affine combination: q = w₀ p₀ + w₁ p₁ + ⋯
for some (finitely-supported) weights
wᵢ
. For each i : ι
, we thus have an affine map P →ᵃ[k] k
, namely q ↦ wᵢ
. This family of
maps is known as the family of barycentric coordinates. It is defined in this file.
The construction #
Fixing i : ι
, and allowing j : ι
to range over the values j ≠ i
, we obtain a basis bᵢ
of V
defined by bᵢ j = p j -ᵥ p i
. Let fᵢ j : V →ₗ[k] k
be the corresponding dual basis and let
fᵢ = ∑ j, fᵢ j : V →ₗ[k] k
be the corresponding "sum of all coordinates" form. Then the i
th
barycentric coordinate of q : P
is 1 - fᵢ (q -ᵥ p i)
.
Main definitions #
affine_basis
: a structure representing an affine basis of an affine space.affine_basis.coord
: the mapP →ᵃ[k] k
corresponding toi : ι
.affine_basis.coord_apply_eq
: the behaviour ofaffine_basis.coord i
onp i
.affine_basis.coord_apply_ne
: the behaviour ofaffine_basis.coord i
onp j
whenj ≠ i
.affine_basis.coord_apply
: the behaviour ofaffine_basis.coord i
onp j
for generalj
.affine_basis.coord_apply_combination
: the characterisation ofaffine_basis.coord i
in terms of affine combinations, i.e.,affine_basis.coord i (w₀ p₀ + w₁ p₁ + ⋯) = wᵢ
.
TODO #
- Construct the affine equivalence between
P
and{ f : ι →₀ k | f.sum = 1 }
.
- to_fun : ι → P
- ind' : affine_independent k self.to_fun
- tot' : affine_span k (set.range self.to_fun) = ⊤
An affine basis is a family of affine-independent points whose span is the top subspace.
Instances for affine_basis
- affine_basis.has_sizeof_inst
- affine_basis.inhabited
- affine_basis.fun_like
Equations
- affine_basis.fun_like = {coe := affine_basis.to_fun _inst_4, coe_injective' := _}
Composition of an affine basis and an equivalence of index types.
Given an affine basis for an affine space P
, if we single out one member of the family, we
obtain a linear basis for the model space V
.
The linear basis corresponding to the singled-out member i : ι
is indexed by {j : ι // j ≠ i}
and its j
th element is b j -ᵥ b i
. (See basis_of_apply
.)
The i
th barycentric coordinate of a point.
A variant of affine_basis.affine_combination_coord_eq_self
for the special case when the
affine space is a module so we can talk about linear combinations.
Barycentric coordinates as an affine map.