[PDF] Récursivité en Python: TP Exercice 3. Flocon de Von





Previous PDF Next PDF



Corrigé Devoir Maison 5

Corrigé Devoir Maison 5. Exercice 1 : Le flocon de Koch. 1. Etude du nombre de côtés. 1) C1 est le nombre de segments à la première étape donc C1 = 3 .



Correction du devoir maison : Flocon de Von Koch

Correction du devoir maison : Flocon de Von Koch. 1. Etude du nombre de côtés a. Faisons un tableau sans donner d'explication.



Une introduction aux fractales

Exercice 1 (Le flocon de Koch). 1. Procédé itératif de construction. a. Décrire précisément la transformation suivante : //. //.



Le flocon de neige de Helge von Koch

puis en fonction de n et n déduire e. Le flocon de neige de Helge von Koch.doc. Groupe MathéTIC. 1. 3/10/2004. Page 2. b) Exprimer l'aire d'un triangle 



T.P. dinformatique no 4 CORRIGE

Exercice 1. Exercice 2. ... Le flocon de Von Koch est une célèbre figure fractale obtenue de la façon suivante : à tout segment [A B] orienté.



Concours de recrutement interne PLP 2009

Exercice 1. Un enseignant d'une classe de baccalauréat industriel a préparé une séquence de trois séances portant sur le flocon de Von Koch.



TP : Le flocon de Von Koch

Le but de ce TP est de tracer cette frise composée de flocons de Von Koch. Exercice 1 : Une branche. Partie A : On va en premier tracer la première partie 



Correction flocon de von Koch

Construction du flocon de von Koch. Cette figure a été obtenue à partir de géolabo en utilisant des vecteurs ce qui explique les flèches.



Suites numériques ! corrigé TP math ! info

Suites numériques ! corrigé TP math ! info. Les flocons de Von Koch. PremiQre Partie. Des suites associées aux flocons de Von Koch page 1 / 4.



Récursivité en Python: TP

Exercice 3. Flocon de Von Koch. Le but de cet exercice est de tracer une ligne brisée qui s'approche de l'objet fractal appelé le Flocon de Von Koch.



Autour du flocon de Von KOCH - Espace pédagogique

Autour du flocon de Von KOCH - Espace pédagogique



Le flocon de Koch - Paris Diderot University

Le flocon de Koch : quel est son périmètre ? Niels Fabian Helge von Koch 1870 – 1924 Etape Longueur d’un côté (cm) Nombre de côtés Périmètre (cm) 0



Correction du devoir maison : Flocon de Von Koch

Correction du devoir maison : Flocon de Von Koch 1 Etude du nombre de côtés a Faisons un tableau sans donner d’explication n 1 2 3 4 Cn 3 12 48 192 b Chaque segment de l’étape n en donne 4 à l’étape suivante Par conséquent et ainsi on en déduit que la suite C est la SG de raison 4 et de premier terme 2





1 Flocon de von Koch

1 Flocon de von Koch Voiciles di?érentesétapes delaconstructiondu?ocon devon Kochparapplicationsuccessive dela mêmetransformation Attention Les ?gures précédentes ont été crées avec Maxima et une mise à l’échelle a été e?ectuée pourcelledegauche Normalementletriangledecette?guredegauchepeutêtreplacédanscellede



[b Travaux dirigés : Flocon de Von Koch I Introduction

[bTravaux dirigés : Flocon de Von Koch c I Introduction Niels Fabian Helge Von Koch (Suédois 1870-1924) est un mathématicien qui a donné son nom à l’une des premières fractales : le ?ocon de Koch ou ?ocon de neige Il a décrit le ?ocon auquel on a donné son nom en 1904 dans un article intitulé Sur une courbe continue sans



Searches related to flocon de von koch exercice PDF

Exercice 1 : Le?ocondeKoch 1 Etude du nombre de côtés 1) C1 estle nombrede segmentsàlapremièreétapedonc C1 =3 D’après la?guredulivreon a C2 =12 et C3 =48 A chaqueitérationchaquesegmentesttransforméen 4segmentsparconséquentona : C4 =4×48=192 2) A chaque itérationchaque segmentest transforméen 4 segmentspar conséquent on a

