Le sujet est lisible ici. Il se situe dans le prolongement de cet article. Dans le présent article, on va montrer comment refaire les manips avec Sofus, et notamment ses nouvelles fonctionnalités de calcul matriciel.
C’est Sofus en ligne qui a été utilisé pour les scripts de l’article. En particulier, la tortue de Sofus a été utilisée (hors sujet) pour tracer l’arbre de Stern-Brocot puis le parcourir.
L’arbre de Stern-Brocot a été découvert séparément par le mathématicien allemand Moritz Abraham Stern (1858) et par Achille Brocot (1861), horloger français qui l’a utilisé pour concevoir des systèmes d’engrenages avec un rapport entre rouages proche d’une valeur souhaitée.
Cet exercice aborde la méthode avec des matrices carrées.
On considère les deux matrices G et D (ci-dessous).
On construit un arbre descendant à partir d’une matrice initiale, de la façon suivante : de chaque matrice carrée M de l’arbre partent deux nouvelles branches vers les deux autres matrices M ×G (à gauche) et M × D (à droite). Ces deux nouvelles matrices sont appelées les matrices filles de M.
Dans la méthode considérée, on prend comme matrice initiale la matrice I.
Voici un « script » permettant d’enregistrer dans la mémoire de Sofus, les trois matrices G, D et I :
Note : Ces trois matrices n’auront pas le même statut dans la suite : G et D seront considérées comme des matrices constantes comme dans l’expression « multiplier par G », alors que la matrice I est variable : C’est elle qui sera multipliée par G ou D à chaque étape. La matrice I ne restera donc pas la matrice identité tout au long du script (elle ne restera même pas une matrice carrée tout au long de certains scripts).
1. Déterminer les deux matrices manquantes A et B (en rouge), dans la troisième ligne de l’arbre de Stern-Brocot ci-dessous.
On remarque que la matrice A s’obtient en multipliant la matrice I par G puis par D (parcours de l’arbre),
Dans la suite de l’exercice, on admet que pour toute matrice M de l’arbre de Stern-Brocot, la somme des coefficients de la seconde ligne est non nulle.
2. On associe à une matrice une fraction...
Comme le numérateur de la fraction est la somme des éléments de la première ligne de M et le dénominateur est la somme des éléments de la seconde ligne de M, ce sont les éléments du produit de M par le vecteur (1 ;1). Si on dessine l’arbre de Stern-Brocot avec les fractions :
puis on ajoute la multiplication par le vecteur :
et enfin la division de l’abscisse de ce vecteur par son ordonnée :
on obtient l’arbre de Stern-Brocot en version fractions. Ce n’est pas le choix de l’énoncé mais il lui est équivalent.
Montrer que, dans cette association, le trajet « gauche-droite-gauche » à partir de la matrice initiale dans l’arbre, aboutit à une matrice correspondant à la fraction 3/5.
Le trajet « gauche-droite-gauche » revient à multiplier I successivement par G, par D puis par G, et ensuite on le multiplie par le vecteur (1 ;1) pour avoir le numérateur et le dénominateur de la fraction obtenue :
Celle-ci est donc bien égale à 3/5.
3. Soit M une matrice de l’arbre ... On note ∆M = ad −bc, la différence des produits diagonaux de cette matrice.
La différence est notée Δ parce que c’est un déterminant (mathématiques). Sofus permet de vérifier expérimentalement que ce déterminant est toujours égal à 1 :
a. Montrer que si ad −bc = 1, alors d(a +c)−c(b +d) = 1.
En développant d(a +c)−c(b +d) on constate qu’il est égal à ad-bc :
Par conséquent si le premier est égal à 1, le second aussi, puisqu’ils sont égaux entre eux. Comme le déterminant de la matrice identité est égal à 1, on peut montrer par récurrence sur le parcours de l’arbre, qu’il en est de même pour toutes les matrices de l’arbre.
b.En déduire que si M est une matrice de l’arbre de Stern-Brocot telle que ∆M = 1, alors ∆M×G = 1, c’est-à-dire que la différence des produits diagonaux de la matrice M ×G est aussi égale à 1.
L’expression développée au (a) est justement le déterminant de M×G.
Ce résultat se généralise à un résultat hors programme : Le déterminant du produit de deux matrices, est égal au produit des deux déterminants. Or ici on multiplie M par G dont le déterminant est 1×1-0×1=1 et cette multiplication par G ne change donc pas le déterminant. Idem pour la multiplication par D, dont le déterminant est aussi égal à 1. Ce sont les résultats admis dans la suite de l’exercice.
On admet de même que ∆M×D = 1, et que toutes les autres matrices N de l’arbre de Stern-Brocot vérifient l’égalité ∆N = 1.
4. Déduire de la question précédente que toute fraction associée à une matrice de l’arbre de Stern-Brocot est irréductible.
Du fait que ad-bc=1, il résulte d’après le théorème de Bachet-Bézout que a et c sont premiers entre eux. Or a et c sont les numérateur et dénominateur d’une fraction de l’arbre de Stern-Brocot. Cette fraction est donc irréductible.
5. Soit m et n deux entiers naturels non nuls premiers entre eux. Ainsi la fraction m/n est irréductible. On considère l’algorithme suivant.
a. Recopier et compléter le tableau suivant, indiquer ce qu’affiche l’algorithme lorsqu’on le fait fonctionner avec les valeurs m=4 et n=7.
En modifiant le script précédent pour qu’au lieu d’afficher « gauche », on aille à gauche, on obtient l’affichage suivant :
Gauche
4/3
Droite
1/3
Gauche
1/2
Gauche
1
Ce qui correspond au tableau suivant :
Affichage
Gauche
Droite
Gauche
Gauche
m
4
4
1
1
1
n
7
3
3
2
1
b. Conjecturer le rôle de cet algorithme. Vérifier par un calcul matriciel le résultat fourni avec les valeurs m = 4 et n = 7.
Cet algorithme calcule le parcours de l’arbre de Stern-Brocot menant à une fraction donnée. On peut vérifier le résultat pour 4/7 avec le programme du début :
On peut gonfler les branches de l’arbre comme celles d’un baobab, jusqu’à ce que les branches aient la forme de cercles. On obtient alors les cercles de Ford, qui sont tangents entre eux mais aussi à l’axe des abscisses :
Voici le script en CoffeeScript ayant fait ce dessin :
fs = nouvel Ensemble []
pour p dans [0..840]
f = nouvelle Fraction p, 840
fs.ajoute f
pour x dans fs.support
dessineCercle 10+x.n/x.d*400,400-200/x.d/x.d,200/x.d/x.d,'red'
commence par le disque 1 en haut à droite (départ commun à toutes les fractions, puisque c’est la racine de l’arbre) ;
part vers la gauche pour le disque 1/2 en bleu (c’est le seul « grand » disque tangent à 1 que l’on voit sur cette partie de la figure) ;
part ensuite vers la droite pour la fraction 2/3 (en bleu) ;
puis vers la gauche à nouveau pour la fraction 3/5 (en vert) ;
et enfin à nouveau vers la gauche pour aboutir à la fraction 4/7 (également en vert).
On peut donc dessiner les parcours de l’arbre par des ensembles de cercles tangents entre eux :
Les cercles de Ford pourraient s’inscrire dans les nouveaux programmes de Seconde, où il est question de programmation mais aussi de tangente à un cercle : Ces cercles sont en effet non seulement tangents entre eux, mais aussi tous tangents à l’axe des abscisses, comme le montre cet autre graphique où on en a représenté plus, qui suggèrent l’axe des abscisses :
Du point de vue de la géométrie hyperbolique dans le demi-plan de Poincaré, ce sont donc des horicycles tangents entre eux. Voir comment Jos Leys fait de l’art avec les cercles de Ford. Mais voici une variante où les cercles de Ford, vus ci-dessus, sont transformés en sphères de Ford :
Voici le script ayant construit l’image ci-dessus, écrit en Povray :
#version 3.7;
#include "colors.inc"
camera {
location <0.0, 2.0, -1.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.5, 0.0, 0.0>
}
light_source {
<0, 0, 0>
color rgb <1, 1, 1>
translate <-30, 10, -30>
}
sky_sphere {
pigment {
color <1,1,1> }
}
#declare N = 66*2520;
#declare n = 0;
#while(n<=N)
#declare a = n;
#declare b = N;
#while(b>0)
#declare c = b;
#declare b = mod(a,b);
#declare a = c;
#end
sphere {
<2*n/N,0,a/N*a/N>, a/N*a/N
texture {
pigment {
color Blue
}
finish {
ambient .002
diffuse .6
specular .75
roughness .001
reflection .02
}
}
}
#declare n=n+1;
#end
Mais on peut aller encore plus loin : En rapetissant les cercles de telle manière qu’ils restent tangents à l’axe des abscisses mais ne soient plus tangents entre eux, on obtient ce genre de dessin :
Dans cet article on montre comment, en enroulant le segment tangent à tous les cercles, autour d’une cardioïde, on obtient le squelette de l’ensemble de Mandelbrot...
Dans un site très personnel, Olivier Sicard nous offres quelques « délires » de mathématiques, algorithmique et programmation. Entre autres pépites, on découvrira le Rubix-Tore, la loi normale asymétrique, la théorie du choix social et le dessin à l’aide des séries de Fourier.
Après Elwyn Berlekamp l’année dernière, c’est au tour du centenaire Richard Guy et de l’immense John Conway. Ce document de Richard Guy (une mise en garde contre le raisonnement inductif) montre bien le style unique de son auteur, en plus d’être une mine de ressources pour des exercices. Conway, outre son jeu de la vie, a créé des dizaines de jeux, dont Sprouts, très populaire dès le CP.
On sait bien que Nicolas Bourbaki n’était pas le nom d’une personne mais le pseudonyme d’un groupe. L’équivalent en informatique théorique est Claude Livercy, auteur de la théorie des programmes. Roger Mohr était un des membres de Claude Livercy.
Quand les chercheurs mettent au point des modèles d’optimisation et de recherche de plus court chemin qui s’inspirent du comportement de masse de colonies de fourmis...
À écouter : Sur les Épaules de Darwin, émission diffusée sur France Inter samedi 31 août 2013.
Les RMLLd se dérouleront pour la 2e fois à Saint-Joseph du 22 au 25 août.
C’est une opportunité pour les élèves qui suivent la spécialité ISN et les passionnés d’informatique.
Commentaires