Calculate explicit formulas for perpendicular¶
Exercise I.7.19 [1] $ \newcommand{\scalar}[3][]{\left\langle #2,#3 \right\rangle_{#1}} \newcommand{\Space}[3][]{\mathbb{#2}^{#3}_{#1}} \newcommand{\Space}[3][]{\mathbb{#2}^{#3}_{#1}} \newcommand{\cycle}[3][]{{#1 C^{#2}_{#3}}} \newcommand{\realline}[3][]{#1 R^{#2}_{#3}} \newcommand{\bs}{\breve{\sigma}} \newcommand{\zcycle}[3][]{#1 Z^{#2}_{#3}} \newcommand{\SL}[1][2]{\mathrm{SL}_{#1}(\Space{R}{})} \newcommand{\rs}{\sigma_r} \newcommand{\lvec}[1]{\overrightarrow{#1}} \newcommand{\rmi}{\mathrm{i}} \newcommand{\alli}{\iota} \newcommand{\rme}{\mathrm{e}} \newcommand{\rmd}{\mathrm{d}} \newcommand{\rmh}{\mathrm{j}} \newcommand{\rmp}{\varepsilon} \newcommand{\modulus}[2][]{\left| #2 \right|_{#1}} \newcommand{\sperp}{⋋} $ Let $A=(u,v)$ and $B=(u',v')$. Then
- $d$-perpendicular to $\lvec{AB}$ in the \emph{elliptic} or \emph{hyperbolic} cases is a multiple of the vector \begin{equation} \begin{pmatrix} \sigma (v-v')^3-(u-u')^2 (v+v'(1-2 \sigma \bs))\\ \bs(u-u')^3-(u-u')(v- v')(-2 v' +(v+v') \bs \sigma) \end{pmatrix}, \end{equation} which, for $\sigma\bs=1$, reduces to the expected value $(v-v', \sigma(u-u'))$.
- $d$-perpendicular to $\lvec{AB}$ in the \emph{parabolic} case is $(0, t)$, $t\in\Space{R}{}$ which coincides with the \emph{Galilean orthogonality} defined in [Yaglom79, S~3].
- $l_{c_{\bs}}$-perpendicular to $\lvec{AB}$ is a multiple of the vector $(\sigma v'-\rs v, u-u')$.
- $l_{f_{\bs}}$-perpendicular to $\lvec{AB}$ is a multiple of the vector $(\sigma v'+p, u-u')$, where $p$ is defined for corresponding values of $\rs$.
Hint. Contour lines for all distances and lengths are cycles. Use implicit derivation to determine the tangent vector to a cycle at a point. Then apply the formula to a cycle which passes $(u',v')$ and is a contour line for a distance or length from $(u,v)$. \end{hint}
Solution. We use implicit derivation to find the tangent of a cycle at (u',v')
from init_cycle import *
def print_perpendicular(C, S=""):
return Latex("%s perpendicular to $((u,v); (u',v'))$ is: $(%s, %s)$" %\
(S, (C.get_l(1)+sign*C.get_k()*v1).normal(), (C.get_l(0)-C.get_k()*u1).normal()))
Now we run through various distances/lengths providinc corresponding cycles
Distance, copied from le-distance-first.ipynb aka le.I.7.5. Define a cycle template
C10 = cycle2D(numeric(1), [l, n], m, e)
Specialise by the condition passing two points
C10 = C10.subject_to([C10.passing(P), C10.passing(P1)], [m, n, l])
D = 4*C10.radius_sq(es)
print_perpendicular(C10.subs(lsolve([D.diff(l) == 0], [l])), "Distance (EH)")
Parabolic point space
print_perpendicular(C10.subs({sign : 0, l : (u+u1)*half}), "Distance (P)")
Lengths from centre, copied from le-length-centre-exp.py
We need one more clifford unit
nu = varidx(symbol("nu"),2)
er = clifford_unit(nu, diag_matrix([-1, sign2]), 2)
Now define a cycle passing P1...
C11 = C.subject_to([C.passing(P1), C.is_normalized()])
...and having its er-centre at P
C11 = C11.subject_to([C11.center(er)[0] == u, C11.center(er)[1]== v])
print_perpendicular(C11, "Length from centre")
Lengths from focus are copied from le-length-focus-exp.py
Slightly different routine for focal lenfths
def fl_perp(p):
C12 = C.subject_to([C.passing(P1), k==1, l == u, n == p])
display(Latex("Calculation for $p=%s$" % p))
return(Latex(" Focal length perpendicular to $((u,v); (u',v'))$ is $(si v'+p, u-u')$: %s" %\
((C12.get_l(1)+sign*C12.get_k()*v1-(sign*v1+p)).normal().is_zero()\
and (C12.get_l(0)-C12.get_k()*u1-(u-u1)).normal().is_zero())))
We made two checks for solution with +sign...
sign5=sign4
fl_perp(sign5*(-(v1-v)+pow(sign5*pow((u1-u), 2)+pow((v1-v), 2) -sign5*sign*pow(v1, 2),half)))
...and with -sign
fl_perp(sign5*(-(v1-v)-pow(sign5*pow((u1-u), 2)+pow((v1-v), 2) -sign5*sign*pow(v1, 2),half)))
finally we check the parabolic case formula
sign5=0;
fl_perp((pow(u1-u,2)-sign*pow(v1,2))/(v1-v)/2)
This notebook is a part of the MoebInv notebooks project [2] .
References¶
Vladimir V. Kisil. Geometry of Möbius Transformations: Elliptic, Parabolic and Hyperbolic Actions of $SL_2(\mathbb{R})$. Imperial College Press, London, 2012. Includes a live DVD.
Vladimir V. Kisil, MoebInv notebooks, 2019.