jeudi 31 janvier 2013

Du ruban de Möbius à la Bouteille de Klein

La bouteille de Klein  est un exemple étonnant de surface sans-bord et compacte (non-orientable) qui ne peut pas être plongée dans  ${\mathbb R}^3$ sans provoquer d'auto-intersections . Une manière de le voir est d'essayer de construire une bouteille de Klein en partant d'un ruban de Möbius et en essayant de recoller les faces opposées de son bord (qui est homéomorphe à un cercle)   ... ceci n'est pas possible en dimension 3 sans déchirer le Ruban de Möbius!

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 :


2 commentaires:

Pour écrire des formules mathématiques vous pouvez utiliser la syntaxe latex en mettant vos formules entre des "dollars" $ \$....\$ $ par exemple :
- $\sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}$ s'obtient avec \sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}
- $\mathbb R$ s'obtient avec {\mathbb R} et $\mathcal D$ s'obtient avec {\mathcal D}
- pour les crochets $\langle .,. \rangle$ dans les commentaires utilisez \langle .,. \rangle
vous pouvez écrire du html dans les commentaires :
- italique <i> ... </i> gras <b> ... </b>
- lien <a href="http://adresse "> .... </a>