Intéressons-nous aux triplets que j'appelle quasi-pythagoriciens : les triplets \( (i, j, n) \) satisfaisant :
\[ \bbox[white, 10px, border: 3px solid black]{ i^2 + j^2 = 1 + n^2 } (1) \] \[ 1 \leq i \leq n \] \[ 1 \leq j \leq n \]Il va de soi que si \( (i, j, n) \) est un triplet quasi-pythagoricien, alors \( (j, i, n) \) en est un lui aussi. Quand cela nous arrangera, nous supposerons \( i \leq j \).
En mode expérimental / exploratoire, programmons un peu : plaçons sur un même graphique 2D (à défaut de pouvoir le faire en 3D !) les points \( (i, n) \) et les points \( (j, n) \) tels que \( (i, j, n) \) soit quasi-pythagoricien :
| En PARI | En Java | Constat |
|---|---|---|
f=fileopen("test.txt","w");
for(n=1,50000,
my(s=1+n^2,q);
for(k=1,n,
q=issquare(s-k^2);
filewrite1(f,if(q,"#"," "))
);
filewrite1(f,"\n")
);
fileclose(f)
#
##
# #
# #
# #
# #
# # #
# # ##
# #
# #
# #
# ## #
# # # #
# #
# #
# #
# # # #
# # # # ##
# #
# #
# # # #
# # # #
# # # #
# #
# #
# #
# # # #
# # # #
# #
# # # #
# # # #
# # # # ##
# # # #
# # # #
# #
# #
...
|
Pour n allant de 1 à 500 et i ou j allant de 1 à n, sur une image 0..500 X 0..500 :
|
On constate qu'au moins une partie des points s'alignent sur ce que j'appelle des "rais". Un rai = une sorte de droite 3D en pointillés, dont les points sont régulièrement espacés. Ci-dessous, un agrandissement de l'image précédente, et un rai en particulier en BLANC (rappel : 2 points blancs de même Y en 2D correspondent à 1 seul point blanc en 3D)
|
Prenons pour définition formelle d'un rai :
|
jeu d'équations paramétriques discrètes de la forme \[ \bbox[white, 10px, border: 3px solid black]{ i = I(k) = a k + \alpha } (2) \] \[ \bbox[white, 10px, border: 3px solid black]{ j = J(k) = b k + \beta } (3) \] \[ \bbox[white, 10px, border: 3px solid black]{ n = N(k) = c k + \gamma } (4) \] |
avec
|
On constate par la lecture des graphiques que les équations des rais de triplets quasi-pythagoriciens sont concrètement les suivantes :
| nom de rai | \( I(k) \) | \( J(k) \) | \( N(k) \) |
|---|---|---|---|
| rai trivial | \( 0k + 1 \) | \( 1k + 0\) | \( 1k + 0\) |
| rai (3,4,5)#1 | \( 3k+1 \) | \( 4k+3 \) | \( 5k+3 \) |
| rai (3,4,5)#2 | \( 3k+2 \) | \( 4k+1 \) | \( 5k+2 \) |
| rai (5,12,13)#1 | \( 5k+1 \) | \( 12k+5 \) | \( 13k+5 \) |
| rai (5,12,13)#2 | \( 5k+4 \) | \( 12k+7 \) | \( 13k+8 \) |
| rai (8,15,17)#1 | \( 8k+1 \) | \( 15k+4 \) | \( 17k+4 \) |
| rai (8,15,17)#2 | \( 8k+7 \) | \( 15k+11 \) | \( 17k+13 \) |
| rai (7,24,25)#1 | \( 7k+1 \) | \( 24k+7 \) | \( 25k+7 \) |
| rai (7,24,25)#2 | \( 7k+6 \) | \( 24k+17 \) | \( 25k+18 \) |
| rai (20,21,29)#1 | \( 20k+9 \) | \( 21k+8 \) | \( 29k+12 \) |
| rai (20,21,29)#2 | \( 20k+11 \) | \( 21k+13 \) | \( 29k+17 \) |
| ... | ... | ... | ... |
Constatations / conjectures :
Supposons avoir affaire à des rais comme spécifié ci-dessus ; en injectant (2) (3) (4) dans (1) il vient :
\[ 1 + (ck + \gamma)^2 = (ak + \alpha)^2 + (bk + \beta)^2 \]On identifie les coefficients des polynômes en \( k \), cela donne :
\[ \bbox[white, 10px, border: 3px solid black]{ c^2 = a^2 + b^2 } (5) \] \[ \bbox[white, 10px, border: 3px solid black]{ c \gamma = a \alpha + b \beta } (6) \] \[ \bbox[white, 10px, border: 3px solid black]{ 1 + \gamma^2 = \alpha^2 + \beta^2 } (7) \]L'équation (5) montre qu'un rai a nécessairement à voir avec un triplet pythagoricien (toujours primitif ? Cela demande encore à être prouvé...).
Si on multiplie l'équation (7) par \( c^2 \), on obtient
\[ c^2 + c^2 \gamma^2 = c^2 \alpha^2 + c^2 \beta^2 \]Tandis que si on met au carré l'équation (6), on obtient
\[ c^2 \gamma^2 = (a\alpha + b\beta)^2 \]En combinant les deux résultats, on peut éliminer \( \gamma \), on obtient
\[ c^2 + (a\alpha + b\beta)^2 = c^2 \alpha^2 + c^2 \beta^2 \]En développant, en usant du fait que \( a^2 + b^2 = c^2 \), et en rangeant les termes de façon à obtenir une équation du second degré en \( \alpha \), on obtient :
\[ (b^2) \alpha^2 + (- 2 a b \beta) \alpha + (a^2 \beta^2 - c^2) = 0 \]Le calcul du discriminant de cette équation du second degré donne :
\[ \Delta = (2bc)^2 \]Les solutions de l'équation du second degré sont alors :
\[ \alpha = \frac{a \beta \pm c}{b} \]Cela peut aussi s'écrire :
\[ \alpha b - a \beta = \pm c \]Ou si on veut :
\[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \alpha & a \\ \beta & b \\ \end{vmatrix} = \pm c } (8) \]Le même genre de calcul (par élimination de \( \alpha \), ou de \( \beta \)) permet d'établir, de même, que :
\[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \beta & b \\ \gamma & c \\ \end{vmatrix} = \pm a } (9) \] \[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \gamma & c \\ \alpha & a \\ \end{vmatrix} = \pm b } (10) \]Ainsi, il existe des nombres \( (\varepsilon_a, \varepsilon_b, \varepsilon_c) \in \{ -1, 1 \}^3 \) tels que :
\[ \alpha b - a \beta = \varepsilon_c c \] \[ \beta c - b \gamma = \varepsilon_a a \] \[ \gamma a - c \alpha = \varepsilon_b b \]On peut aussi écrire cela :
\[ a = \varepsilon_a ( \beta c - \gamma b ) \] \[ b = \varepsilon_b ( \gamma a - \alpha c ) \] \[ c = \varepsilon_c ( \alpha b - \beta a ) \]On injecte ces résultats dans l'équations (6) :
\[ \varepsilon_c ( \alpha b - \beta a ) \gamma = \varepsilon_a ( \beta c - \gamma b ) \alpha + \varepsilon_b ( \gamma a - \alpha c ) \beta \] \[ \bbox[white, 10px, border: 3px solid black]{ \alpha b \gamma (\varepsilon_a + \varepsilon_c) - a \beta \gamma (\varepsilon_b + \varepsilon_c) - \alpha \beta c (\varepsilon_a - \varepsilon_b) = 0} (11) \]Procédons à une disjonction des cas par valeur de \( (\varepsilon_a, \varepsilon_b, \varepsilon_c) \). Il y a 8 cas en tout : +++, ++-, +-+, ..., --+, --- , mais on peut les regrouper par deux
| Cas |
(11 ) se simplifie en |
Conséquence |
Commentaire |
|---|---|---|---|
|
+++ --- |
\[ \alpha b = a \beta \] | \[ c = 0 \] |
Cas sans intérêt |
|
-++ +-- |
\[ \alpha c = a \gamma \] | \[ b = 0 \] |
Cas sans intérêt |
|
+-+ -+- |
\[ \beta c = b \gamma \] | \[ a = 0 \] |
Cas sans intérêt |
|
++- --+ |
\[ 0 = 0 \] |
? |
Intéressant ! |
Nous nous plaçons dans le cas intéressant et posons l'existence d'un \( \varepsilon \in \{ -1, 1 \} \) unique tel que :
\[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \alpha & a \\ \beta & b \\ \end{vmatrix} = - \varepsilon c } (8') \] \[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \beta & b \\ \gamma & c \\ \end{vmatrix} = + \varepsilon a } (9') \] \[ \bbox[white, 10px, border: 3px solid black]{ \begin{vmatrix} \gamma & c \\ \alpha & a \\ \end{vmatrix} = + \varepsilon b } (10') \]On reconnaît les composantes d'un produit vectoriel. (8') (9') (10') peuvent se réécrire :
\[ \bbox[white, 10px, border: 3px solid black]{ \begin{pmatrix} \alpha \\ \beta \\ \gamma \\ \end{pmatrix} \wedge \begin{pmatrix} a \\ b \\ c \\ \end{pmatrix} = \varepsilon \begin{pmatrix} a \\ b \\ -c \\ \end{pmatrix} } (12) \]... ce qui explique plus ou moins le fait que pour un \( (a, b, c) \) fixé, les rais aillent par paires : si
\[ \begin{pmatrix} \alpha_1 \\ \beta_1 \\ \gamma_1 \\ \end{pmatrix} \wedge \begin{pmatrix} a \\ b \\ c \\ \end{pmatrix} = + \begin{pmatrix} a \\ b \\ -c \\ \end{pmatrix} \]et
\[ \begin{pmatrix} \alpha_2 \\ \beta_2 \\ \gamma_2 \\ \end{pmatrix} \wedge \begin{pmatrix} a \\ b \\ c \\ \end{pmatrix} = - \begin{pmatrix} a \\ b \\ -c \\ \end{pmatrix} \]alors leur somme vaut, par linéarité
\[ \begin{pmatrix} \alpha_1 + \alpha_2 \\ \beta_1 + \beta_2 \\ \gamma_1 + \gamma_2 \\ \end{pmatrix} \wedge \begin{pmatrix} a \\ b \\ c \\ \end{pmatrix} = 0 \]... les vecteurs sont liés (en fait ils sont même égaux).
|
Exemple a=3, b=4, c=5
|
Ces droites sont parallèles et tangentes au cercle unité. On cherche les points de ces droites
Résultat (pour cet exemple) \[ \textcolor{red}{ (x, y) = (\alpha, \beta) = (2, 1) } \]ou \[ \textcolor{blue}{ (x, y) = (\alpha, \beta) = (1, 3) } \]\( \gamma \) s'en déduit par (7) : \[ \textcolor{red}{ \gamma = \sqrt{2^2 + 1^2 - 1} = 2 } \]ou \[ \textcolor{blue}{ \gamma = \sqrt{1^2 + 3^2 - 1} = 3 } \] |
|
Autre exemple, a=20, b=21, c=29
|
\[ \textcolor{red}{ (x, y) = (\alpha, \beta) = (9, 8) } \] \[ \textcolor{blue}{ (x, y) = (\alpha, \beta) = (11, 13) } \] |
Décidons d'appeler \( D_\varepsilon (a,b,c) \) la droite d'équation \( bx - ay = \varepsilon c \) c'est-à-dire \( y = \frac{b}{a}x - \varepsilon c \). En termes colorés, \( D_{+1} \) est la droite rouge, \( D_{-1} \) est la droite bleue.
Si \( (a, b, c) \) est primitif, alors le PGCD de \( a \) et de \( b \) vaut \( 1 \). L'identité de Bézout permet de dire qu'il existe des entiers \( u \) et \( v \) tels que
\[ \bbox[white, 10px, border: 3px solid black]{ a u + b v = 1 } (13) \]On peut multiplier cette égalité par \( \varepsilon c \) :
\[ au\varepsilon c + bv\varepsilon c = \varepsilon c \]En écrivant l'équation ainsi,
\[ b(v\varepsilon c) - a(-u\varepsilon c) = \varepsilon c \]on constate que le point \( (v\epsilon c , -u \varepsilon c ) \), de coordonnées entières, est sur la droite \( D_\varepsilon(a, b, c) \).
Il n'y aucun raison de supposer que l'on a de la chance, que \( (0\leq v \varepsilon c \lt a) \) et \( (0 \leq -u \varepsilon c \lt b) \). Pour "forcer" ces encadrements, on effectue la division euclidienne de \( v \varepsilon c \) par \( a \), et la division euclidienne de \( -u \varepsilon c \) par \( b \). Il vient :
\[ v \varepsilon c = k a + \alpha \] \[ -u \varepsilon c = k b + \beta \]Il s'agit nécessairement du même \( k \) (on voit bien que \( D_\varepsilon (a,b,c) \) n'a aucun point de coordonnées entières dans les quadrants \( xy \lt 0 \)). Finalement on aboutit aux formules :
\[ \bbox[white, 10px, border: 3px solid black]{ \alpha = (v \varepsilon c) \mbox{ mod } a } (14) \] \[ \bbox[white, 10px, border: 3px solid black]{ \beta = (-u \varepsilon c) \mbox{ mod } b } (15) \]\( (\alpha , \beta ) \), de coordonnées entières, est lui aussi sur la droite \( D_\varepsilon(a, b, c) \) (faire le calcul) et, de plus, est dans le rectangle \( (0,0)(a,0)(a,b)(0,b) \).
Vérification avec un exemple, \( a = 20, b=21, c =29 \),
Etape 1, détermination des coefficients de Bézout par l'algorithme d'Euclide étendu,
\[ 21 = 20 \times 1 + 1 \] \[ 20 \times (-1) + 21 \times 1 = 1 \] \[ u = -1 \] \[ v = +1 \]Etape 2, application des formules (14) et (15) dans chacun des cas \( \varepsilon = +1 \) et \( \varepsilon = -1 \)
\[ \alpha_{+} = (+1 \times (+1) \times 29) \mbox{ mod } 20 = 9 \] \[ \beta_{+} = (- (-1) \times (+1) \times 29) \mbox{ mod } 21 = 8 \] \[ \alpha_{-} = (+1 \times (-1) \times 29) \mbox{ mod } 20 = 11 \] \[ \beta_{-} = (- (-1) \times (-1) \times 29) \mbox{ mod } 21 = 13 \]OK.
LR, 26/05/2022.