$\mathbb{P_C}\left(\mathbb{C}^5\right)$: comment cuisiner les cycles à la sauce Lie
Bonjour, $\def\tra#1{{{\vphantom{#1}}^{t}{#1}}} \def\cir#1{\mathcal{C}_{#1}}
\def\Sa{S_{a}} \def\Sb{S_{b}} \def\Sc{S_{c}}
\def\mqqz{\boxed{\underset{z}{\mathcal{Q}}}} \def\mqqb{\boxed{\underset{b}{\mathcal{Q}}}} \def\mqqn{\boxed{\underset{}{\mathcal{Q}}}}
\def\mqin{\boxed{\underset{}{\mathcal{Q}}^{-1}}} \def\mqib{\boxed{\underset{b}{\mathcal{Q}}^{-1}}} \def\mqiz{\boxed{\underset{z}{\mathcal{Q}}^{-1}}}
\def\mqfn{\boxed{\underset{5}{\mathcal{\mathcal{Q}}}}} \def\mqpern{\boxed{\underset{5}{\mathcal{\mathcal{Q}}}^{\perp}}}
\def\mqfb{\boxed{\underset{5b}{\mathcal{\mathcal{Q}}}}} \def\mqperb{\boxed{\underset{5b}{\mathcal{\mathcal{Q}}}^{\perp}}} \def\mqfz{\boxed{\underset{5z}{\mathcal{\mathcal{Q}}}}} \def\mqperz{\boxed{\underset{5z}{\mathcal{\mathcal{Q}}}^{\perp}}}
\def\coln#1{\underset{}{\mathcal{V}}{}_{#1}} \def\colb#1{\underset{b}{\mathcal{V}}{}_{#1}} \def\colz#1{\underset{z}{\mathcal{V}}{}_{#1}}
\def\colfn#1{\widehat{\underset{}{\mathcal{V}}{}_{#1}}} \def\colfb#1{\widehat{\underset{b}{\mathcal{V}}{}_{#1}}} \def\colfz#1{\widehat{\underset{z}{\mathcal{V}}{}_{#1}}}
\def\pccf{\mathbb{P_{C}\left(C^{\mathrm{5}}\right)}} \def\pccq{\mathbb{P_{C}\left(C^{\mathrm{4}}\right)}} \def\pcct{\mathbb{P_{C}\left(C^{\mathrm{3}}\right)}}
\def\verz{\underset{z}{Ver}} \def\verB{\underset{b}{Ver}} \def\vern{\underset{}{Ver}}
\def\simdoteq{\stackrel{.}{\simeq}} \def\ptv{~;~} \def\vt{\mathrm{\mathbf{T}}} \def\vzz{\overline{\mathcal{Z}}} \def\vz{\mathrm{\mathbf{Z}}}$
- On utilise $\pcct$ pour décrire l'espace des points. Les deux méthodes les plus usuelles sont les coordonnées barycentriques (indice $b$) et les coordonnées zinclusives (indice $z$).
- Comme l'on sait, un cycle est une conique passant par les ombilics. Il y en a trois sortes: (1) le cercle horizon, aka la droite de l'infini parcourue deux fois; (2) les "droites" , réunion d'une droite ordinaire et de la droite de l'infini; (3) les cercles, qui sont des coniques non dégénérées.
- Un circus banalus cartesianus est le lieu des points $M\doteq\left(x,y\right)$ tels que $\left(x-a\right)^{2}+\left(y-b\right)^{2}-r^{2}=0$. En séparant les torchons et les serviettes, on obtient: \[ \left[x^{2}+y^{2},x,y,1\right]\cdot\tra{\left[1,-2a,-2b,-r^{2}\right]=0} \] L'objet de droite est le descripteur $\coln{}$ du cycle dont on cause, tandis que l'objet de gauche est le Veronese $\vern$ décrivant le point, et qui se décline en: \begin{eqnarray*} \verB\left(P\right) & \simdoteq & \left[x,y,z,-\left(a^{2}yz+b^{2}zx+c^{2}xy\right)/\left(x+y+z\right)\right]\\ \verz\left(M\right) & \simdoteq & \left[z,t,\zeta,\left(z\zeta\right)/t\right] \end{eqnarray*}
- On constate que les Veronese des points appartiennent à une quadrique $\mqin$ de $\pccq$, sur le modèle $\left(x^{2}+y^{2}\right)\cdot1-\left(x\right)^{2}-\left(y\right)^{2}=0$. Cela se décline en: \[ \mqib\doteq\left[\begin{array}{cccc} 0 & c^{2} & b^{2} & 1\\ c^{2} & 0 & a^{2} & 1\\ b^{2} & a^{2} & 0 & 1\\ 1 & 1 & 1 & 0 \end{array}\right]\ptv\mqqb\doteq\dfrac{1}{8S^{2}}\left[\begin{array}{cccc} -a^{2} & \mathit{\Sc} & \mathit{\Sb} & a^{2}\mathit{\Sa}\\ \mathit{\Sc} & -b^{2} & \mathit{\Sa} & b^{2}\mathit{\Sb}\\ \mathit{\Sb} & \mathit{\Sa} & -c^{2} & c^{2}\mathit{\Sc}\\ a^{2}\mathit{\Sa} & b^{2}\mathit{\Sb} & c^{2}\mathit{\Sc} & -b^{2}a^{2}c^{2} \end{array}\right]\ptv\mqqz\doteq\left[\begin{array}{cccc} 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right] \]
- Ce formalisme est particulièrement bien adapté pour gérer les orthogonalités. Considérons en effet les $\coln j=\coln{}\left(M_{j},r_{j}\right)$ . On a: \[ \dfrac{\coln 1\cdot\mqqn\cdot\coln 2}{\coln 1\left[4\right]\times\coln 2\left[4\right]}=d_{12}^{2}-r_{1}^{2}-r_{2}^{2} \] Cette formule est visiblement projective. La normalisation utilisée équivaut à utiliser l'hyperplan des droites comme hyperplan à l'infini.
- On constate que le rayon d'un cercle n'intervient que par son carré. Cet état de fait laisse de la place pour des cercles imaginaires (centre visible, mais $r^{2}<0$).
- Et maintenant, on décide d'utiliser des rayons réels et "avec un signe" . On les note $\rho$. Et l'on mémorise ce $\rho$ dans une cinquième coordonnée, sur le modèle \[ \colfn{}\left(P,\rho\right)\simdoteq\left(\coln{}\left(P,\left|\rho\right|\right)\div\coln{}\left[4\right]\right):\rho \] Simultanément, on augmente la matrice $\mqqn$ selon: \[ \mqfn\doteq\left[\begin{array}{c|c} \mqqn & 0\\ \hline 0 & 2 \end{array}\right]\ptv\mqpern\doteq\left[\begin{array}{c|c} \mqqn & 0\\ \hline 0 & 0 \end{array}\right] \] Que valent alors $\tra{\colfn{}\left(P_{1},\rho_{1}\right)}\cdot\mqpern\cdot\colfn{}\left(P_{2},\rho_{2}\right)$ et $\tra{\colfn{}\left(P_{1},\rho_{1}\right)}\cdot\mqfn\cdot\colfn{}\left(P_{2},\rho_{2}\right)$?
- Que peut-on faire avec un truc pareil ?
- Comment définir le $\colfn{}$ d'une droite pour que §8 continue d'être valable ?
- Comment modifier les formules §7 pour qu'elles restent applicables au Veronese stéréographique, c.a.d. $\left[2X\vt,2Y\vt,\vz\vzz-\vt^{2},\vz\vzz+\vt^{2}\right]$ ?
- Quelque part quelqu'un préconise l'utilisation de \begin{eqnarray*} \epsilon_{jk} & \doteq & \dfrac{\tra{\colfn k\cdot\mqfn\cdot\colfn j}}{2\;\colfn k\left[5\right]\times\colfn j\left[5\right]}-1 \end{eqnarray*} Commenter ? (On rappelle que $=$ veut dire: égal pour de bon, par opposition à $\simeq$).
Cordialement, Pierre
Réponses
-
Bonjour, je tente ma chance sauf pour le stéréographique car plus beaucoup de mes fonctions sur les cercles ne fonctionneraient et je n'ai pas la motivation pour essayer de m'y retrouver. Mon histoire n'est pas si compatible toutes coordonnées que je le pensais, chez moi, pour un point $P\simeq (p:q:r)$ alors $Ver(P)=(p\times \mathcal L_{\infty}\cdot P : q\times \mathcal L_{\infty}\cdot P : r\times \mathcal L_{\infty}\cdot P: ^t P\cdot pyth \cdot P)$ en toutes circonstances.Alors :$\tra{\colfn{}\left(P_{1},\rho_{1}\right)}\cdot\mqpern\cdot\colfn{}\left(P_{2},\rho_{2}\right)=d_{12}^2-\rho_1^2-\rho_2^2$ donc pas de grand changement, c'est l'orthogonalité.$\tra{\colfn{}\left(P_{1},\rho_{1}\right)}\cdot\mqfn\cdot\colfn{}\left(P_{2},\rho_{2}\right)=d_{12}^2-(\rho_1-\rho_2)^2=(d_{12}+\rho_1-\rho_2)(d_{12}-\rho_1+\rho_2)$ donc je dirais cercles tangents intérieurement mais je n'ai pas trop compris pourquoi on s'intéresserait spécialement au signe négatif donc ... je loupe peut-être quelque chosePour une droite $[u,v,w]$, si on considère qu'il faut garder la tangence, je dirais en coordonnées inclusives qu'elle devient $ (u : v : w : 0 : \sqrt{uw})$ mais ce n'est pas vraiment toutes coordonnées compatibles et ce serait trop risqué de généraliser au feeling.Le bazar final, je dirais que cela donne $\dfrac{d_{12}^2 - \rho_1^2 - \rho_2^2}{2\rho_1 \rho_2}$ donc on retrouve l'orthogonalité peut-être ? Mais là encore, il y a peut-être autre chose.Edit : un 2 avait sournoisement disparuLa philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
-
Bonjour, $\def\verp{\underset{p}{Ver}}$
- Le plongement de Veronese (pour les cycles) consiste à choisir 4 cycles formant une base de $\pccq$. Choisir 3 "droites" formant une base de $\pcct$ et un seul vrai cercle simplifie grandement les allers-retours entre les deux espaces. C'est ainsi que Pedoe choisit \[ \verp\simeq\left[zt,t^{2},\zeta t,z\zeta-t^{2}\right]\simeq\left[z,t,\zeta,z\zeta/t-t\right] \] (b comme barycentrique, z comme zinclusive, p comme Pedoe et s comme stéréographique)
- La formule utilisant $\mqpern$ décrit évidemment l'orthogonalité. Il eut été très vilain d'utiliser $\perp$ en exposant pour décrire autre chose !
- La formule utilisant $\mqfn$ est, selon le cas, \[ \begin{cases} \rho_{1}\rho_{2}>0 & d_{12}^{2}-\left(\left|\rho_{1}\right|-\left|\rho_{2}\right|\right){}^{2}\\ \rho_{1}\rho_{2}<0 & d_{12}^{2}-\left(\left|\rho_{1}\right|+\left|\rho_{2}\right|\right){}^{2} \end{cases} \] autrement dit...
- Pour conserver la propriété de contact, il faut en effet utiliser \[ \colfz{}\left(\left[u,v,w\right]\right)\simeq(u:v:w:0:\sqrt{uw}) \] Et il reste, en effet, à donner la formule générale (une expression simple existe).
- Pour le fameux $\epsilon_{jk}$, sa nullité équivaut en effet à l'orthogonalité. Mais il vaudrait mieux qu'il y ait quelque chose en plus... sinon, pourquoi plonger $\pccq$ dans $\pccf$ et en profiter pour utiliser deux peintures différentes, une par face ?
Cordialement, Pierre. -
Je vois, peut-être que j'aurais du creuser un peu plus cette histoire de signe négatif alors...Problème : je ne sais pas vraiment ce que peut être un cercle avec un rayon négatif mais bon, si on décide qu'on affecte un signe au cercle (pourquoi pas ?), on a un moyen de différencier la tangence intérieure et la tangence extérieure.Si les signes sont les mêmes, $\epsilon_{jk}=-1$ si tangence intérieure et $\epsilon_{jk}=1$ si tangence extérieureSi les signes sont différents, $\epsilon_{jk}=1$ si tangence intérieure et $\epsilon_{jk}=-1$ si tangence extérieure.Et ce ne serait pas trop vilain de noter $\epsilon_{jk}$ un bazar qui peut valoir + ou - 1
La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley) -
Bonjour.
Donner un signe au "rayon" d'un cycle isolé n'a, en effet, pas grande signification. Mais quand deux roues d'engrenage interviennent, il devient intéressant de savoir si celà va "engrener paisiblement" ou si un drame est à prévoir. Cela ne se limite pas à intérieur/extérieur... et justement...
On en est donc à: dans les cas les plus intéressants, $\epsilon_{jk}$ vaut $-1,0,+1$. Une ressemblance avec quoi donc déjà n'est pas à exclure !!!
Cordialement, Pierre. -
D'accord, alors imaginons des cercles qui tournent donc orientés en quelque sorte. Dans ce cas, on a $\epsilon_{jk}=-1$ si les flèches vont dans le même sens au point de tangence (je ne sais comment on traduit correctement "engrene paisiblement" et je soupçonne que ce n'est pas la formulation d'usage) et $\epsilon_{jk}=1$ si les flèches vont dans des sens opposés au point de tangence. Et puis $\epsilon_{jk}=0$ si orthogonalité mais ressemblance avec quoi ?Quand je disais que la notation $\epsilon_{jk}$ avec -1 et 1 ne me paraissait pas vilaine, je pensais aux signatures de permutation mais de là à dire que cela se ressemble...La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
-
Bonjour,Nouvelle versions des macros TeX. Objectif: insister sur la similitude entre les quatres formalismes "usuels" $b,z,p,s$.$\def\tra#1{{{\vphantom{#1}}^{t}{#1}}} \def\cir#1{\mathcal{C}_{#1}} \def\Sa{S_{a}} \def\Sb{S_{b}} \def\Sc{S_{c}} \def\mqpern{\boxed{\underset{5}{\mathcal{\mathcal{Q}}}^{\perp}}} \def\mqperb{\boxed{\underset{5b}{\mathcal{\mathcal{Q}}}^{\perp}}} \def\mqperz{\boxed{\underset{5z}{\mathcal{\mathcal{Q}}}^{\perp}}} ------ \def\colgen#1{\mathcal{V}_{#1}} \def\colgenf#1{\widehat{\mathcal{V}_{#1}}} \def\mqqg{\boxed{\underset{}{\mathcal{Q}}}} \def\mqin{\boxed{\underset{}{\mathcal{Q}}^{-1}}} \def\mqqgf{\boxed{\widehat{\mathcal{Q}}}} \def\plinfg{\mathcal{P}} \def\verg{\underset{}{Ver}} \def\mqpern{\boxed{\underset{5}{\mathcal{\mathcal{Q}}}^{\perp}}} ------ \def\colbar#1{\underset{b}{\mathcal{V}}{}_{#1}} \def\colbarf#1{\widehat{\underset{b}{\mathcal{V}}{}_{#1}}} \def\mqqb{\boxed{\underset{b}{\mathcal{Q}}}} \def\mqib{\boxed{\underset{b}{\mathcal{Q}}^{-1}}} \def\mqqbf{\boxed{\widehat{\underset{b}{\mathcal{\mathcal{Q}}}}}} \def\plinfb{\mathcal{P}_{b}} \def\verB{\underset{b}{Ver}} ------ \def\colcir#1{\underset{z}{\mathcal{V}}{}_{#1}} \def\colcirf#1{\widehat{\underset{z}{\mathcal{V}}{}_{#1}}} \def\mqqz{\boxed{\underset{z}{\mathcal{Q}}}} \def\mqiz{\boxed{\underset{z}{\mathcal{Q}}^{-1}}} \def\mqqzf{\boxed{\widehat{\underset{z}{\mathcal{\mathcal{Q}}}}}} \def\plinfz{\mathcal{P}_{z}} \def\verz{\underset{z}{Ver}} ------ \def\plinfp{\mathcal{P}_{p}} \def\verp{\underset{p}{Ver}} ------ \def\plinfs{\mathcal{P}_{s}} \def\plinfsf{\widehat{\mathcal{P}_{s}}} ------ \def\pccf{\mathbb{P_{C}\left(C^{\mathrm{5}}\right)}} \def\pccq{\mathbb{P_{C}\left(C^{\mathrm{4}}\right)}} \def\pcct{\mathbb{P_{C}\left(C^{\mathrm{3}}\right)}} \def\simdoteq{\stackrel{.}{\simeq}} \def\ptv{~;~} \def\vt{\mathrm{\mathbf{T}}} \def\vzz{\overline{\mathcal{Z}}} \def\vz{\mathrm{\mathbf{Z}}} \def\linfz{\mathcal{L}_{z}} \def\ii{\bm{{i}} } \def\mwwb{\boxed{W_{b}}} \def\mwwz{\boxed{W_{z}}} \def\mmmb{\boxed{\mathcal{M}_{b}}} \def\mmmz{\boxed{\mathcal{M}_{z}}} \def\zang#1#2{\left(\overbrace{#1,\,#2}\right)} \def\simdoteq{\stackrel{.}{\simeq}} \def\eqx#1{\underset{#1}{=}} \def\linfb{\mathcal{L}_{\infty}} \def\linfz{\mathcal{L}_{z}} \def\dist#1#2{\mathrm{dist}\left(#1,\,#2\right)} \def\lubo{\boxed{Lu}} $Il ne reste plus qu'à s'en servir !
-
(suite 1)
Du bon usage des normalisations
- Une mesure ne s'effectue pas "à un facteur près" . Et donc, il est primordial de "normaliser" les objets projectifs lorsque l'on veut s'en servir pour mesurer quoique ce soit.
- Le prototype de la chose est la formule des angles.On a \[ \tan\zang{\Delta_{1}}{\Delta_{2}}\eqx b \frac{\Delta_{1}\cdot\mwwb\cdot\tra{\Delta_{2}}}{\Delta_{1}\cdot\mmmb\cdot\tra{\Delta_{2}}} \] \[ \tan\zang{\Delta_{1}}{\Delta_{2}}\eqx z\frac{\Delta_{1}\cdot\mwwz\cdot\tra{\Delta_{2}}}{\Delta_{1}\cdot\mmmz\cdot\tra{\Delta_{2}}} \] Autrement dit: les deux formules sont tellement identiques que les indices (b=barycentriques, z=zinclusives) en deviennent inutiles. Et tout est "méchamment projectif" , c'est à dire totalement insensible à ces fameux multiplicateurs non nuls qui font le charme de la géométrie projective.
- Et maintenant, on arrive à la formule donnant la distance d'un point à une droite. Après rectification, nous avons \[ \dist P{\Delta}\eqx b\frac{\Delta\cdot P}{\left(\linfb\cdot P\right)\,\sqrt{2\,\Delta\cdot\mmmb\cdot\tra{\Delta}}} \] \[ \mathrm{dist}\left(P,\,\Delta\right)\eqx z\frac{\Delta\cdot P}{\left(\linfz\cdot P\right)\,\sqrt{2~\Delta\cdot\mmmz\cdot\tra{\Delta}}}=\dfrac{fp+gq+hr}{2q\sqrt{hf}} \] La synchronisation des deux formules a été obtenue en multipliant les $\left(W,M\right)$ de chaque sorte par un même facteur, de façon à ne pas perturber §2. Et maintenant, on a \[ \mmmb\doteq\dfrac{1}{8S^{2}}\left[\begin{array}{ccc} a^{2} & -\mathit{\Sc} & -\mathit{\Sb}\\ -\mathit{\Sc} & b^{2} & -\mathit{\Sa}\\ -\mathit{\Sb} & -\mathit{\Sa} & c^{2} \end{array}\right]\ptv\mmmz\doteq\lubo\cdot\mmmb\cdot\tra{\lubo}=\left[\begin{array}{ccc} 0 & 0 & 1\\ 0 & 0 & 0\\ 1 & 0 & 0 \end{array}\right] \]
- Le lecteur attentif aura remarqué de lui même que la conique $\mmmb$ est la conique tangentielle dont les éléments sont les droites isotropes. D'ailleurs on ne voit que cela sur la matrice $\mmmz$.
- La formule des cercles orthogonaux est \begin{eqnarray*} d_{12}^{2}-r_{1}^{2}-r_{2}^{2} & \eqx b\dfrac{\tra{\colbar 1}\cdot\mqqb\cdot\colbar 2}{\left(\plinfb\cdot\colbar 1\right)\cdot\left(\plinfb\cdot\colbar 2\right)} & \eqx z\dfrac{\tra{\colcir 1}\cdot\mqqz\cdot\colcir 2}{\left(\plinfz\cdot\colcir 1\right)\times\left(\plinfz\cdot\colcir 2\right)} \end{eqnarray*} où l'on normalise en utilisant l'hyperplan $\mathcal{P}$ contenant les représentants des droites. Ecrire cette formule sous la forme: \[ \tra{\colbar 1}\cdot\mqqb\cdot\colbar 2=\left(d_{12}^{2}-r_{1}^{2}-r_{2}^{2}\right)\times\left(\colbar 1\left[4\right]\;\colbar 2\left[4\right]\right) \] était une typique erreur de débutant. Comment trouver la formule adaptée aux coordonnées sphériques ? C'est très simple: on change de repère, et donc la formule est déjà écrite !
Cordialement, Pierre.
-
Et maintenant, Lie Sphere !
$\def\ii{ \imath }$- On part du cycle $\colgen{}\simeq ux:uy:uz:ut$. On cherche $k$ tel que $\colgenf{}\simeq\colgen{}:k$. On trouve évidement $k=\pm\sqrt{(-1/2)\;\left(\tra{\colgen{}}\cdot\mqqg\cdot\colgen{}\right) }$. Pour un cercle, il suffit simplement d'utiliser $\plinfg$ pour normaliser le 4D représentant puis de le compléter par le rayon orienté. Cela donne: \[ \left[\begin{array}{c} \dfrac{c^{2}q^{2}+2\Sa qr+b^{2}r^{2}}{\left(p+q+r\right)^{2}}-\rho^{2}\\ \dfrac{c^{2}p^{2}+2\Sb rp+a^{2}r^{2}}{\left(p+q+r\right)^{2}}-\rho^{2}\\ \dfrac{b^{2}p^{2}+2\Sc pq+a^{2}q^{2}}{\left(p+q+r\right)^{2}}-\rho^{2}\\ 1\\ \rho \end{array}\right]\left[\begin{array}{c} -\dfrac{\zeta}{t}\\ \dfrac{z\zeta}{t^{2}}-\rho^{2}\\ -\dfrac{z}{t}\\ 1\\ \rho \end{array}\right]\left[\begin{array}{c} -\dfrac{\zeta}{t}\\ \dfrac{z\zeta}{t^{2}}+1-\rho^{2}\\ -\dfrac{z}{t}\\ 1\\ \rho \end{array}\right]\left[\begin{array}{c} -\dfrac{\zeta}{t}-\dfrac{z}{t}\\ \dfrac{\ii z}{t}-\dfrac{\ii\zeta}{t}\\ \dfrac{z\zeta}{t^{2}}-1-\rho^{2}\\ \dfrac{z\zeta}{t^{2}}+1-\rho^{2}\\ \sqrt{2}\,\rho \end{array}\right] \]
- Pour une droite, on a $\colbar{}\left(\Delta\right)=\tra{\Delta}:0$. Et alors $\tra{\colbar{}\cdot\mqqb\cdot\colbar{}=\Delta\cdot\mmmb\cdot\tra{\Delta}}$. On en déduit que $k=\pm\sqrt{\left(-1/2\right)\left(\Delta\cdot\mmmb\cdot\tra{\Delta}\right)}$. Cette quantité est clairement synchronisée avec $\Delta$. Et elle s'applique à tous les formalismes, $b,z,p,s$, etc.
- Il reste à régler le cas droite-cercle. Dans le formalisme zinclusif, cela donne \[ \colcirf 1\left(M,\rho\right)\simeq\left[\begin{array}{c} -\dfrac{\zeta}{t}\\ \dfrac{z\zeta}{t^{2}}-\rho^{2}\\ -\dfrac{z}{t}\\ 1\\ \mathit{\rho} \end{array}\right]\ptv\colcirf 2\left(\Delta,\epsilon\right)\simeq\left[\begin{array}{c} f\\ g\\ h\\ 0\\ \epsilon\sqrt{fh} \end{array}\right]\ptv\tra{\colcir 1}\cdot\mqqzf\cdot\colcirf 2=\dfrac{zf}{t}+g+\dfrac{\zeta h}{t}+2\epsilon\rho\sqrt{fh} \] Cette dernière quantité s'annule lorsque \[ \rho=-\epsilon\,\dfrac{\mathit{z}f+g\mathit{t}+\mathit{\zeta}h}{2\,t\,\sqrt{fh}} \] où l'on reconnait la formule donnant la distance d'un point à un cercle.
- Et maintenant, yapuka tester tout cela! Un bon exercice est de résoudre successivement les quatre systèmes \[ \left\{ \colgenf{}\cdot\mqqgf\cdot\colgenf j\left(\Delta_{j},\epsilon_{j}\right)\mid j=1\dots3\right\} \] où les $\Delta_{j}$ sont les trois côtés d'un triangle et les $\epsilon_{j}$ prennent toutes les orientations possibles. Il convient d'en profiter pour tester les quatre formalismes usuels $b,z,p,s$.
- Toujours dans la rubrique "yapuka entre deux banissements", @Chaurien pourrait peut-être collecter des éléments historiques sur cette histoire d'espaces des cercles à la sauce Lie.
Cordialement, Pierre. -
Bonjour, le yapuka hard core quand même, je te rappelle que ma stratégie consistait jusque là à vérifier que ton bazar fonctionne mais bon... j'ai eu un peu de temps (c'est l'avantage quand le prix à payer est raisonnable pour l'objectif visé).J'ai tenté que tout se construise quelque soit $\mathcal L_{\infty}$ et quelque soit la métrique $pyth$ (donnée par une équation en coordonnées inclusives et cartésiennes augmentées ou par le perspecteur de la conique circonscrite en barycentriques) et quelque soit le $veronese$.Pas sûre d'avoir réussi car pas testé pour d'autres droites de l'infini et d'autres métriques (et j'ai une capacité à créer des bugs à ne pas négliger).#version coordonnées inclusives
var('x y z t zeta ii') ; M=vector([z,t,zeta]) ; O=vector([0,1,0])
Linf=vector([0,1,0]) ; eqpyth=z*zeta ; pyth=coniqeq(eqpyth(z=loc0,t=loc1,zeta=loc2)) #cercle de centre (0,0) et de rayon 0
var('a b c rho',domain='positive') ; A=vector([a^2,1,1/a^2]) ; B=vector([b^2,1,1/b^2]) ; C=vector([c^2,1,1/c^2])
Mp=vector([a,b,c]);AB=simple(A.cross_product(B)) ; BC=simple(B.cross_product(C)) ; CA=simple(C.cross_product(A))
#avec veronese normal
(matW,ortho,matM,facteur2S,Ox,Oy,invQ,matQ,matQ5,Cinf,cerLinf)=initialisation(Linf,pyth)
cer=simple(cercler2(M,rho^2))
pretty_print(cercleLie(cer,1))
print(expand(cer*ver(Mp)))
cerAB=simple(cercleLie(AB,1)) ; cerBC=simple(cercleLie(BC,1)) ; cerCA=simple(cercleLie(CA,1))
S1=tangence3cercles(cerAB,cerBC,cerCA,'uniq')
eqcer1=expand(simple(vector([S1[0],S1[1],S1[2],S1[3]]))*ver(M))
print(eqcer1)
#avec veronese Pedoe
(matW,ortho,matM,facteur2S,Ox,Oy,invQ,matQ,matQ5,Cinf,cerLinf)=initialisation(Linf,pyth,'p')
cer=simple(cercler2(M,rho^2,'p'))
pretty_print(cercleLie(cer,1,'p'))
print(expand(cer*ver(Mp,'p')))
cerAB=simple(cercleLie(AB,1,'p')) ; cerBC=simple(cercleLie(BC,1,'p')) ; cerCA=simple(cercleLie(CA,1,'p'))
S1=tangence3cercles(cerAB,cerBC,cerCA,'uniq')
eqcer1=expand(simple(vector([S1[0],S1[1],S1[2],S1[3]]))*ver(M,'p'))
print(eqcer1)
#avec veronese stereographique
(matW,ortho,matM,facteur2S,Ox,Oy,invQ,matQ,matQ5,Cinf,cerLinf)=initialisation(Linf,pyth,'s')
cer=simple(cercler2(M,rho^2,'s'))
pretty_print((cercleLie(cer,1,'s')))
print((expand(cer*ver(Mp,'s'))))
cerAB=(cercleLie(AB,1,'s')) ; cerBC=(cercleLie(BC,1,'s')) ; cerCA=(cercleLie(CA,1,'s'))
S1=tangence3cercles(cerAB,cerBC,cerCA,'uniq')
eqcer1=expand((vector([S1[0],S1[1],S1[2],S1[3]]))*ver(M,'s'))
print(numerator(eqcer1))
print(denominator(eqcer1))Bon évidemment pour tester cela, il faut les fonctions qui vont avecvar('x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x00 x01 x02 x03 x11 x12 x13 x22 x23 x33') #à utiliser comme inconnue pour solve donc ne jamais affecter
var('loc0 loc1 loc2') #à utiliser pour locusconi ou eqcercle ou eqmatrice
def initialisation(Linf,pyth,nom=None):
M=vector([x0,x1,x2]) ; Mp=vector([x3,x4,x5]) ; d2MMp=expand(distance2(M,Mp))
matW=matrix([[0,Linf[2],-Linf[1]],[-Linf[2],0,Linf[0]],[Linf[1],-Linf[0],0]]) #matW définie tel que pour toute droite matW*droite=droite wedge Linf
ortho=transpose(matW)*pyth #transforme un point à l'infini en polaire par rapport à pyth puis en point à l'infini de la polaire
rotMMp=ortho*vecteur(M,Mp) ; facteur2S=sqrt(factor((rotMMp*pyth*rotMMp)/d2MMp)) #calcul du facteur pour preserver la norme du vecteur P1P2 en utilisant ortho
matM=ortho*matW/facteur2S ; ortho=ortho/facteur2S #transforme une droite en le point à l'infini de toutes les perpendiculaires à cette droite
ombilics=solve([Linf*M==0,M*pyth*M==0],x0,x1,x2);Ox=simple(sol(ombilics[0]));Oy=simple(sol(ombilics[1])) #points par lesquels passent tous les cercles
invQ=matrix([[x00,x01,x02,x03],[x01,x11,x12,x13],[x02,x12,x22,x23],[x03,x13,x23,x33]])
nul=ver(M,nom)*invQ*ver(M,nom) #invQ définie telle que pour tout point P ver(P)*invQ*ver(P)=0
nul0=nul(x0=1,x1=0,x2=0) ; nul1=nul(x0=0,x1=1,x2=0) ; nul2=nul(x0=0,x1=0,x2=1)
nul3=nul(x0=1,x1=1,x2=0) ; nul4=nul(x0=1,x1=0,x2=1) ; nul5=nul(x0=0,x1=1,x2=1)
nul6=nul(x0=-1,x1=1,x2=0) ; nul7=nul(x0=-1,x1=0,x2=1) ; nul8=nul(x0=0,x1=-1,x2=1)
nul9=nul(x0=1,x1=1,x2=1) ; nul10=nul(x0=-1,x1=1,x2=1) ; nul11=nul(x0=1,x1=-1,x2=1) ; nul12=nul(x0=1,x1=1,x2=-1)
solinvQ=solve([nul0==0,nul1==0,nul1==0,nul3==0,nul3==0,nul4==0,nul5==0,nul6==0,nul7==0,nul8==0,nul9==0,nul10==0,nul11==0,nul12==0],x00,x01,x02,x03,x11,x12,x13,x22,x23,x33)
invQ=simplemat(invQ(x00=solinvQ[0][0].rhs(),x01=solinvQ[0][1].rhs(),x02=solinvQ[0][2].rhs(),x03=solinvQ[0][3].rhs(),x11=solinvQ[0][4].rhs(),x12=solinvQ[0][5].rhs(),x13=solinvQ[0][6].rhs(),x22=solinvQ[0][7].rhs(),x23=solinvQ[0][8].rhs(),x33=solinvQ[0][9].rhs()))
matQ=simplemat(invQ^-1,'egal'); cerM=invQ*ver(nor(M),nom) ; cerMp=invQ*ver(nor(Mp),nom)
facQ=factor(expand(cerM*matQ*cerMp)/d2MMp) ; invQ=invQ/facQ ; matQ=matQ*facQ ; cerM=cerM/facQ #ajustement du facteur pour matQ et invQ compatibles avec la distance si normalisation des points
droite=vector([x3,x4,x5]) ; cer=eqcercle(((droite*M)*(Linf*M))(x0=loc0,x1=loc1,x2=loc2),nom) #ensemble des droites
Cinf=vector([x6,x7,x8,x9]) ; nul=Cinf*cer #hyperplan qui contient toutes les droites
nul3=nul(x4=0,x5=0) ; nul4=nul(x3=0,x5=0) ; nul5=nul(x3=0,y4=0)
nul34=nul(x5=0)-nul3-nul4 ; nul35=nul(x4=0)-nul3-nul5 ; nul45=nul(x3=0)-nul4-nul5
solCinf=solve([nul3==0,nul4==0,nul5==0,nul34==0,nul35==0,nul45==0],x6,x7,x8,x9) ; Cinf=simple(sol(solCinf[0]))
facCinf=factor(Cinf*cerM) ; Cinf=Cinf/facCinf #ajustement du facteur de Cinf compatible avec la distance si normalisation des cercles
cerLinf=simple(eqcercle(((Linf*M)^2)(x0=loc0,x1=loc1,x2=loc2),nom)) #droite de l'infini transformée en cercle
cerX=cerM+x6*(d2MMp*cerLinf) ; cerXnor=cerX/(cerX*Cinf) ; solcerX=solve(cerXnor*matQ*cerXnor/-2==d2MMp,x6)
faccerLinf=factor(solcerX[0].rhs()) ; cerLinf=cerLinf*faccerLinf #ajustement du facteur de cerLinf compatible avec procedure cercler2
matQ5=matrix([[matQ[0,0],matQ[0,1],matQ[0,2],matQ[0,3],0],[matQ[1,0],matQ[1,1],matQ[1,2],matQ[1,3],0],[matQ[2,0],matQ[2,1],matQ[2,2],matQ[2,3],0],[matQ[3,0],matQ[3,1],matQ[3,2],matQ[3,3],0],[0,0,0,0,2]])
return(matW,ortho,matM,facteur2S,Ox,Oy,invQ,matQ,matQ5,Cinf,cerLinf)
def simple(vec,egal=None):
vecsimple=zero_vector(SR,len(vec))
num=numerator(vec[0]) ; den=denominator(vec[0])
for n in [1..len(vec)-1]:
num=gcd(num,numerator(vec[n]))
den=lcm(den,denominator(vec[n]))
facteur=factor(num/den)
for n in [0..len(vec)-1]:
vecsimple[n]=factor(vec[n]/facteur)
if egal==None : return vecsimple
else : return facteur*vecsimple
def simplemat(mat,egal=None):
matsimple=zero_matrix(SR,mat.nrows(),mat.ncols())
num=numerator(mat[0,0]) ; den=denominator(mat[0,0])
for i in [0..mat.nrows()-1]:
for j in [0..mat.ncols()-1]:
num=gcd(num,numerator(mat[i,j]))
den=lcm(den,denominator(mat[i,j]))
facteur=factor(num/den)
for i in [0..mat.nrows()-1]:
for j in [0..mat.ncols()-1]:
matsimple[i,j]=factor(mat[i,j]/facteur)
if egal==None : return matsimple
else : return facteur*matsimple
def sol(vec):
solvec=zero_vector(SR,len(vec))
for n in [0..len(vec)-1]:
solvec[n]=vec[n].rhs()
return solvec
def nor(vec):
if len(vec)==3:facteur=Linf*vec
if len(vec)==4:facteur=Cinf*vec
return vec/facteur
def vecteur(P1,P2):
return nor(P2)-nor(P1)
def distance2(P1,P2) :
vec=vecteur(P1,P2)
return vec*pyth*vec
def ver(P,nom=None) :
if nom==None : return vector([P[0]*(Linf*P),P[1]*(Linf*P),P[2]*(Linf*P),P*pyth*P])
if nom=='p' : return vector([P[0]*(Linf*P),P[1]*(Linf*P),P[2]*(Linf*P),P*pyth*P-P[1]*(Linf*P)])
if nom=='s' : return vector([(P[0]+P[2])*(Linf*P),-i*(P[0]-P[2])*(Linf*P),P[1]*(Linf*P)-P*pyth*P,P[1]*(Linf*P)+P*pyth*P])
def inver(P,nom=None) :
if nom==None : return vector([P[0],P[1],P[2]])
if nom=='p' : return vector([P[0],P[1],P[2]])
if nom=='s' : return vector([P[0]+P[1]/-i,P[2]+P[3],P[0]-P[1]/-i])
def wedgever(vec1,vec2,vec3,nom=None):
if len(vec1)==3:
mat=transpose(matrix([ver(vec1,nom),ver(vec2,nom),ver(vec3,nom)]))
if len(vec1)==4:
mat=transpose(matrix([vec1,vec2,vec3]))
c1=det(mat[(1,2,3),:]) ; c2=-det(mat[(0,2,3),:]) ; c3=det(mat[(0,1,3),:]) ; c4=-det(mat[(0,1,2),:])
return vector([c1,c2,c3,c4])
def cercler2(centre,rayon2,nom=None):
return invQ*ver(nor(centre),nom)+rayon2*cerLinf
def rayon2cercle(cer,nom=None):
cernor=nor(cer)
return factor(cernor*matQ*cernor/-2)
def centrecercle(cer,nom=None):
return inver(matQ*(cer-rayon2cercle(cer,nom)*cerLinf),nom)
def cercleLie(vec,signe,nom=None):
if len(vec)==4:
cernor=nor(vec)
r2=factor(cernor*matQ*cernor/-2)
return vector([cernor[0],cernor[1],cernor[2],cernor[3],signe*sqrt(r2)])
if len(vec)==3:
M=vector([loc0,loc1,loc2])
eq=(vec*M)*(Linf*M) ; cer=eqcercle(eq,nom)
r2=factor(cer*matQ*cer/-2)
return vector([cer[0],cer[1],cer[2],cer[3],signe*sqrt(r2)])
def droiteLie(P1,P2,signe,nom=None):
# cer=simple(wedgever(P1,P2,Ox+Oy,nom))
M=vector([loc0,loc1,loc2]) ; droite=simple(P1.cross_product(P2))
eq=(droite*M)*(Linf*M)
cer=eqcercle(eq,nom)
r2=factor(cer*matQ*cer/-2)
return vector([cer[0],cer[1],cer[2],cer[3],signe*sqrt(r2)])
def coniqeq(eq): #utiliser avec eq dependant de loc0 loc1 loc2
m00=eq(loc1=0,loc2=0)
m11=eq(loc0=0,loc2=0)
m22=eq(loc0=0,loc1=0)
m01=expand(eq(loc2=0)-m00-m11)
m02=expand(eq(loc1=0)-m00-m22)
m12=expand(eq(loc0=0)-m11-m22)
return matrix([[m00/loc0^2,m01/(2*loc0*loc1),m02/(2*loc0*loc2)],[m01/(2*loc0*loc1),m11/loc1^2,m12/(2*loc1*loc2)],[m02/(2*loc0*loc2),m12/(2*loc1*loc2),m22/loc2^2]])
def eqcercle(eq,nom=None):
Mloc=vector([loc0,loc1,loc2]) ; cer=vector([x6,x7,x8,x9])
nul = expand(cer*ver(Mloc,nom)-eq)
nul0=nul(loc1=0,loc2=0) ; nul1=nul(loc2=0,loc0=0) ; nul2=nul(loc0=0,loc1=0)
nul01=nul(loc2=0)-nul0-nul1 ; nul02=nul(loc1=0)-nul0-nul2 ; nul12=nul(loc0=0)-nul1-nul2
solcer=solve([nul0==0,nul1==0,nul2==0,nul01==0,nul02==0,nul12==0],x6,x7,x8,x9)
return sol(solcer[0])
def valtangence(cer1,cer2):
num=expand(cer1*matQ5*cer2)
den=expand(2*cer1[4]*cer2[4])
return factor(num/den-1)
def tangence3cercles(cer1,cer2,cer3,uniq=None):
cer=vector([x0,x1,x2,x3]) ; cerL = vector([x0,x1,x2,x3,x4]) ; nul=factor(x4^2-cer*matQ*cer/-2)
tan1=valtangence(cer1,cerL);tan2=valtangence(cer2,cerL);tan3=valtangence(cer3,cerL)
solcer=solve([tan1==-1,tan2==-1,tan3==-1,nul==0],x0,x1,x2,x3,x4);S0=sol(solcer[0])
return(S0)
if (uniq!=None):
solcer=solve([tan1==1,tan2==1,tan3==1,nul==0],x0,x1,x2,x3,x4);S1=sol(solcer[0])
solcer=solve([tan1==-1,tan2==-1,tan3==1,nul==0],x0,x1,x2,x3,x4);S2=sol(solcer[0])
solcer=solve([tan1==1,tan2==1,tan3==-1,nul==0],x0,x1,x2,x3,x4);S3=sol(solcer[0])
solcer=solve([tan1==1,tan2==-1,tan3==-1,nul==0],x0,x1,x2,x3,x4);S4=sol(solcer[0])
solcer=solve([tan1==-1,tan2==1,tan3==1,nul==0],x0,x1,x2,x3,x4);S5=sol(solcer[0])
solcer=solve([tan1==-1,tan2==1,tan3==-1,nul==0],x0,x1,x2,x3,x4);S6=sol(solcer[0])
solcer=solve([tan1==1,tan2==-1,tan3==1,nul==0],x0,x1,x2,x3,x4);S7=sol(solcer[0])
return(S0,S1,S2,S3,S4,S5,S6,S7)
La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley) -
J'en arrive à plusieurs questions1) Je ne trouve pas exactement les mêmes coordonnées que toi en stéréographique, il n'y a pas de $\sqrt{2}$, et cela ne me manque pas vraiment, mais je pense que cela vient du fait que je prends $Q = \left(\begin{array}{rrrr} -2 & 0 & 0 & 0 \\ 0 & -2 & 0 & 0 \\ 0 & 0 & -2 & 0 \\ 0 & 0 & 0 & 2 \end{array}\right)$.Ma stratégie systématique est la suivante, je me débrouille pour qu'en normalisant les point $M_i$ grace à $\mathcal L_{\infty}$ qui dépend du choix utilisateur alors $cernormM_i = Q^{-1} \cdot ver(norm(M_i))$ donne des cercles-points normalisés en tenant compte du $veronese$ qui dépend du choix utilisateur. Je veux dire par là que je force un facteur à $Q$ pour vérifier $cernomM_i \cdot Q \cdot cernomM_j=distance(M_i,M_j)^2$ avec $distance$ qui dépend de la métrique $pyth$ choisie par l'utilisateur aussi.Ensuite j'en déduis $\mathcal C_{\infty}$ qui me servira à normaliser directement les cercles et même $cer \mathcal L_{\infty}$ qui est la droite de l'infini transformée en cercle de sorte que ma fonction $cercler2$ qui donne le cercle de centre $M$ et de rayon $r$ consiste juste à calculer $Q^{-1} \cdot ver(norm(M)) +r^2 \mathcal cer \mathcal L_{\infty}$.Je ne sais pas si c'est clair, tout est dans ma fonction $initialisation(Linf,pyth,nom=veronese)$ si tu sais "lire" du code dans ce langage, à priori, cela fonctionne, je retrouve bien les équations des cercles qu'il faut, donc je me demande les raisons de ton autre choix ?2) Je trouve bizarre de séparer le veronese inclusif du veronese barycentrique, c'est exactement la même chose pour moi, par contre les veronese pedoe et stereographique sont effectivement bien différents, un extrait de mon code précédent pour que tu vois ce que je veux diredef ver(P,nom=None) :
if nom==None : return vector([P[0]*(Linf*P),P[1]*(Linf*P),P[2]*(Linf*P),P*pyth*P])
if nom=='p' : return vector([P[0]*(Linf*P),P[1]*(Linf*P),P[2]*(Linf*P),P*pyth*P-P[1]*(Linf*P)])
if nom=='s' : return vector([(P[0]+P[2])*(Linf*P),-i*(P[0]-P[2])*(Linf*P),P[1]*(Linf*P)-P*pyth*P,P[1]*(Linf*P)+P*pyth*P])
La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley) -
Bonjour,$\def\linfg{\mathcal{L}_{\infty}} \def\linfb{\mathcal{L}_{b}} \def\linfz{\mathcal{L}_{z}} \def\pythg{\boxed{\mathrm{Pyth}}} \def\pythb{\boxed{\mathrm{Pyth_{b}}}} \def\pythz{\boxed{\mathrm{Pyth}_{z}}} \def\mwwg{\boxed{W}} \def\umbx{\Omega_{x}} \def\umby{\Omega_{y}} \def\mwwg{\boxed{W}} \def\ortoz{\boxed{\mathrm{OrtO}_{z}}} \def\ortob{\boxed{\mathrm{OrtO}_{b}}} \def\ortog{\boxed{\mathrm{OrtO}}} \def\mmmg{\boxed{\mathcal{M}}} \def\where{\qquad\mathrm{where}\;} \def\mqqg{\boxed{\underset{}{\mathcal{Q}}}} \def\mqig{\boxed{\underset{}{\mathcal{Q}}^{-1}}}\def\mqqs{\boxed{\underset{s}{\mathcal{Q}}}} \def\mqis{\boxed{\underset{s}{\mathcal{Q}}^{-1}}}$
Description des procédures données par Vassillia
-
Procédures généralistes
- [{sol(vec):}] cosmetique: prend les rhs d'une liste d'assignations
- [{simple(vec,egal=None):}] recherche gcd (numer)/lcm(denom)
- [{simplemat(mat,egal=None):}] recherche gcd (numer)/lcm(denom)
- [{nor(vec):}] normalise, utilisant Linf ou Pinf selon le cas
- [{vecteur(P1,P2):}] implémente $\overrightarrow{AB}=B-A$
-
Procédures spécifiques déjà révisitées
- [{distance2(P1,P2):}] sur le modèle vec{*}pyth{*}vec
- [{ver(P,nom=None):}] les Veronese avec None, p, s
- [{eqcercle(eq,nom=None):}] input= eq(loc1,loc2,loc3) ; output: la colonne $\colgen{}$
-
Procédures spécifiques pas encore révisées
- [{inver(P,nom=None)}] :
- [{wedgever(vec1,vec2,vec3,nom=None):}]
- [{cercler2(centre,rayon2,nom=None):}]
- [{rayon2cercle(cer,nom=None):}]
- [{centrecercle(cer,nom=None):}]
- [{cercleLie(vec,signe,nom=None):}]
- [{droiteLie(P1,P2,signe,nom=None):}]
- [{coniqeq(eq):}] \#utiliser avec eq dependant de loc0 loc1 loc2
- [{valtangence(cer1,cer2):}]
- [{tangence3cercles(cer1,cer2,cer3,uniq=None):}]
- Initialisation: commenté ci-dessous
Commentaires
- Le code utilisé par Vassillia ne distingue pas les vecteurs colonnes (=points) et les vecteurs lignes (=droites). J'en ai donc profité pour réécrire le tout à ma façon.
- Le coeur de l'affaire réside dans le fait que les objets utilisés sont projectifs (i.e. définis à un facteur près), tandis que les objets métriques sont définis "en dur" . Première formule \[ \overrightarrow{AB}\doteq\dfrac{B}{\linfg\cdot B}-\dfrac{A}{\linfg\cdot A}\tag{{1}} \]
- Ombilics. Ce sont les solutions de $\left\{ \linfg\cdot X,\tra X\cdot\pythg\cdot X\right\} $. Synchroniser les $\umby$ à travers les différents formalismes n'est pas évident. Ici: on le fait à la main (ligne 9)
- Pinf+Orthopoint. Le point à l'infini $X$ d'une droite ordinaire est donné par $\linfg\wedge\Delta$. On pose \[ X\doteq\linfg\wedge\Delta\simeq\mwwg\cdot\tra{\Delta}\tag{{2}} \] Et alors, $\tra X\cdot\pythg$ est la droite polaire du point $X$ et donc $X^{\perp}$, le pinf de cette nouvelle droite, est $\mwwg\cdot\tra{\left(\tra X\cdot\pythg\right)}=\left(\mwwg\cdot\pythg\right)\cdot X$. On en déduit \begin{align*} X^{\perp} & \simeq\ortog\cdot X\where\ortog=\;\mwwg\cdot\pythg\tag{{3}}\\ X^{\perp} & \simeq\mmmg\cdot\tra{\Delta}\;\;\;\where\;\;\;\mmmg\;=\;\tra{\mwwg}\cdot\pythg\cdot\mwwg\tag{{4}} \end{align*}
-
Isométrie et rotation. Lorsque $\mwwg$ est une matrice antisymétrique $3\times3$ et $\boxed{Y}$ est une matrice symétrique $3\times3$, on a la propriété: $\left(\mwwg\cdot\boxed{Y}\right)^{3}=Cte\times\left(\mwwg\cdot\boxed{Y}\right)$. Par conséquent, le ratio entre $\left|\mmmg\cdot\tra{\Delta}\right|^{2}$ et $\left|\mwwg\cdot\tra{\Delta}\right|^{2}$ ne dépend pas de $X\in\linfg$. On peut donc en prendre la racine carrée... et corriger $\ortog,\mmmg$ pour que \[ \left|X^{\perp}\right|^{2}=\left|X\right|^{2}\where X\in\linfg \] Le polynôme caractéristique de $\ortog$ étant alors $\mu^{3}+\mu$, nous avons obtenu une rotation de 90°.
CAVEAT: la racine carrée a introduit un signe indéterminé $U_{b},U_{z},U_{c}$ qui, pour l'instant, porte sur $\ortog$ et $\mmmg$. - Distance point-droite. On part d'un point $P$ et d'une droite $\Delta$. On utilise un paramètre $t$ pour décrire le point mobile $Q\in\Delta$ On écrit que la dérivée de $\left|PQ\right|^{2}$ s'annule... et vu la nature du problème, il y a une et une seule solution. On reporte. On obtient une expression projective \[ \mathrm{distance}\left(P,\Delta\right)^{2}=\dfrac{\left(\Delta\cdot P\right)^{2}}{\mathrm{nor\_point}^{2}\left(P\right)\times\mathrm{nor\_droite}^{2}\left(\Delta\right)} \] où $\mathrm{nor\_droite}^{2}\left(\Delta\right)$ est un polynôme homogène de degré 2. On remarque une "forte ressemblance" entre ce normalisateur et l'action de $\mmmg$. Et l'on force le destin en faisant agir le facteur \[ \mathrm{nor\_droite}^{2}\left(\Delta\right)\div\left(2\,\Delta\cdot\mmmg\cdot\tra{\Delta}\right) \] sur les matrices $\ortog,\mwwg,\mmmg$. Finalement, on aura: \[ \mathrm{distance}\left(P,\Delta\right)^{2}=\dfrac{\left(\Delta\cdot P\right)^{2}}{\left(\linfg\cdot P\right)^{2}\times\left(2\,\Delta\cdot\mmmg\cdot\tra{\Delta}\right)}\tag{{5}} \]
-
Orientation. Il en résulte que les signes $U_{b},U_{z},U_{c}$ portent désormais sur $\ortog$ et $\mwwg$, c'est à dire les deux objets qui décrivent une orientation du plan.
On sait par ailleurs que la matrice $\mmmg$ décrit la conique droitique qui contient toutes les droites isotropes. - Veronese. On fournit la valeur du "nom" , à choisir parmi $b,z,s,p,c$ (none n'est plus un choix, il faut spécifier " b" ).
- Quadrique des Veronese $\mqig$. Méthode par identification. Puis on passe aux inverses.
- Normalisation de $\mqqg$ --et de $\mqig$-- pour que $\tra{\colgen{}\left(\mathrm{nor}\left(X\right)\right)}.\mqqg\cdot\colgen{}\left(\mathrm{nor}\left(Y\right)\right)$ coïncide avec $\left|\overrightarrow{XY}\right|^{2}$. On trouve \[ b\mapsto1,z\mapsto1,p\mapsto1,s\mapsto2,c\mapsto1 \] C'est ce "fQQ" qui est la cause du $\sqrt{2}$ qu'il faut introduire si l'on veut que $\mqqs$ et $\mqis$ coïncident avec la matrice de Minkowski, celle qui décrit la sphère dont l'équateur est le cercle unitaire. Mais que voulons nous vraiment ???
Cordialement, Pierre -
Procédures généralistes
-
Hum, je crois que j'ai loupé un truc sur les "signes" liés à l'orientation, d’ailleurs je n'ai pas non plus exactement tes matrices $ortho$ et $matM$ (au choix soit les barycentriques, soit les inclusives ne vont pas avoir le même signe) mais je n'arrive pas à piger le truc.Déjà, j'ai un problème, je trouve tel quel que :\[ \mathrm{distance}\left(P,\Delta\right)^{2}=- 2S \dfrac{\left(\Delta\cdot P\right)^{2}}{\left(\linfg\cdot P\right)^{2}\times\left(\Delta\cdot\mmmg\cdot\tra{\Delta}\right)} \]Alors, pour enlever le signe, je veux bien multiplier $matM$ et $ortho$ et pourquoi pas $matW$ par $-1$ (je m'en fiche un peu pour ce qui me sert habituellement) mais j'ai besoin de laisser $facteur2S$ en l'état et il sert dans la distance d'un point à une droite.Ou alors si on veut que ta formule proposée pour la distance d'un point à une droite soit vérifiée, ce n'est plus juste un problème de signe. Je ne vois pas comment cela continuerait de fonctionner avec $ortho$ si on garde le même facteur (et lui, je le trouve pratique pour écrire une rotation de vecteurs). En fait, je crois que je ne pige pas quelle est la contrainte à respecter mais je me sers toujours de $matM$ à un facteur près donc ça doit jouer dans mon incompréhension.Pour la fin, j'aime autant ne pas avoir de racines... et j'ai plutôt bien vécu le fait que la matrice trouvée ne coïncide pas avec la matrice de Minkowski étant donné que je ne savais pas du tout que c'était le but. Et bravo pour avoir réussi à t'y retrouver dans mon bazar, je sais que je ne commente pas assez mon code.La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
-
Bonjour, $\def\bartomor{\boxed{\mathrm{b\Phi m}}} \def\bartocar{\boxed{\mathrm{b\Phi c}}} \def\cartomor{\boxed{\mathrm{c\Phi m}}}\def\simeqx#1{\underset{#1}{\simeq}}\def\mwwc{\boxed{W_{c}}} \def\mmmc{\boxed{\mathcal{M}_{c}}} \def\linfc{\mathcal{L}_{c}}\def\pythc{\boxed{\mathrm{Pyth}_{c}}}\def\ortoc{\boxed{\mathrm{OrtO}_{c}}}$Voici une "nouvelle version définitive" de la chose et un argumentaire en faveur des choix effectués.
- La géométrie, c'est écrit dessus, cela sert à mesurer. Mesurer les distances, mesurer les angles, c'est le coeur de la chose. En coordonnées barycentriques, on a les formules \[ \mathrm{dist}(P,\Delta)\eqx b\sqrt{2S}\dfrac{\Delta\cdot P}{\left(\left[1,1,1\right].P\right)\sqrt{\Delta\cdot\boxed{\mathcal{M}_{\mathrm{old}}}\cdot\tra{\Delta}}}\where\boxed{\mathcal{M}_{\mathrm{old}}}\doteq\dfrac{1}{2S}\,\left[\begin{array}{ccc} a^{2} & -\mathit{\Sc} & -\mathit{\Sb}\\ -\mathit{\Sc} & b^{2} & -\mathit{\Sa}\\ -\mathit{\Sb} & -\mathit{\Sa} & c^{2} \end{array}\right]\tag{7.22} \] \[ \tan\zang{\Delta_{1}}{\Delta_{2}}\eqx b\frac{\Delta_{1}\cdot\boxed{\mathcal{W}_{\mathrm{old}}}\cdot\tra{\Delta_{2}}}{\Delta_{1}\cdot\boxed{\mathcal{M}_{\mathrm{old}}}\cdot\tra{\Delta_{2}}}\where\boxed{\mathcal{W}_{\mathrm{old}}}\doteq\left[\begin{array}{ccc} 0 & +1 & -1\\ -1 & 0 & +1\\ +1 & -1 & 0 \end{array}\right]\tag{7.20} \]
- Il n'est pas question ici de rétracter ces formules. Leur véracité a été testée sous toutes les coutures pendant "un certain nombre d'années de pratique" . Au contraire, il est question d'en modifier légèrement l'écriture de façon à les rendre "encore plus vraies" , c'est à dire en n'utilisant que des objets projectifs dans la formulation théorique des calculs à entreprendre (les calculs sous jacents n'en étant pas modifiés). La formule $\left(7.20\right)$ est un modèle de ce que nous voulons, et la formule (7.22) un modèle de ce dont nous ne voulons plus. En effet, que faire de ce $2S$ dans un changement de coordonnées ?
- La machinerie mise en oeuvre dans le Glossaire à été construite couche après couche, et en quelque sorte expérimentalement. En premier lieu, il a été question de créer ab initio un ensemble de procédures applicables aux coordonnées barycentriques. Puis cela a été généralisé aux coordonnées zinclusives. Et enfin, "pour voir ce que cela donne" aux coordonnées cartésiennes ordinaires.
- Ce que tu as proposé, Vassillia, avec ce programme $\mathrm{initialisation}$ consiste en fait à repartir de zéro, en appliquant une construction axiomatique. Profitons en pour traquer tous les non-dits qui se sont accumulés au fil du temps.
- Comme on le verra, Il n'est donc pas question ici de supprimer le "facteur2S", les formules en deviendraient fausses ! Il est question de montrer que ce "facteur2S" fait partie de la matrice $\mmmb$, qui est la matrice servant à normaliser les droites (à l'exception des droites isotropes).
- Orthogonalement à ces constructions axiomatiques, il y a les formules de changement de repère. Nous allons les appliquer à la lettre, et non plus à la sauce "on voit bien que" . Pour commencer les changeurs de repère "car to mor" et "bar to mor" sont \[ \cartomor=\left[\begin{array}{ccc} 1 & +\ii & 0\\ 0 & 0 & 1\\ 1 & \mathrm{-\ii} & 0 \end{array}\right]\ptv\bartomor\left[\begin{array}{ccc} R\alpha & R\beta & R\gamma\\ 1 & 1 & 1\\ \dfrac{R}{\alpha} & \dfrac{R}{\beta} & \dfrac{R}{\gamma} \end{array}\right] \] L'apparition de $R$ dans $\bartomor$ permet d'envoyer le cercle $\left(A,B,C\right)$ qui est de rayon $R$ sur le cercle $\left(O,R\right)$... qui possède le même rayon.
- Les droites de l'infini sont $\linfb=\left[\begin{array}{ccc} 1 & 1 & 1\end{array}\right]\ptv\linfz=\left[\begin{array}{ccc} 0 & 1 & 0\end{array}\right]\ptv\linfc=\left[\begin{array}{ccc} 0 & 0 & 1\end{array}\right]$. On vérifie les relations \[ \linfb=\linfz\cdot\bartomor\ptv\linfc=\linfz\cdot\cartomor \]
- Les Pythagore sont: \[ \pythb=\dfrac{1}{2}\left[\begin{array}{ccc} 0 & -c^{2} & -b^{2}\\ -c^{2} & 0 & -a^{2}\\ -b^{2} & -a^{2} & 0 \end{array}\right]\ptv\pythz=\dfrac{1}{2}\left[\begin{array}{ccc} 0 & 0 & 1\\ 0 & 0 & 0\\ 1 & 0 & 0 \end{array}\right]\ptv\pythc=\left[\begin{array}{ccc} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0 \end{array}\right] \] On vérifie les relations \[ \pythc=\tra{\cartomor}\cdot\pythz\cdot\cartomor\] \[\pythb=\tra{\bartomor}\cdot\pythz\cdot\bartomor-R^{2}\left(\tra{\linfb}\cdot\linfb\right) \] Et comme $\pythb$ agit sur les vecteurs et pas sur autre chose, il y a bien équivalence.
- Les matrices $\ortog$ obtenues axiomatiquement sont: \[ \ortob=\dfrac{1}{U_{b}}\,\dfrac{1}{4S}\left[\begin{array}{ccc} b^{2}-c^{2} & a^{2} & -a^{2}\\ -b^{2} & c^{2}-a^{2} & b^{2}\\ c^{2} & -c^{2} & a^{2}-b^{2} \end{array}\right]\ptv\ortoz=\dfrac{1}{U_{z}}\left[\begin{array}{ccc} +\ii & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & \mathrm{-\ii} \end{array}\right]\ptv\ortoc=\dfrac{1}{U_{c}}\left[\begin{array}{ccc} 0 & +1 & 0\\ -1 & 0 & 0\\ 0 & 0 & 0 \end{array}\right] \] Les signes $U_{g}=\pm1$ viennent de la résolution de $\left|X\right|^{2}=\left|\ortog\cdot X\right|^{2}$. Autrement dit, la description axiomatique conduit à deux modèles, l'un qui tourne à gauche et l'autre qui tourne à droite. En appliquant les matrices de passage on obtient: $-U_{b}=U_{z}=-U_{c}=1$. On a donc implémenté l'axiome de l'adjudant, qui stipule que "la main droite, c'est celle qui a le pouce à gauche" .
- On passe aux ombilics. La méthode: "on caractérise la paire $\umby,\umbx$ et on les nomme au pif" n'est pas une méthode axiomatique. On fait autrement. On prend un point à l'infini, $X\in\linfg$. Et on utilise: \[ \umby=\Omega^{+}\simeq\left(\,\boxed{1}-\ii\,\ortog\,\right)\cdot X\quad;\quad\umbx=\Omega^{-}\simeq\left(\,\boxed{1}+\ii\,\ortog\,\right)\cdot X \] Cela donne: \[ \umby\simeqx b\left[\begin{array}{c} \Sb+2\,\ii S\\ \Sa-2\,\ii S\\ -c^{2} \end{array}\right]\simeqx z\left[\begin{array}{c} 1\\ 0\\ 0 \end{array}\right]\simeqx c\left[\begin{array}{c} \ii\\ 1\\ 0 \end{array}\right]\ptv\umbx\simeqx b\left[\begin{array}{c} \Sb-2\,\ii S\\ \Sa+2\,\ii S\\ -c^{2} \end{array}\right]\simeqx z\left[\begin{array}{c} 0\\ 0\\ 1 \end{array}\right]\simeqx c\left[\begin{array}{c} \mathrm{-\ii}\\ 1\\ 0 \end{array}\right] \]
- Les matrices $\mwwg$ et $\mmmg$ sont obtenues en deux fois. La première étape a déjà été décrite. Elle introduit une synchronisation entre ces deux matrices. La deuxième étape consiste à imposer la formule \[ \dist P{\Delta}=\frac{\Delta\cdot P}{\left(\linfg\cdot P\right)\,\sqrt{\Delta\cdot\mmmg\cdot\tra{\Delta}}}\tag{final} \] Rappelons que cette formule a tout pour plaire: elle est homogène, elle indique qu'il n'y a pas de distance pour des points à l'infini ou des droites isotropes et, en plus, elle est nulle lorsque le point est sur la droite~! Les détails ont déjà été donnés, et il vient: \[ \mmmg\simeqx b\dfrac{1}{4S^{2}}\,\left[\begin{array}{ccc} a^{2} & -\mathit{\Sc} & -\mathit{\Sb}\\ -\mathit{\Sc} & b^{2} & -\mathit{\Sa}\\ -\mathit{\Sb} & -\mathit{\Sa} & c^{2} \end{array}\right]\simeqx z2\,\left[\begin{array}{ccc} 0 & 0 & 1\\ 0 & 0 & 0\\ 1 & 0 & 0 \end{array}\right]\simeqx c\left[\begin{array}{ccc} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0 \end{array}\right] \]
- Mais ce n'est pas encore fini! Nous devons imposer un changement de signe aux $\mwwg$ donnant lieu à \[ \mwwg\simeqx b\dfrac{1}{2S}\,\left[\begin{array}{ccc} 0 & +1 & -1\\ -1 & 0 & +1\\ +1 & -1 & 0 \end{array}\right]\simeqx z2\ii\,\left[\begin{array}{ccc} 0 & 0 & -1\\ 0 & 0 & 0\\ 1 & 0 & 0 \end{array}\right]\simeqx c\left[\begin{array}{ccc} 0 & +1 & 0\\ -1 & 0 & 0\\ 0 & 0 & 0 \end{array}\right] \] pour valider enfin la formule des angles \[ \tan\zang{\Delta_{1}}{\Delta_{2}}=\frac{\Delta_{1}\cdot\mwwg\cdot\tra{\Delta_{2}}}{\Delta_{1}\cdot\mmmg\cdot\tra{\Delta_{2}}}\tag{final} \] On rappelle que, en cartésien, la formule \[ \tan\zang{\left[-p,1,1\right]}{\left[-q,1,1\right]}=\frac{\Delta_{1}\cdot\mwwc\cdot\tra{\Delta_{2}}}{\Delta_{1}\cdot\mmmc\cdot\tra{\Delta_{2}}}=\dfrac{q-p}{1+pq} \] n'est rien d'autre que la banale formule d'addition des tangentes.
- On finit par la formule des rotations. Elle s'écrit \[ \boxed{rot}\doteq\pi_{1}+\sin\vartheta\,\ortog\cdot\pi_{2}+\cos\vartheta\,\pi_{2} \] où $\pi_{1}$ est le projecteur $\left(P\cdot\linfg\right)/\left(\linfg\cdot P\right)$ sur le centre de rotation et $\pi_{2}$ est le projecteur supplémentaire. Et on verifie que cela tourne rond: \[ \boxed{rot}\left(O,\tau\right)\eqx c\left[\begin{array}{ccc} \cos\!\left(\tau\right) & -\sin\!\left(\tau\right) & 0\\ \sin\!\left(\tau\right) & \cos\!\left(\tau\right) & 0\\ 0 & 0 & 1 \end{array}\right] \]
- P.S. Dans le formalisme sphérique, l'apparition d'un facteur $2$ "quelque part" est inévitable. Et, en effet, il semble plus raisonnable de se résigner à utiliser soit deux fois Minkowski, soit une demi-fois Minkovski plutôt que de trainer des $\sqrt 2$.
Cordialement, Pierre.Bonnes Fêtes à tous... dans un monde qui n'est pas très festif ! -
Merci pldx1, je n'ai pas refait les calculs mais la stratégie me parait claire ! Exercice intéressant, je ne me serais pas posé ces questions en me contentant d'utiliser les matrices qui fonctionnent si je n'avais pas eu besoin d'en trouver certaines moi-même. Tu dis que je repars de zéro avec une construction axiomatique, en fait je suis partie de zéro (pas le choix) en essayant de me dépatouiller pour obtenir les propriétés que j'avais vu fonctionner. C'est moins stylé mais plus proche de la réalité.Quant à ton glossaire, expérience réussie et ... répétable, cela pourrait faire partie des raisons de se réjouir même dans un monde pas très festifBonne fêtes tout le monde égalementLa philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
-
Bonjour, $\def\bartomor{\boxed{\mathrm{b\Phi m}}} \def\bartocar{\boxed{\mathrm{b\Phi c}}} \def\cartomor{\boxed{\mathrm{c\Phi m}}} \def\vbartomor{\boxed{\mathrm{b\Psi m}}} \def\vbartocar{\boxed{\mathrm{b\Psi c}}} \def\vcartomor{\boxed{\mathrm{c\Psi m}}} \def\vsphtomor{\boxed{\mathrm{s\Psi m}}} \def\bartohhh{\boxed{\mathrm{b\Phi h}}} \def\vbartohhh{\boxed{\mathrm{b\Psi h}}}\def\verc{\underset{c}{Ver}} \def\mqic{\boxed{\underset{c}{\mathcal{Q}}^{-1}}} \def\mqqc{\boxed{\underset{c}{\mathcal{Q}}}} \def\mqip{\boxed{\underset{p}{\mathcal{Q}}^{-1}}}\def\vers{\underset{s}{Ver}} \def\colsph#1{\underset{s}{\mathcal{V}}{}_{#1}} \def\mqqp{\boxed{\underset{p}{\mathcal{Q}}}} \def\msirius{\boxed{\mathrm{Sirius}}} \def\sirius{\mathrm{Sirius}}$Après avoir consolidé la partie "rantanplan" , il reste à passer à l'espace des cycles qui, après tout, est l'objet de ce fil.
- Les formalismes $b,\left\{ z,p,s\right\} ,c$ (aka barycentrique, {zincluzive, pedoe, spherical}, cartesien) consistent chacun à choisir une base de l'espace des cycles après avoir choisi une métrique. Leur action sur les points de $\pcct$ forment les plongements de Veronese, à savoir (pour un point à distance finie): \begin{eqnarray*} \verg\left(M\right) & \simeqx b & \left[\begin{array}{cccc} p & q & r & -\dfrac{a^{2}qr+b^{2}pr+c^{2}pq}{p+q+r}\end{array}\right]\;\simeqx c\;\left[x,y,t,\dfrac{x^{2}+y^{2}}{t}\right]\\ & \simeqx z & \left[\begin{array}{cccc} z & t & \zeta & \dfrac{z\,\zeta}{t}\end{array}\right]\simeqx p\left[\begin{array}{cccc} z & t & \zeta & \dfrac{z\,\zeta}{t}-t\end{array}\right]\simeqx s\left[z+\zeta,\dfrac{z-\zeta}{\ii},t-\dfrac{z\,\zeta}{t},t-\dfrac{z\,\zeta}{t}\right] \end{eqnarray*}
- Le passage d'un formalisme à l'autre se fait selon \[ \tra{\verz\left(\bartomor\cdot\left(x:y:z\right)\right)}=\vbartomor\cdot\tra{\verB\left(x:y:z\right)}\where\vbartomor\doteq\left[\begin{array}{cccc} R\alpha & R\beta & R\gamma & 0\\ 1 & 1 & 1 & 0\\ \dfrac{R}{\alpha} & \dfrac{R}{\beta} & \dfrac{R}{\gamma} & 0\\ R^{2} & R^{2} & R^{2} & 1 \end{array}\right] \] \[ \tra{\verz\left(\cartomor\cdot\left(x:y:t\right)\right)}=\vcartomor\cdot\tra{\verc\left(x:y:t\right)}\where\vbartomor\doteq\left[\begin{array}{cccc} 1 & +\ii & 0 & 0\\ 0 & 0 & 1 & 0\\ 1 & \mathrm{-\ii} & 0 & 0\\ 0 & 0 & 0 & 1 \end{array}\right] \] \[ \tra{\verz\left(z:t:\zeta\right)}=\vsphtomor\cdot\tra{\vers\left(z:t:\zeta\right)}\where\vsphtomor\doteq\dfrac{1}{2}\left[\begin{array}{cccc} 1 & +\ii & 0 & 0\\ 0 & 0 & 1 & 1\\ 1 & -\ii & 0 & 0\\ 0 & 0 & -1 & 1 \end{array}\right] \]
- Les points à l'infini de $\pcct$ --à l'exception des ombilics-- coagulent tous en un seul point, soit \[ \verg\left(\infty\right)\simeq\left[0,0,0,1\right]\;\;\;\text{except from }\vers\left(\infty\right)\simeq\left[0,0,-1,+1\right] \] On vérifie l'action des $\boxed{x\Psi m}$.
- La sphère des Veronese s'obtient par identification. On normalise $\mqig$ par la condition \[ \verg\left(M/\left(\linfg\cdot M\right)\right)\cdot\mqig\cdot\tra{\verg\left(N/\left(\linfg\cdot N\right)\right)}=\left|MN\right|^{2} \] Cela donne: \[ \mqib=\left[\begin{array}{cccc} 0 & c^{2} & b^{2} & 1\\ c^{2} & 0 & a^{2} & 1\\ b^{2} & a^{2} & 0 & 1\\ 1 & 1 & 1 & 0 \end{array}\right]\ptv\mqic=\left[\begin{array}{cccc} -2 & 0 & 0 & 0\\ 0 & -2 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0 \end{array}\right] \] \[ \mqiz=\left[\begin{array}{cccc} 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right]\ptv\mqip=\left[\begin{array}{cccc} 0 & 0 & -1 & 0\\ 0 & 2 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right]\ptv\mqis=\dfrac{1}{2}\,\left[\begin{array}{cccc} -1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 1 \end{array}\right] \] On vérifie que: \[ \tra{\vbartomor}\cdot\mqiz\cdot\vbartomor=\mqib \]
- La sphère des colonnes est l'inverse de la sphère des Veronese. Et donc: \[ \mqqb\simeq\dfrac{1}{8S^{2}}\left[\begin{array}{cccc} -a^{2} & \mathit{\Sc} & \mathit{\Sb} & a^{2}\mathit{\Sa}\\ \mathit{\Sc} & -b^{2} & \mathit{\Sa} & b^{2}\mathit{\Sb}\\ \mathit{\Sb} & \mathit{\Sa} & -c^{2} & c^{2}\mathit{\Sc}\\ a^{2}\mathit{\Sa} & b^{2}\mathit{\Sb} & c^{2}\mathit{\Sc} & -b^{2}a^{2}c^{2} \end{array}\right]\ptv\mqqc\simeq\dfrac{1}{2}\left[\begin{array}{cccc} -1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0 & 0 & 2\\ 0 & 0 & 2 & 0 \end{array}\right] \] \[ \mqqz\simeq\left[\begin{array}{cccc} 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right]\ptv\mqqp\simeq\left[\begin{array}{cccc} 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & 1 & 0 & -2 \end{array}\right]\ptv\mqqs\simeq\left[\begin{array}{cccc} -2 & 0 & 0 & 0\\ 0 & -2 & 0 & 0\\ 0 & 0 & -2 & 0\\ 0 & 0 & 0 & 2 \end{array}\right] \]
- On obtient le $\colgen{}$ d'une droite $\Delta$ par identification de $\left(\Delta\cdot M\right)\times\left(\linfg\cdot M\right)$ avec l'action de $\colgen{}\left(\Delta\right)$ sur $\verg\left(M\right)$. Cela donne: \[ \colgen{}\left[y_{1},y_{2},y_{3}\right]\simeq y_{1}:y_{2}:y_{3}:0\;\;\;\text{except from }\colsph{}\simeq\dfrac{1}{2}\left(y_{1}+y_{3}:\ii\left(y_{1}-y_{3}\right):y_{2}:y_{2}\right) \] On vérifie l'action des $\boxed{x\Psi m}$: \[ \tra{\vbartomor\cdot\colcir{}\left(\Delta\right)\simeq\colbar{}\left(\Delta\cdot\bartomor\right)} \]
-
line 35: $cX=cM-x_{7}d^{2}\,\msirius$.
line 36: $cXn\doteq\plinfg\cdot cX=\plinfg\cdot cM=1$ car $\sirius$ est sur Pf, tandis que $cM$ est déjà normé.
line 37: $\left\langle cX\mid cX\right\rangle =\left\langle cM\mid cM\right\rangle +\left(x_{7}d^{2}\right)^{2}\left\langle \sirius\mid\sirius\right\rangle -2x_{7}d^{2}\left\langle cM\mid\sirius\right\rangle =-2x_{7}d^{2}$
donc $\mathrm{myfaccerLinf}$ vaut simplement: $\left\langle cM\mid\sirius\right\rangle $... Et l'on a: \[ \msirius\eqx b1:1:1:0\eqx{z,p}0:1:0:0\eqx s0:0:\dfrac{1}{2}:\dfrac{1}{2}\eqx c0:0:1:0 \] - On passe aux colonnes de Lie. On voit que $\colgenf{}\in\mqqgf$ impose: \begin{eqnarray*} \left(vM,\rho\right) & \mapsto & \left[cM-\rho^{2}\sirius,\;\rho\right]\\ \Delta & \mapsto & \left[DD,\;\dfrac{1}{2}\sqrt{\Delta\cdot\mmmg\cdot\tra{\Delta}}\right] \end{eqnarray*}
- Au vu de la compatibilité avec les changements de formalisme, il suffit d'étudier les propriétés de ces colonnes dans le formalisme $z$. Cela donne \begin{eqnarray*} \left(p:q:r,\rho_{1}\right) & \mapsto & \colgenf 1\eqx z\left(-\dfrac{r}{q}:\dfrac{pr}{q^{2}}-\rho_{1}^{2}:-\dfrac{p}{q}:1:\rho_{1}\right)\\ \left[f,g,h\right] & \mapsto & \colgenf 3\simeqx z\left(f:g:h:0:-\sqrt{f\,h}\right) \end{eqnarray*}
- Et alors la fonction de Searby, definie par \[ \sigma:\left(\colgenf 1,\colgenf 2\right)\mapsto1-\frac{1}{2}\,\left\langle \left.\dfrac{\colgenf{_{1}}}{\colgenf{_{1}}\left[5\right]}\right|\mqqgf\left|\dfrac{\colgenf 2}{\colgenf{_{2}}\left[5\right]}\right.\right\rangle \] est méchamment projective (en dehors des cercles-points et des droites-isotropes) et vérifie les propriétés: \begin{eqnarray*} \sigma\left(cir,cir\right) & = & \frac{\rho_{1}^{2}+\rho_{2}^{2}-\mathit{d}^{2}}{2\rho_{1}\rho_{2}}\\ \sigma\left(cir,lin\right) & = & d^{2}/\rho\\ \sigma\left(lin,lin\right) & = & \dfrac{f_{1}h_{2}+f_{2}h_{1}}{\sqrt{2\,f_{1}h_{1}}\,\sqrt{2\,f_{2}h_{2}}} \end{eqnarray*}
- Le lecteur attentif aura immédiatement remarqué la formule d'Al Kashi dans le triangle $\left(\rho_{1},\rho_{2},d\right)$ ainsi que l'usuelle formule des cosinus wrt une forme quadratique. Pour finir de rassurer les sceptiques, on peut partir de $\tan\left(\Delta_{1},\Delta_{2}\right)=\dfrac{-\ii\left(f_{1}h_{2}-f_{2}h_{1}\right)}{f_{1}h_{2}+f_{2}h_{1}}$ et vérifier la valeur de $1/\left(1+\tan^{2}\right)...$
- En résumé, la fonction de Searby donne le cosinus de l'angle d'intersection lorsqu'il y a intersection... et donne un pas-cosinus lorsqu'il n'y a pas d'intersection visible.
- Le "quelque part quelqu'un" du post initial désignait
Searby D.G. On three circles. Forum Geometricorum, vol. 9, 181–193 (2009).
http://forumgeom.fau.edu/FG2009volume9/FG200918.pdf.
-
Si je peux me permettre, comme forumgeom est mort, je remplacerai par son archive http://web.archive.org/web/20220120060005/https://forumgeom.fau.edu/FG2009volume9/FG200918.pdfEt on constate que ce bazar est effectivement conçu pour résoudre le problème d'Apollonius ce que j'avais fini par comprendre avec les $2^3$ possibilités pour les signes des 3 cercles.La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
-
Oui, en effet. $\def\colhhh#1{\underset{h}{\mathcal{V}}{}_{#1}} \def\verh{\underset{h}{Ver}} \def\mqih{\boxed{\underset{h}{\mathcal{Q}}^{-1}}} \def\mqqh{\boxed{\underset{h}{\mathcal{Q}}}} \def\colhhhf#1{\widehat{\underset{h}{\mathcal{V}}{}_{#1}}}$
- A titre de contrôle, on peut introduire le formalisme $h$, utilisant les barycentriques + cercles points centrés en $I_{0},I_{a},I_{b},I_{c}$.
- En utilisant le programme fourni par Vassillia, on obtient tous les objets utiles en un seul clic !
- Passage d'un formalisme à l'autre \[ \tra{\verh\left(x:y:z\right)}=\vbartohhh\cdot\tra{\verB\left(x:y:z\right)}\where\vbartohhh\doteq \] \[ \left[\begin{array}{cccc} bc\left(a+b+c\right) & ca\left(a+b-c\right) & ab\left(a-b+c\right) & b+c-a\\ bc\left(a+b-c\right) & ca\left(a+b+c\right) & ab\left(b+c-a\right) & c+a-b\\ bc\left(c+a-b\right) & ca\left(b+c-a\right) & ab\left(a+b+c\right) & a+b-c\\ bc\left(b+c-a\right) & ca\left(c+a-b\right) & ab\left(a+b-c\right) & a+b+c \end{array}\right] \]
- Image unique des points à l'infini \begin{eqnarray*} Ver_{h}\left(\infty\right) & \simeq & \left[b+c-a,\,c+a-b,\,a+b-c,\,a+b+c\right]\\ \msirius & \eqx h & \left[\dfrac{+1}{4abc}:\dfrac{+1}{4abc}:\dfrac{+1}{4abc}:\dfrac{-1}{4abc}\right] \end{eqnarray*}
- Sphère des Veronese. On a $\tra{\vbartohhh}\cdot\mqib\cdot\vbartohhh=\mqih$ avec \[ \mqih=\dfrac{1}{32abc\,S^{2}}\left[\begin{array}{cccc} -abc & c\mathit{\Sc} & b\mathit{\Sb} & a\mathit{\Sa}\\ c\mathit{\Sc} & -abc & a\mathit{\Sa} & b\mathit{\Sb}\\ b\mathit{\Sb} & a\mathit{\Sa} & -abc & c\mathit{\Sc}\\ a\mathit{\Sa} & b\mathit{\Sb} & c\mathit{\Sc} & -abc \end{array}\right] \]
- Sphère des colonnes \[ \mqqh=4abc\left[\begin{array}{cccc} 0 & c & b & a\\ c & 0 & a & b\\ b & a & 0 & c\\ a & b & c & 0 \end{array}\right] \]
- Colonne associée à une droite $\colhhh{}$... oh la la. Length= 1781.
- Et maintenant, un exemple: \[ \colhhhf{BC}\simeq\left[\begin{array}{c} -\left(b+c-a\right)a^{2}-\left(c+a-b\right)b^{2}-\left(a+b-c\right)c^{2}-2abc\\ \left(c+a-b\right)a^{2}+\left(b+c-a\right)b^{2}-\left(a+b+c\right)c^{2}+2abc\\ \left(a+b-c\right)a^{2}-\left(a+b+c\right)b^{2}+\left(b+c-a\right)c^{2}+2abc\\ -\left(a+b+c\right)a^{2}+\left(a+b-c\right)b^{2}+\left(c+a-b\right)c^{2}+2abc\\ 16Sabc \end{array}\right] \] On résoud le système $\left\{ \left.\left\langle \left.\colgenf X\right|\mqqgf\left|\colgenf Y\right.\right\rangle =0\right|Y=BC,CA,AB,X\right\} $. Cela donne \[ \colgenf X=\dfrac{1}{a+b+c}\left(\left[\begin{array}{c} 0\\ 0\\ 0\\ 1\\ 2S \end{array}\right]\right)-\left(\dfrac{2S}{a+b+c}\right)^{2}\left(\dfrac{1}{4abc}\left[\begin{array}{c} 1\\ 1\\ 1\\ -1\\ 0 \end{array}\right]\right) \] On reconnait, ô surprise immense, à gauche: le Veronese du point X(1) et à droite $r_{0}^{2}$ fois $\msirius$.
Comme répété à l'envie dans les instructions de l'Inspection Générale de Mathématiques: toute virtuosité utile est à prescrire !
-
La vraie surprise serait que l'inspection générale de mathématiques considère effectivement qu'il s'agit d'une virtuosité utile à prescrire. Pour les lecteurs et lectrices qui se sont perdues en route, on retombe sur le cercle inscrit...Même si c'est intéressant pour avoir les idées claires sur ce qu'on veut et comment l'obtenir dans le cas général, on est d'accord qu'on va rester sur les coordonnées barycentriques, inclusives et cartésiennes avec le veronese normal, non ? Disons que le choix de "None" dans mon code qui consiste à avoir un veronese par défaut n'est pas du au hasard. L’intérêt, de mon point de vue, est que quand je fais appel à une fonction utilisant un veronese quelque part sans rien préciser en entrée, c'est celui-là qui va être utilisé. Pour les autres qui doivent donc être précisés, à part obtenir des calculs plus laborieux, certes peu importe puisque c'est l'ordinateur qui les fait, je ne vois pas de gains évidents.Ce que j'appelle le veronese normal, c'est pour un point $P\simeq (p:q:r)$ quelque soit les coordonnées, on a $Ver(P) \simeq (p : q : r : \dfrac{^t P\cdot pyth \cdot P}{\mathcal L_{\infty}\cdot P})$
La philosophie nous enseigne à douter de ce qui nous paraît évident. La propagande, au contraire, nous enseigne à accepter pour évident ce dont il serait raisonnable de douter. (Aldous Huxley)
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 165.4K Toutes les catégories
- 63 Collège/Lycée
- 22.2K Algèbre
- 37.6K Analyse
- 6.3K Arithmétique
- 61 Catégories et structures
- 1.1K Combinatoire et Graphes
- 13 Sciences des données
- 5.1K Concours et Examens
- 23 CultureMath
- 51 Enseignement à distance
- 2.9K Fondements et Logique
- 10.8K Géométrie
- 84 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 79 Informatique théorique
- 3.9K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 26 Mathématiques et finance
- 342 Mathématiques et Physique
- 5K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10.1K Probabilités, théorie de la mesure
- 804 Shtam
- 4.2K Statistiques
- 3.8K Topologie
- 1.4K Vie du Forum et de ses membres