next up previous
Next: La solution géométrique. Up: Un exemple de MAO Previous: Un exemple de MAO

Introduction

Dans cet article, nous allons nous intéresser au problème de trouver tous les cercles équidistants à quatre points donnés dans un plan. La distance d'un point du plan à un cercle est la plus courte longueur mesurée entre ce point et un point d'intersection du cercle avec la droite joignant ce point au centre du cercle.

Après avoir donné une solution purement géométrique qui se réduit à de simples constructions avec la règle et le compas, nous allons regarder le problème du point de vue de la géométrie analytique et utiliser Mathematica pour nous aider à faire les calculs symboliquement, numériquement et enfin graphiquement.

Le but de cet article est de montrer comment construire, avec Mathematica, une commande qui satisfasse nos exigences personnelles, c'est-à-dire, qui nous permette ici de calculer le centre $(a,b)$ et le rayon $r$ de tous les cercles équidistants à quatre points donnés par leurs coordonnées cartésiennes, qu'elles soient symboliques, par exemple $(x_1,y_1),\cdots,(x_4,y_4)$, ou numériques, par exemple choisies au hasard de coups de dé comme


\begin{displaymath}\{(1,2), (4,2), (3,6), (5,3)\}\end{displaymath}

ou numériquement plus compliquées encore.

Notons que la solution symbolique est une solution exacte, tandis que la solution numérique est approximative, car elle est obtenue moyennant l'utilisation par le logiciel d'algorithmes numériques qui impliquent nécessairement des erreurs d'arrondi, une sorte de ``bruit algorithmique''. Nous ne le ferons pas ici, mais sachons qu'il est possible de rendre ce bruit aussi faible que l'on veut en augmentant la précision des calculs, au prix évidemment d'un temps de calcul plus long. En principe, on peut calculer avec une précision infinie. Par défaut, Mathematica calcule avec 16 chiffres significatifs et affiche un résultat numérique avec 6 chiffres significatifs.

Pour ce qui est de l'aspect graphique de la solution, nous allons commenter la construction d'une commande permettant de dessiner les 4 points, de calculer la solution et de représenter graphiquement cette solution. Les explications données devraient permettre au lecteur assidu d'adapter ces procédures à d'autres problèmes.

Nous ne saurions trop insister sur le fait que tout ce qui suit découle essentiellement de la solution géométrique et que c'est la compréhension géométrique du problème alliée à une connaissance suffisamment approfondie de Mathematica qui nous a permis de réaliser les autres solutions.

Pour mieux suivre les différentes étapes de notre étude, nous supposons que le lecteur a à sa disposition du papier quadrillé, une règle et un compas pour la construction géométrique et, de plus, qu'il a accès à un ordinateur capable d'exécuter des commandes de Mathematica, version 3 ou plus.

Comme exemple, nous proposons l'ensemble des 4 points suivants :

\begin{displaymath}\{\{0,0\}, \{1,0\}, \{2,1\}, \{3,2\}\},\end{displaymath}

permettant une construction géométrique facile à exécuter et un calcul manuel de longueur acceptable.

On appréciera d'autant plus ce qui va suivre si l'on suspend ici la lecture de cet article pour chercher à résoudre soi-même le problème sous ses aspects géométrique, analytique et graphique.

Pour le lecteur pressé, commençons par indiquer la commande numérique à entrer dans Mathematica, commande dont nous expliquerons la construction plus loin:


ce4pn[points_List]:= Module[{c,s,solu},
		Clear[a,b,r];
		p = points;
		dist[v_List,w_List]:=N[Sqrt[(w-v).(w-v)]];
		c = {a,b};
		eq[k_,j_]:= r + (-1)^k s == dist[c,p[[j]]];
		cas[u1_,u2_,u3_,u4_]:= {eq[u1,1],eq[u2,2],eq[u3,3],eq[u4,4]};
		sol[u1_,u2_,u3_,u4_]:= Reduce[cas[u1,u2,u3,u4],{a,b,r},{s}];
		solu= {sol[1,2,2,2],sol[2,1,2,2],sol[2,2,1,2], sol[2,2,2,1], 
			sol[1,1,2,2], sol[1,2,1,2],sol[1,2,2,1]};
		solutions = TableForm[Map[If[#===False,False,Sort[#]]&,solu]]
	]
Avant d'entrer dans les détails, testons la commande ci-dessus sur l' exemple proposé plus haut. D'abord, on aura deviné que ce4pn est un acronyme pour cercle équidistant à 4 points, version numérique.

L'argument points_List de la commande ce4pn doit être une liste (dans Mathematica, les listes sont caractérisées par des accolades) de 4 couples de coordonnées cartésiennes. Pour éviter des collisions toujours désagréables dans le déroulement des calculs, on s'assure de la localisation des variables utilisées en les ``enveloppant'' avec la commande Module. Cette commande possède deux arguments. D'abord la liste des variables que l'usager veut localiser, ici {c,s,solu}, ensuite le corps du texte qu'on veut voir interprété par le logiciel. L'exécution de la commande

ce4pn[{{0,0},{1,0},{2,1},{3,2}}]

conduit en quelques secondes au résultat suivant, affiché dans le tableau suivant :

False        
a == -1.5 && b == 5.5 && r == 5.8712
a == 0.5 && b == 2.5 && r == 2.33542
a == 0.5 && b == 1.5 && r == 2.06532
a == 0.5 && b == 3.5 && r == 3.2255
a == -0.5 && b == 3.5 && r == 3.67171
a == 2.5 && b == -0.5 && r == 2.06532
Ce résultat nous indique qu'il y a six solutions au problème. La première ligne (False) indique que l'une des sept solutions du cas général n'existe pas, ce qui découle de l'alignement des trois derniers points.

Ajoutons tout de suite que la commande pour obtenir un résultat exact est en tout point semblable à ce4pn, à deux exceptions près. D'abord on la notera ce4ps, la lettre ``s'' remplaçant la lettre ``n'' pour insister sur l'aspect symbolique du résultat et ensuite on supprimera, dans la quatrième ligne, la commande N[ ] responsable du passage du symbolique au numérique.

Pour apprécier la différence, voici le résultat de la commande ce4ps, appliquée à la même liste de points:

ce4ps[{{0,0},{1,0},{2,1},{3,2}}]

False        
$a == \frac{-3}{2}$ && $b == \frac{11}{2}$ && $r ==
\frac{1}{4}(\sqrt{130} + \sqrt{146})$
$a == \frac{1}{2}$ && $b == \frac{5}{2}$ && $r ==
\frac{1}{4}(3\sqrt{2} + \sqrt{26})$
$a == \frac{1}{2}$ && $b == \frac{3}{2}$ && $r ==
\frac{1}{4}(\sqrt{10} + \sqrt{26})$
$a == \frac{1}{2}$ && $b == \frac{7}{2}$ && $r ==
\frac{1}{4}(5\sqrt{2} + \sqrt{34})$
$a == \frac{-1}{2}$ && $b == \frac{7}{2}$ && $r ==
\frac{1}{4}(5\sqrt{2} + \sqrt{58})$
$a == \frac{5}{2}$ && $b == \frac{-1}{2}$ && $r ==
\frac{1}{4}(\sqrt{10} + \sqrt{26})$

next up previous
Next: La solution géométrique. Up: Un exemple de MAO Previous: Un exemple de MAO
Jean-Marc Terrier
2001-02-08