Triangles à côtés, {a, b, c}, entiers et dont un angle est multiple d’un autre (B = k A, k entier positif).

Expression de Sin[k x]/Sin[x] à l’aide des Polynômes de Tchebychev de deuxième espèce, U[k, Cos[x]] :

Table[Sin[x] ChebyshevU[k, Cos[x]], {k, 0, 5}]

TrigReduce[Table[Sin[x] ChebyshevU[k, Cos[x]], {k, 0, 5}]]

Les premiers polynômes U[k, z] pour k allant de 0 à 5 :

Table[ChebyshevU[k, z],{k,0,5}]

Vu la relation des sinus, les côtés {a, b, c} sont proportionnels à {1, U[k-1, Cos[α]], U[k, Cos[α]]} :

Table[{1, ChebyshevU[k - 1, Cos[α]], ChebyshevU[k, Cos[α]]}, {k, 1, 5}]

Les côtés {a, b, c } sont rationnels si Cos[α] = m/(2n) (m et n entiers positifs) :

Table[{1, ChebyshevU[k - 1, m/(2 n)], ChebyshevU[k, m/(2 n)]}, {k, 1, 5}]//Column

Les côtés {a, b, c } sont entiers à condition de chasser les dénominateurs, ce qui fournit la forme générale des solutions cherchées (On n’affiche que les cas, k = 1, 2, ..., 5) :

sol[k_] := n^k  Together[{ChebyshevU[0, m/(2 n)], ChebyshevU[k - 1, m/(2 n)], ChebyshevU[k, m/(2 n)]}]

Table[sol[k], {k, 1, 5}]//Column

Pour tout k entier positif, on trouve les solutions acceptables en parcourant les valeurs croissantes de m au départ de m=1 (on se limite à mmax) et en ne retenant que les valeurs de n qui satisfont la double condition, m/2 < n < (m/2)/Cos[Pi/(k+1)] :

resu[k_, mmax_] := Table[sol[k], {m, 1,mmax}, {n, If[IntegerQ[m/2],m/2+1,Ceiling[m/2 ]], If[IntegerQ[(m/2)/Cos[Pi/(k + 1)]],(m/2)/Cos[Pi/(k+ 1)]-1,Floor[(m/2)/Cos[Pi/(k+ 1)]]]}]

resu[2, 8]     (*Les parenthèses vides signalent les valeurs de m pour lesquelles la double condition sur n n'est jamais satisfaite*)

triangles[k_, mmax_] := Cases[Flatten[resu[k, mmax], 1], _List]    (*Elimine les parenthèses vides*)

Solutions du cas k = 2 :

triangles[2,8]       (*On pousse les calculs jusqu'à la valeur m = 8 et on trouve 12 triangles, {a, b, c}, qu'on affiche ensuite*)

GraphicsGrid[
 Partition[
  Table[Graphics[{EdgeForm[Thick], White, SSSTriangle @@ triangles[2, 12][[i]]}, 
    PlotLabel -> Style[triangles[2, 12][[i]], Black]], {i, 1, 12}], UpTo[4]],Frame->All]
(*Pour tout triangle, la base horizontale est AB, parcourue de gauche à droite
droite, et C est en haut. Les mesures des côtés sont indiquées au-dessus de
chaque triangle, dans l'ordre {a,b,c}, et l'angle en B vaut 2 fois l'angle en A*)

Vérification des angles :

angles[{a_, b_, c_}] := {ArcCos[(-a^2 + c^2 + b^2)/(2. b c)]/Degree,ArcCos[(a^2 + c^2 - b^2)/(2. a c)]/Degree, ArcCos[(a^2 - c^2 + b^2)/(2. a b)]/Degree}

angles[{4,6,5}]     (*Simple exemple, l'angle en B est bien double de celui en A. Idem pour tous les autres.*)

Solutions du cas k = 3 :

triangles[3,12]       (*On pousse les calculs jusqu'à la valeur m = 12 et on trouve 13 triangles, {a, b, c}, dont 12 seulement sont affichés ensuite*)

GraphicsGrid[
 Partition[
  Table[Graphics[{EdgeForm[Thick], White, SSSTriangle @@ triangles[3, 12][[i]]}, 
    PlotLabel -> Style[triangles[3, 12][[i]], Black]], {i, 1, 12}], UpTo[4]],Frame->All]
(*Pour tout triangle, la base horizontale est AB, parcourue de gauche à
droite, et C est en haut. Les mesures des côtés sont indiquées au-dessus de
chaque triangle, dans l'ordre {a,b,c}, et l'angle en B vaut 3 fois l'angle en
A*)

angles[{8,10,3}]     (*L'angle en B  est bien triple de celui en A. Simple exemple, idem pour tous les autres.*)

Solutions du cas k = 4 :

triangles[4,16]       (*On pousse les calculs jusqu'à la valeur m = 16 et on trouve 12 triangles, {a, b, c}, qu'on affiche ensuite*)

GraphicsGrid[
 Partition[
  Table[Graphics[{EdgeForm[Thick], White, SSSTriangle @@ triangles[4, 16][[i]]}, 
    PlotLabel -> Style[triangles[4, 16][[i]], Black]], {i, 1, 12}], UpTo[4]],Frame->All]
(*Pour tout triangle, la base horizontale est AB, parcourue de gauche à
droite, et C est en haut. Les mesures des côtés sont indiquées au-dessus de
chaque triangle, dans l'ordre {a,b,c}, et l'angle en B vaut 4 fois l'angle en
A*)

angles[{81,105,31}]     (*L'angle en B est bien quadruple de celui en A. Simple exemple, idem pour tous les autres.*)

Les cas suivants (k = 5, 6, ...) se traitent de la même façon.