Une anecdote amusante a propos de la bouteille de Klein : au départ elle fût nommée "Kleinsche Fläche" (qui signifie « surface de Klein » ) par les mathématiciens allemands, mais rapidement il y eu des erreurs de traduction (par les mathématiciens français?) entre les mots Fläche (« surface ») et Flasche (« bouteille ») erreur qui finit par imposer le nom « Bouteille de Klein » ... y compris en Allemand!
L'animation que je vous présente a été faite avec le logiciel Scilab, qui permet de représenter facilement des surfaces en 3 dimensions à l'aide de grilles de coordonnées et d'y ajouter des couleurs. En effet Scilab permet de représenter des surfaces paramétriques assez facilement à partir de leurs équations . Ici on a utilisé les équations suivantes :
$$\begin{eqnarray*}
x&=&(r+\sin(u)\cos(v/2)-\sin(v/2)\sin(2u))\cos(v)\\
y&=&(r+\sin(u)\cos(v/2)-\sin(v/2)\sin(2u))\sin(v)\\
z&=&r(\sin(u)\sin(v/2)+\cos(v/2)\sin(2u))
\end{eqnarray*}$$
avec r=3, ces équations représentent un plongement d'une bouteille de Klein en dimension 3 si :
$$ 0\leq u\leq 2\pi\;\;0\leq v\leq 2\pi$$
mais si le paramètre u varie seulement entre $\pi-t$ et $\pi+t$ pour un $t\in]0,\pi[$ on obtient alors un ruban de Möbius, d'autant plus large que t tend vers $\pi$. Pour tracer la surface correspondante avec Scilab il faut commencer par coder la fonction calculant les coordonnées des points (x,y,z) en fonctions des paramètres :
function [x,y,z]=klein(u,v) r=3 x=(r+sin(u).*cos(v/2)-sin(v/2).*sin(2*u)).*cos(v) y=(r+sin(u).*cos(v/2)-sin(v/2).*sin(2*u)).*sin(v) z=r*(sin(u).*sin(v/2)+cos(v/2).*sin(2*u)) endfunction
Pour pouvoir afficher la surface il faut ensuite calculer les valeurs de (x,y,z) pour une "grille" de valeurs de u et v. Cela ne peut pas se faire directement car ici il faut que ces valeurs soient arrangées de manière à bien définir les facettes de la figure heureusement la fonction eval3dple fait automatiquement pour nous et il ne reste qu'à tracer la surface avec la fonction surf :
u=[0i:0.05:2*%pi]; v=[0:0.05:2*%pi+0.02]; [x,y,z]=eval3dp(klein,u,v); clf; surf(x,y,z)
Il ne reste plus qu'a répéter plusieurs fois l'affichage en élargissant progressivement le ruban de Möbius pour obtenir l'animation :
for t=0.2:0.05:%pi u=[%pi-t:0.05:t+%pi]; v=[0:0.05:2*%pi+0.02]; [x,y,z]=eval3dp(klein,u,v); drawlater() clf; surf(x,y,z) f=gcf(); f.color_map=hotcolormap(32); a=gca(); a.children.color_mode=1-2*bool2s(t>1); a.data_bounds = [-5,-5,-4;5,5,4]; sleep(100) drawnow() end
Si on veut seulement afficher un ruban de Möbius on peut simplifier les équations comme ceci :
$$\begin{eqnarray*}
x&=&(r+u\cos(v/2)/2)\cos(v)\\
y&=&(r+u\cos(v/2)/2)\sin(v)\\
z&=&-u\sin(v/2)/2
\end{eqnarray*}$$
avec $ -1\leq u\leq 1$ et $0\leq v\leq 2\pi$. Voici la même animation en un peu moins rapide :
Très intéressant :-)
RépondreSupprimerGreatt read thanks
RépondreSupprimer