MP*Lycée MassénaRécursivité en Python: TP

Exercice 1.Tri fusion.Écrire une fonction fusion(L1,L2)réalisant la fusion de deux listes triées. En déduire une

implémentation Python du tri fusion, qui renvoie une copie triée de la liste. Exercice 2.Des fractales.Commence zpar recopier le co deci-dessous : import matplotlib.pyplot as plt import numpy as np def cercle(x,y,r): theta = np.linspace(0, 2 *np.pi, 100)X = r *np.cos(theta)+xY = r *np.sin(theta)+yplt.plot(X,Y)

La fonction cercle trace le cercle de centre(x;y)et de rayonr. Remarquez quenp.cosetnp.sinsont vectorielles :

lorsqu"on les applique à un tableau numpy, on calcule un tableau de même taille contenant les images par ces fonctions

des éléments du tableau initial. Remarquez aussi qu"on peut facilement multiplier toutes les entrées d"un tableau

numpy par une valeur (icir) ou toutes les translater d"une constante (xouyici) pour obtenir de nouveaux tableaux.

Écrire deux fonctionsbulles1(n)etbulles2(n)permettant d"obtenir des figures similaires à celles ci-dessous (qui

résultent des appelsbulles1(5)etbulles2(5)).Le cas de base (n= 0) est celui du cercle unité. On utilisera à chaque fois des fonctions auxiliaires récursives. Indication :

pourbulles1, utiliser une fonction auxiliaireaux(x,y,r,n). Pourbulles2, rajouter un paramètre indiquant " la

direction d"où on vient ». Voici le début debulles1:def bulles1(n): plt.figure() plt.axis("equal") def aux(x,y,n,r): aux(0,0,n,1) plt.show()

Exercice 3.Flocon de Von Koch.Le but de cet exercice est de tracer une ligne brisée q uis"appro chede l"ob jetfractal

appelé le Flocon de Von Koch. La figure ci-dessous montre l"étape élémentaire de tracé de la ligne brisée : on remplace

un segment de droite par le même segment, avec un triangle équilatéral qui a " poussé » du milieu vers l"extérieur.

Pour tracer le flocon, on part d"un triangle équilatéral, et on applique cette transformation sur ses trois côtés. On

obtient ainsi une ligne brisée constituée de 12 segments. On réitère le procédé sur ces 12 segments, etc... La figure

ci-dessous montre les étapes 0, 1, 2 et 3.

Svartz Page 1/6 2016/2017

MP*Lycée Masséna

Étape 0 Étape 1 Étape 2 Étape 3

Le flocon de Von Koch n"est autre que la "figure limite» (dans un sens mathématique bien défini) obtenue après une

infinité d"itérations. On se propose d"écrire une fonction récursive en Python, permettant de tracer la figure obtenue

aprèsnitérations, en partant d"un triangle initial de côté fixé. La fonctiontrace(a,b)suivante prend en entrée deux

tableaux Numpy à deux éléments (symbolisant deux points du plan) et trace le segment les reliant :def trace(a,b):

x0,y0=a x1,y1=b plt.plot([x0,x1],[y0,y1])

La fonctionflocon(n)suivante trace le flocon, à partir d"une fonctionkoch(n,a,b)qui travaille sur un segment.

Écrire cette fonction.def flocon(n):

plt.axis("equal") plt.axis(draw=None) a=np.array([0,0]) b=np.array([1,0]) c=np.array([0.5,np.sqrt(3)/2]) koch(n,a,c) koch(n,c,b) koch(n,b,a) plt.show()

Exercice 4.Le problème des dames : résolution par backtracking.On rapp ellequ"au jeu d"éc hecs,on tra vaillesur un

