TD 3 : Courbes et fractales

TD 3 : Courbes et fractales TD 3 : Courbes et fractales

eleves.ens.fr
from eleves.ens.fr More from this publisher
12.07.2015 Views

TD 3 : Courbes et fractalesPaul Simon, Louis JachietOctobre 2010Dans ce TD, on fera un usage plus avancé des commandes graphiques de Maple pour tracer, colorer, dériver ouanimer des graphes de fonctions, des courbes paramétriques, des surfaces ou des fractales.1 Fonctions d’une variable réelleRappels On utilise la syntaxe suivante pour tracer plusieurs fonctions sur le même graphe : plot( [expr1, ...,exprn], variable=deb..fin, color=[c1,...,cn], style=[s1,...,sn]). Mentionner les couleurs et les stylesest cependant facultatif (voir dans l’aide).Il est également possible de préciser des options lors du tracé du graphe, en les passant en dernier argument deplot. Ces options peuvent être, par exemple, discont = true pour ne pas relier les points de discontinuité, y=a..bpour préciser la taille du cadre en y, ou numpoints = truc pour préciser le nombre de points tracés par Maple (pardéfaut 50). Reportez-vous à l’aide de plot pour plus d’exhaustivité.Exercice 1. 1. Tracer la fonction "partie entière" (floor en Maple) en faisant apparaitre clairement sa noncontinuité.2. De même, obtenir un tracé de la fonction tangente raisonnable et bien proportionné.3. Tracer les fonctions ln(x) et √ x en vert et bleu respectivement, sur un même graphique, pour x variant entre1 et 50.4. Déterminer le lieu du (des ?) maximum (ou maxima ? ?) de la fonction x exp(−x) en la traçant en mêmetemps que sa dérivée.5. Tracer la fonction x 3 sin(e 1 x ) entre 0.15 et 0.2 normalement, puis avec un plus grand nombre de points. Est-ceque cela change quelque chose ?Exercice 2 (Animation). Charger la bibliothèque d’animation de fonctions avec with(plots,animate). La syntaxeà utiliser est animate(expression(x,t),x=a..b,t=c..d)– Animer f(x, a) = ln(ax) pour a entre 1 et 10.– Animer 1 − x n entre 0 et 1, pour n allant de 1 à 50. Augmenter au préalable numpoints.2 Courbes paramétriquesOn trace les courbes paramétriques cartésiennes de la façon suivante : plot([x(t),y(t),t=a..b] (attentionà ne pas confondre avec le tracé simultané de deux fonctions). Pour un paramètre polaire, vous pouvez écrire soitpolarplot(r(θ), θ=a..b), soit plot(r(θ), θ=a..b, coords =polar).Exercice 3 (Petit bestiaire de courbes). Tracer les courbes paramétriques suivantes :1. Cardioïde : r = 1 + cos θ2. Cochléoïde : r = sin θθ3. Campyle d’Eudoxe : r = 1/ cos 2 θ4. Lemniscate de Bernoulli : x = sin tsin t cos t1+cos 2 t, y =1+cos 2 t5. Trèfle de Habenicht : r = 1 + cos nθ + sin 2 nθ (n est le nombre de feuilles) (essayer de l’animer)6. Courbes de Lissajous : x = sin t, y = sin(nt + φ) (prendre 0 < φ < π/2)1

<strong>TD</strong> 3 : <strong>Courbes</strong> <strong>et</strong> <strong>fractales</strong>Paul Simon, Louis Jachi<strong>et</strong>Octobre 2010Dans ce <strong>TD</strong>, on fera un usage plus avancé des commandes graphiques de Maple pour tracer, colorer, dériver ouanimer des graphes de fonctions, des courbes paramétriques, des surfaces ou des <strong>fractales</strong>.1 Fonctions d’une variable réelleRappels On utilise la syntaxe suivante pour tracer plusieurs fonctions sur le même graphe : plot( [expr1, ...,exprn], variable=deb..fin, color=[c1,...,cn], style=[s1,...,sn]). Mentionner les couleurs <strong>et</strong> les stylesest cependant facultatif (voir dans l’aide).Il est également possible de préciser des options lors du tracé du graphe, en les passant en dernier argument deplot. Ces options peuvent être, par exemple, discont = true pour ne pas relier les points de discontinuité, y=a..bpour préciser la taille du cadre en y, ou numpoints = truc pour préciser le nombre de points tracés par Maple (pardéfaut 50). Reportez-vous à l’aide de plot pour plus d’exhaustivité.Exercice 1. 1. Tracer la fonction "partie entière" (floor en Maple) en faisant apparaitre clairement sa noncontinuité.2. De même, obtenir un tracé de la fonction tangente raisonnable <strong>et</strong> bien proportionné.3. Tracer les fonctions ln(x) <strong>et</strong> √ x en vert <strong>et</strong> bleu respectivement, sur un même graphique, pour x variant entre1 <strong>et</strong> 50.4. Déterminer le lieu du (des ?) maximum (ou maxima ? ?) de la fonction x exp(−x) en la traçant en mêm<strong>et</strong>emps que sa dérivée.5. Tracer la fonction x 3 sin(e 1 x ) entre 0.15 <strong>et</strong> 0.2 normalement, puis avec un plus grand nombre de points. Est-ceque cela change quelque chose ?Exercice 2 (Animation). Charger la bibliothèque d’animation de fonctions avec with(plots,animate). La syntaxeà utiliser est animate(expression(x,t),x=a..b,t=c..d)– Animer f(x, a) = ln(ax) pour a entre 1 <strong>et</strong> 10.– Animer 1 − x n entre 0 <strong>et</strong> 1, pour n allant de 1 à 50. Augmenter au préalable numpoints.2 <strong>Courbes</strong> paramétriquesOn trace les courbes paramétriques cartésiennes de la façon suivante : plot([x(t),y(t),t=a..b] (attentionà ne pas confondre avec le tracé simultané de deux fonctions). Pour un paramètre polaire, vous pouvez écrire soitpolarplot(r(θ), θ=a..b), soit plot(r(θ), θ=a..b, coords =polar).Exercice 3 (P<strong>et</strong>it bestiaire de courbes). Tracer les courbes paramétriques suivantes :1. Cardioïde : r = 1 + cos θ2. Cochléoïde : r = sin θθ3. Campyle d’Eudoxe : r = 1/ cos 2 θ4. Lemniscate de Bernoulli : x = sin tsin t cos t1+cos 2 t, y =1+cos 2 t5. Trèfle de Habenicht : r = 1 + cos nθ + sin 2 nθ (n est le nombre de feuilles) (essayer de l’animer)6. <strong>Courbes</strong> de Lissajous : x = sin t, y = sin(nt + φ) (prendre 0 < φ < π/2)1


3 Le flocon de KochOn va à présent tenter de dessiner les premières itérations de la courbe fractale connue sous le nom de flocon deKoch (ou de von Koch). Pour celle-ci, on définit une transformation sur un segment de base de la façon suivante.Premièrement, on coupe le segment en trois parties égales. Dans un second temps, on ajoute deux segments pour créerun triangle équilatéral ayant pour base le sous-segment du milieu. Enfin, on efface ce sous-segment. La procédureest ensuite réitérée sur les quatre nouveaux p<strong>et</strong>its segments, <strong>et</strong> ainsi de suite ad nauseam.3.1 CalculOn veut créer une fonction qui, à partir d’un segment de base (donné par deux points) <strong>et</strong> d’un entier n, renvoiela liste des points composant la n-ième itération de la courbe de Koch.1. Les points sont représentés en Maple par des couples ([x,y]), mais on préferera manipuler des nombrescomplexes pour calculer des images de rotation plus rapidement. Commencer donc par écrire une procédureaffixe := proc (p) qui, à partir d’un point, renvoie son affixe.2. Coder ensuite la fonction inverse d’affixe (utiliser Re() <strong>et</strong> Im()), puis une fonction points qui renvoie laliste de points correspondant à la liste de complexes donnés en argument.3. Ecrire rotation := proc (a,b,θ), la procédure qui renvoie l’image du complexe b par la rotation de centrea <strong>et</strong> d’angle θ.4. Finalement, écrire la fonction récursive flocon0 := proc (a,b,n) renvoyant la liste de points recherchée.En déduire la fonction flocon := proc(n) qui applique flocon0 aux segments [1; j], [j; j 2 ], [j 2 ; 1]. Testerplot(flocon(3)).3.2 AnimationMaple sait animer des images données par des listes de points. Il faut utiliser la commande display(liste,insequence=true,axes=none), où liste est une liste de graphiques (du style plot(...), donc).Exercice 4. Animer le flocon !3.3 Pour aller plus loinVous pouvez essayer de créer des flocons plus généralisés en remplaçant la rotation de 60˚ par des angles quelconques.Attention, il ne faut alors plus couper le segment de base en trois parties égales, le but étant d’obtenir àla fin de l’appel sur un segment quatre sous-segments de même taille.Indice : il sera peut-être plus simple, avant de faire une fonction générale flocon := proc(n,φ), de créer unefonction flocon2 pour un autre angle particulier, par exemple 85˚.2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!