Here we define and develop basic properties of the parametrized family rot
of rotations. We work with both this family and the corresponding family
rot_iso of isometries.
It is much easier to work with the isometry representation as much as possible
and convert back to matrices at the end (in particular, see lemma same_action).
Instances For
Equations
- x_B_c ax = โจClassical.choose โฏ, โฏโฉ
Instances For
Equations
Instances For
Equations
- plane_o ax = (tmp_basis ax).toBasis.orientation
Instances For
Equations
- orth_B ax = (plane_o ax).basisRightAngleRotation (x_B ax) โฏ
Instances For
Equations
- ax_B ax = Module.Basis.mk โฏ โฏ
Instances For
Equations
- rot_iso_plane_equiv ax ฮธ = (plane_o ax).rotation โฮธ
Instances For
Equations
- rot_iso_plane_to_st ax ฮธ = (rot_iso_plane_equiv ax ฮธ).toLinearIsometry
Instances For
Equations
- operp ax v = (orth ax).orthogonalProjection v
Instances For
Equations
- up ax = (orth ax).subtypeโแตข
Instances For
Equations
- rot_by_parts ax ฮธ v = ((up ax).comp (rot_iso_plane_to_st ax ฮธ)) (operp ax v) + spar ax v
Instances For
Equations
- rot_iso ax ฮธ = { toFun := rot_by_parts ax ฮธ, map_add' := โฏ, map_smul' := โฏ, invFun := rot_by_parts ax (-ฮธ), left_inv := โฏ, right_inv := โฏ, norm_map' := โฏ }
Instances For
Equations
Instances For
Equations
- mod_dim_fintype โจ0, isLtโฉ = Fin.fintype 2
- mod_dim_fintype โจ1, isLtโฉ = Fin.fintype 1
Equations
- mod_dim_decidableEq โจ0, isLtโฉ = id (instDecidableEqFin 2)
- mod_dim_decidableEq โจ1, isLtโฉ = id (instDecidableEqFin 1)
theorem
hf
{ฮธ : โ}
(ax : โS2)
(i : Fin 2)
:
Set.MapsTo โโ(rot_iso ax ฮธ).toLinearEquiv โ(submods ax i) โ(submods ax i)
Instances For
Equations
- rot_mat_block_1 ax ฮธ = (LinearMap.toMatrix (โฏ.collectedBasis (sm_bases ax)) (โฏ.collectedBasis (sm_bases ax))) โ(rot_iso ax ฮธ).toLinearEquiv
Instances For
Equations
- rot_mat_block_2 ax ฮธ = Matrix.blockDiagonal' fun (i : Fin 2) => (LinearMap.toMatrix (sm_bases ax i) (sm_bases ax i)) ((โ(rot_iso ax ฮธ).toLinearEquiv).restrict โฏ)
Instances For
theorem
block_2_lem
{ฮธ : โ}
(ax : โS2)
:
(LinearMap.toMatrix (sm_bases ax 1) (sm_bases ax 1)) ((โ(rot_iso ax ฮธ).toLinearEquiv).restrict โฏ) = !![1]
theorem
block_repr
(ax : โS2)
(ฮธ : โ)
:
(LinearMap.toMatrix (โฏ.collectedBasis (sm_bases ax)) (โฏ.collectedBasis (sm_bases ax))) โ(rot_iso ax ฮธ).toLinearEquiv = Matrix.blockDiagonal' fun (i : Fin 2) =>
match i with
| โจ0, isLtโฉ => !![Real.cos ฮธ, -Real.sin ฮธ; Real.sin ฮธ, Real.cos ฮธ]
| โจ1, isLtโฉ => !![1]
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- COB_MB ax = (โฏ.collectedBasis (sm_bases ax)).reindex finToSigma.symm
Instances For
Equations
- COB ax = (COB_MB ax).toOrthonormalBasis โฏ
Instances For
theorem
inner_as_to_matrix
{T : โ}
(ax : โS2)
:
rot_mat_inner T = (LinearMap.toMatrix (COB ax).toBasis (COB ax).toBasis) โ(rot_iso ax T).toLinearEquiv