échiquier de taille88. Deux dames posées sur l"échiquier sont " en prise » si elles se trouvent sur la même colonne, la

même ligne, ou la même diagonale (au sens large). Le problème des 8 dames consiste à placer 8 dames sur un échiquier

de sorte que deux d"entre elles ne soient jamais en prise. La figure qui suit est un exemple de solution.Ce problème se généralise naturellement à un échiquiernn. Les questions qui suivent donnent une stratégie pour

calculer (et afficher le nombre de solutions) au problème, pour desnraisonnables (la complexité est exponentielle,

mais c"est un peu la faute de ce qu"on cherche à calculer!).

Svartz Page 2/6 2016/2017

MP*Lycée MassénaOn représente une grille avec des dames posées dessus comme un tableau (liste de listes)Tde booléens : lignes et

colonnes sont numérotées de haut en bas et de gauche à droite, et unTrueenT[i][j]indique qu"une dame est posée

dans la case(i;j). On va essayer de calculer des solutions en suivant le principe du " backtracking » : cela consiste à

tester toutes les possibilités, mais intelligemment : on remplit la grille de haut en bas et de gauche à droite, quite à

revenir en arrière. Vous trouverez sur mon site web trois fonctions :

-case_suivante(n,i,j)prenant en entrée les indices d"une case(i;j), et renvoyant la case suivante (celle située

immédiatement à sa droite si elle existe, ou(i+ 1;0)sinon; -init(n)permettant de générer une grille dennFalse;

-imprimer(T)permettant d"imprimer une solution à l"écran, à partir du tableau de booléens.

1.Écrire une fonctionen_prise(i,j,T)prenant en entrée un tableau de booléens représentant un échiquiernn

(nest accessible parlen(T)) et testant si la case(i;j)est en prise : ceci signifie qu"il existe unTruesur une case

située à gauche, au dessus, au dessus à gauche en diagonal, ou au dessus à droite en diagonal (on ne considérera

pas les cases situées à droite ou en dessous). Attention à ne pas faire de dépassement d"indice sur les cases!

2.La fonction suivante, à compléter, donne le nombre de solutions (et affiche à l"écran celles-ci) pour le placement

dendames sur un échiquiernn. Elle fait usage d"une fonctionaux(i,j,m)récursive.def calcule_sol(n):

T=init(n)

def aux(i,j,m): """ (i,j) une case, m le nombre de reines placées dans les cases avant (i,j) """ if mIndication : si la case(i;j)n"est pas en prise, on fera deux appels récursifs àaux(i2,j2,...): l"un pour lequel

on a misTrueen case(i;j), l"autre ou on a misFalse. Si elle est en prise, on ne fait qu"un seul appel.>>> calcule_sol(4)

oxoo ooox xooo ooxo ooxo xooo ooox oxoo 2

3.Vérifiez que vous trouvez 92 solutions pourn= 8.

Svartz Page 3/6 2016/2017

MP*Lycée MassénaFigure1: Une courbe de Bézier de degré 3

Exercice 5.Algorithme de Casteljau pour le tracé de courbes de Béziers.Si v ousa vezdéja utilisé un logiciel basique

de dessin

1, vous avez sûrement tracé des courbes à l"aide d"un outil pas facile à faire marcher : il faut donner deux

points (" l"origine » et la " destination » de la courbe), ainsi que deux " points de contrôle » qui ne sont pas sur la

courbe mais qui orientent sa forme. La figure 1 présente une telle courbe : on commence en(0;0)et on termine en

(4;0), avec points de contrôle(2;1:5)et(3;2).

Bien qu"à ma connaissance, ce ne soit pas possible dans les logiciels basiques de dessin, on peut utiliser plus de deux

points de contrôle. La figure 2 présente une courbe de Bézier à 6 points (dont 4 points de contrôle). Rien n"empêche

les points de former un polygone non convexe, voir aussi la figure 2 : à droite, on a pris les mêmes points que pour la

figure 1, en inversant la " destination » et le deuxième point de contrôle.Figure2: Une courbe de Bézier de degré 5, et une de degré 3 formée sur un polygone non convexe

Passons maintenant à la définition des courbes de Bézier : pournun entier naturel, on définit les polynômes de

Bernstein de degréncomme :

B n;i(t) =n i t i(1t)nipour toutientre0etn.

Ces polynômes sont très courants en mathématiques, vous avez d"ailleurs peut-être vus une démonstration du

théorème de Weierstrass

2basée sur ces polynômes.1. comme Paint!

2. une fonction continue sur un segment est limite uniforme d"une suite de fonctions polynomiales. Pourfcontinue sur[0;1], on montre

que la suite dest7!Pn i=0f(in )Bn;i(t)converge uniformément versflorsquentend vers l"infini.

Svartz Page 4/6 2016/2017

MP*Lycée MassénaÉtant donnésn+ 1pointsP0;:::;Pndu plan, on définit la courbe de Béziers contrôlée par les(Pi)par

M(t) =nX

i=0B n;i(t)Pipourt2[0;1]

Ceci a bien un sens : comme

Pn i=0Bn;i(t) = 1, le pointM(t)est barycentre desPi, avec les poidsBn;i(t). Par exemple pourn= 3, on a

M(t) = (1t3)P0+ 3t(1t)2P1+ 3t2(1t)P2+t3P3

On remarque aussi queM(0) =P0etM(1) =Pn. De plus la tangente àM(t)suit la direction3!P0P1ent= 0, et la

direction!Pn1Pnent= 1.

Le but de cet exercice est de tracer des courbes de Bézier en se donnant un ensemble de points. Dans une première

partie, on donne un tracé classique par calcul de points, dans la seconde on suit un algorithme récursif, qui effectue

moins de calculs. Commencez par importer les modules :from math import *import numpy as np import matplotlib.pyplot as plt Question 1.Écrire une fonctionbinome(n,p)prenant en paramètre deux entiersnetp, et renvoyantn p. On pourra

utiliser la fonctionfactorial(k)pour le calcul dek!(elle se trouve normalement dans le modulemath, dont on vient

d"importer toutes les fonctions).

Question 2.En déduire une fonctionbernstein(n,i,t)prenant en paramètresnetideux entiers, ainsi quet2[0;1]

et retournantn iti(1t)ni.

Question 3.Écrire une fonctionbezier(P)prenant en paramètre une liste de points (une liste de couples, donc), et

retournant deux listesX;Y, telles queXetYsoient constituées d"abscisses et d"ordonnées de 1000 points successifs

de la courbe de Bézier associée aux points deP. On pourra utilisernp.linspace(0,1,1000)pour produire une liste

(un tableau Numpy, plutôt) constitué de 1000 flottants régulièrement espacés dans[0;1].

Question 4.En déduire comment tracer une courbe de Bézier, étant donnée une liste de points. L"appliquer par

exemple à[(0,0), (2,1.5), (3,2), (4,0)]pour retrouver le résultat de la figure 1.

Question 5.Améliorer vos graphiques en traçant les pointsPiet les segmentsPiPi+1. Étant données une liste

d"abscissesXet une liste d"ordonnéesY, il suffit d"utiliserplt.plot(X,Y)pour relier les points(xi;yi)par une ligne

brisée.plt.plot(X,Y,"o")" met des petits ronds » sur les points.plt.plot(X,Y,"-o")fait les deux. Vous pouvez

mettre par exemple une couleur verte en rajoutantcolor="green".

On décrit maintenant un algorithme capable de calculer très facilement des points d"une courbe de Bézier, sans

avoir à prendre la valeur des polynômes de Bernstein en de multiples réels : la construction est très géométrique! Cette

technique mène à un algorithme récursif pour le tracé d"approximations de courbes de Bézier, en calculant seulement

des milieux de segments et en traçant des lignes brisées. L"algorithme est basé sur la propriété suivante, détaillée en

figure 3

Soient doncP0;P1;P2etP3un ensemble de 4 points deR2. On considère la courbe de Bézier (de degré 3) définie

par ses 4 points. Notons : -Mle milieu du segment[P1;P2]; -A1le milieu du segment[P0;P1]; -A2le milieu du segment[A1;M]; -B2le milieu du segment[P2;P3]; -B1le milieu du segment[M;B2]; -A3=B0le milieu du segment[A2;B1].

Alors la courbe de Bézier contrôlée par les pointsP0;P1;P2etP3est exactement la réunion des deux courbes de

Bézier contrôlées parA0=P0,A1,A2etA3et parA3=B0,B1,B2etB3=P3

Cette construction est l"algorithme de Casteljau. Remarquez que le pointA3=B0appartient à la courbe (il

correspond au pointM12 ), et que la ligne brisée formée des deux suites de segments[A0;A1;A2;A3]et[B0;B1;B2;B3]

est une approximation bien plus précise de la courbe que n"est la ligne brisée formée par les points[P0;P1;P2;P3]. On

peut donc construire récursivement une approximation de la courbe de Bézier : tant que les segments de la ligne brisée

sont de longueur supérieure à une certaine borne, on applique l"algorithme de Casteljau.3. ce qui est cohérent avec les figures!

Svartz Page 5/6 2016/2017

MP*Lycée MassénaP

0=A0A 1P 1M P 2B 2P 3=B3A 2B 1A

3=B0Figure3: Une étape de l"algorithme de Casteljau

Question 6.Si ce n"est pas déja fait, écrivez une fonctiontrace_ligne_brisee(P)traçant les segments[Pi;Pi+1]de

la listeP.

Question 7.Écrire une fonctionmilieu(p,q)prenant en entrée deux points (représentés par des couples de flottant)

et renvoyant le couple associé au milieu du segment[p;q].

Question 8.En déduire une fonctionetape_casteljau(P)prenant en entrée une liste de 4 points du plan (représentés

par des couples de flottants) et retournant deux listes de la forme[A0;A1;A2;A3]et[B0;B1;B2;B3]comme détaillé

dans l"algorithme de Casteljau.

Question 9.En déduire une fonction (récursive)bezier_casteljau(P)prenant en entrée une liste de 4 points du

plan (représentés par des couples de flottants) et traçant une approximation de la courbe de Bézier contrôlée par les

points deP. Une condition d"arrêt sera par exemple la suivante : la distance entre deux points successifs dePest

inférieure à une certaine borne (comme 0.1). Dans ce cas on trace simplement la ligne brisée constituée des points de

P.

Question 10.Démontrez que la courbe de Bézier initiale est bien l"union de celles contrôlées par[A0;A1;A2;A3]et

[B0;B1;B2;B3].

Remarquez que les courbes de Bézier sont vraiment utilisées : toutes les lettres de ce texte sont en fait

formées de courbes de Bézier! Un intérêt est le fait que zoomer sur une lettre dans un fichier pdf ne

produit pas de résultat tout " pixellisé » : les courbes de Bézier sont à la base du dessin dit " vectoriel ».

Svartz Page 6/6 2016/2017

quotesdbs_dbs35.pdfusesText_40
[PDF] réaction inflammatoire pdf

[PDF] mots français d origine étrangère exercices

[PDF] inflammation aigue et chronique

[PDF] inflammation pdf

[PDF] étymologie cycle 3

[PDF] evaluation origine des mots cm1

[PDF] mécanisme de l'inflammation

[PDF] les emprunts aux langues étrangères cm2

[PDF] discours accueil nouveau curé

[PDF] inflammation cours pdf

[PDF] mots de bienvenue a l'eglise adventiste

[PDF] accueil d'un nouveau curé

[PDF] réaction inflammatoire définition

[PDF] le lion le loup et le renard commentaire

[PDF] modele de bienvenue