Quelques pistes d’algorithmes possibles au lycée

30
Quelques pistes d’algorithmes possibles au lycée

description

Quelques pistes d’algorithmes possibles au lycée. Calcul d’aire. - PowerPoint PPT Presentation

Transcript of Quelques pistes d’algorithmes possibles au lycée

Page 1: Quelques pistes d’algorithmes possibles au lycée

Quelques pistes d’algorithmes possibles au lycée

Page 2: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Page 3: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Le problème.Le problème est de déterminer l’aire « sous la courbe » représentative d’une fonction convenable. Par exemples, calculer une valeur approchée de l’aire de :

{M(x,y), 0 y x² , 0 x 1} (seconde, première){M(x,y), 0 y 1/x – E(1/x) , 0 < x 1} (Terminale)

Page 4: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Première méthode: une grille régulière.On fabrique une grille régulière qui quadrille le carré en n² points.On admet que aire du carré * nb de points en dessous / n² est une valeur approchée de l’aire sous la courbe.

Page 5: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Première méthode: une grille régulière.Algorithme de calcul:Début Variable: n,x,y,s lire n x=0; s=0 répéter tant que x 1 x=x+1/n; y=0 répéter tant que y 1 y=y+1/n si y x² Alors s=s+1 fin répéter fin répéter afficher s/n²Fin algorithme

Page 6: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Deuxième méthode: Monte-Carlo.On choisis au hasard n points de ]0;1[² . De la même façon, on a: aire du carré * nb de points en dessous / n est une valeur approchée de l’aire sous la courbe.

Page 7: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Deuxième méthode: Monte-Carlo.Algorithme de calcul:Début Variable: k,n,x,y,s lire n k=0; s=0 répéter tant que k < n x= nb aléatoire dans ]0;1[ y= nb aléatoire dans ]0;1[ k = k+1 si y < x² alors s=s+1 fin répéter afficher s/nFin algorithme

Page 8: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aireComparaison des 2 méthodes.

Page 9: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aire

Monte-Carlo: ce qu’il y a en-dessous sur cet exemple...X est la variable aléatoire qui, à chaque point M(x,y) du carré ]0;1[ associe 1 si le point M est sous la courbe (y<x²) et 0 sinon.

X suit une loi de Bernouilli avec p=aire sous la courbe = 1/3

Quand on réalise n expériences indépendantes (on choisit au hasard n points M), la variable aléatoire Yn = somme (Xi) suit une loi binômiale B(n,p) d’espérance np =n/3, variance npq.

Quand n « devient grand », B(n,p) est « proche» de la loi normale d’espérance np et variance npq.Pour: n=10000 et p=1/3 et n=20 et p=1/3

Page 10: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aireSi Zn = Yn / n, Z suit une loi très proche de la loi normale d’espérance np/n = p et de variance npq/n² = pq/n, d’écart type s=(p(1-p))/(n).Or (p(1-p)) 0,5 quand p est dans [0;1], on a donc s 0,5/n .Pour une loi normale, 95% de l’effectif est entre E-2 s et E+2 s ,Donc ici, on a environ 95% de l’effectif entre p - 1/n et p+1/n

Si on réalise 2500 échantillons de taille n=10000, on trouve que 95% des échantillons ont une moyenne qui est une valeur approchée de l’aire p à 0,01 près.Il en résulte que la méthode de Monte-Carlo, pour un calcul d’aire, donne (pour un nombre de points de 10 000) une valeur approchée de l’aire à 0,01 près avec un risque d’erreur de 5%.

Page 11: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aireDeuxième exemple: une fonction pathologique...F(x) = 1/x-E(1/x) sur ]0;1] est discontinue, n’admet pas de primitive sur ]0;1]Cette fonction est particulièrement pathologique au voisinage de 0. La méthode Monte-Carlo est plus efficaceque la méthode par la grille.

Page 12: Quelques pistes d’algorithmes possibles au lycée

Calcul d’aireDeuxième exemple: une fonction pathologique...Le problème est de savoir ce domaine {M(x,y), 0<x 1, 0 y < f(x)} est mesurable.Sur chaque intervalle ]1/(k+1) ; 1/k] (k entier > 0), l’aire sous la courbe est :

Donc l’aire sous la courbe sur l’intervalle ]1/(n+1) ; 1] est:

Or la série (1+1/2+1/3+… 1/n –ln(n)) converge vers g (constante d’Euler).Donc la série de terme général Sk converge vers 1- g L’aire sous la courbe est donc 1- g 0,422 784 335 098 468.

La méthode Monte-Carlo a donné (pour n=108): 0,422 759

Page 13: Quelques pistes d’algorithmes possibles au lycée

Nombres premiers:test probabiliste

Page 14: Quelques pistes d’algorithmes possibles au lycée

Test probabiliste de primalitéLe problème:La cryptologie RSA nécessite de très grands nombres premiers (de l’ordre de 108).L’algorithme le plus simple pour savoir si un nombre est premier est:début lire n 2 i tant que i < racine(n)+1 si n mod i = 0 alors retourner faux i+1i fin tant que retourner vraiFinMais cet algorithme est très gourmand en division : de l’ordre de n.

Aussi a-t-on cherché d’autres algorithmes pour savoir si un nombre est premier ou non.

En particulier l’algorithme de Miller-Rabin qui utilise un calcul faisant intervenir l’aléatoire…

Page 15: Quelques pistes d’algorithmes possibles au lycée

Test probabiliste de primalitéL’algorithme de Miller-Rabin:L’algorithme repose sur 2 propriétés:Si n est premier impair alors:

Pour tout entier a de [2;n], a n-1 = 1 [n]Dans Z/nZ, 1 n’a que deux racines carrées triviales 1 et n-1.

Si on trouve un entier a qui ne vérifie pas l’une ou l’autre des propriétés, alors a est un témoin de la non primalité de n.

L’idée est donc de chercher au hasard k témoins de non primalité. Si on n’en trouve pas, il y a de très fortes chances que n soit premier…

Il se trouve que, si n est composé, environ 3/4 des nombres < n sont des témoins de non primalité. La probabilité que n soit composé et que k entiers au hasard soient des témoins de primalité est supérieure à 1- 1/4k.Pour k=7, la probabilité qu’un entier n ayant passé le test soit premier est 0,99994.Si on réitère le test, cette probabilité passe à 1 - 4.10-9 .

Le coût de cet algorithme est de l’ordre de k.ln(n) au lieu de n pour l’algorithme classique.Pour un entier n de l’ordre de 108: 7ln(108) 129 108 = 10 000

Page 16: Quelques pistes d’algorithmes possibles au lycée

Test probabiliste de primalitéL’algorithme de Miller-Rabin:Fonction temoin(a,n) ‘renvoie 0 si a est un témoin de non primalité, 1 sinon n-1m; 1 y; a x ‘ initialisation du calcul de a m = an-1 Répéter tant que m>0 ‘ Calcul de a m - méthode des puissances successives Si m [2] = 1 alors ‘cas m impair x*y [n] y; m-1 m sinon ‘cas m pair x b; x²[n] x;m/2 m

Si (x=1 et b1 et b n-1) Alors retourner 0 ‘ cas où 1 admet une racine carrée non triviale fin de si donc n est composé fin répéter Si y=1 Alors retourner 1 ‘ cas où an-1 = 1: n est probablement premier sinon retourner 0 ‘ cas où an-1 1: n est composé fin siFin de fonction

Fonction millerrabin(n,k) ’ renvoie 0 si n est composé, 1 si n est très probablement premier Répéter k fois entier aléatoire de [2;n-1] a Si temoin(a,n) = 0 alors retourner 0 ‘ a est un témoin de non primalité: n est composé fin de répéter retourner 1 ‘ on n’a pas trouvé de témoin de non primalité: n est très probablement premierFin de fonction

Page 17: Quelques pistes d’algorithmes possibles au lycée

Test probabiliste de primalité

L’algorithme de Miller-Rabin sur Xcas:

Le calcul de primalité de 1234567891 par Miller Rabin est instantané, par l’algorithme classique cela dure 225 secondes (presque 4 minutes)

Page 18: Quelques pistes d’algorithmes possibles au lycée

Dichotomie

Page 19: Quelques pistes d’algorithmes possibles au lycée

DichotomieLe problème: Il s’agit de trouver un encadrement de longueur donné e de la solution de f(x)=0 sur [a;b] où f est strictement croissante et f(a)<0 et f(b)>0.

Algorithme non récursif Algorithme récursif

Page 20: Quelques pistes d’algorithmes possibles au lycée

Dessin en logo

Page 21: Quelques pistes d’algorithmes possibles au lycée

Flocon de KochUn algorithme récursif: Flocon de Koch sur Xcas en logo

Page 22: Quelques pistes d’algorithmes possibles au lycée

Dessins aléatoires

Page 23: Quelques pistes d’algorithmes possibles au lycée

Dessins aléatoires sur Xcas: profil montagneAlgorithme : On part d’un triangle : (-4,0), (0,4),(4,0)On déplace aléatoirement les milieux des 2 côtés non horizontaux.

Puis on itère la méthode …

Page 24: Quelques pistes d’algorithmes possibles au lycée

Dessins aléatoires sur Xcas: profil montagneLes n sommets du polygone sont des complexes mis dans une matrice (1 ligne, n colonnes)Au départ la matrice est [-4,4i,4].La fonction mont :x est la matrice des n sommets; mont(x) est la même matrice augmentée des n-1 milieux déplacés de manière aléatoire en longueur (0,5*rand(0,1) = nb aléatoire entre 0 et 0,5) et en direction ( eit avec t aléatoire autour de p/2).La fonction récursive montagne(x,k) itère k fois la fonction mont.Les fonctions tracemontagne et tracemontagneremplie tracent le polygone vide ou rempli en noir.

Page 25: Quelques pistes d’algorithmes possibles au lycée

Dessins aléatoires sur Xcas: arbres

Sans aléa Avec aléa

Page 26: Quelques pistes d’algorithmes possibles au lycée

Fractales

Page 27: Quelques pistes d’algorithmes possibles au lycée

Fractales sur scilabL’ensemble de Mandelbrot:Dans le plan complexe, on considère la suite (zn) définie par zn+1 = zn²+ c et z0 = 0. L’ensemble de Mandelbrot est l’ensemble des c pour lesquels la suite converge (en module).S’il existe n pour lequel ∣ zn ∣>2 alors la suite diverge. Il est nécessaire que ∣c∣< 2 pour que la suite converge. Algorithme:On cherche pour chaque point d’un maillage d’une partie du plan, l’entier n (<255) à partir duquel ∣ zn ∣>2. La couleur de ce point sera n.Ainsi un point blanc (n=255) sera un c pour lequel la suite semble converger et plus un point est foncé, plus la suite diverge vite… un point noir (n=1) est un point c où la suite diverge immédiatement.L’intérêt de l’ensemble de Mandelbrot est sa frontière.

Page 28: Quelques pistes d’algorithmes possibles au lycée

x[-0,25 ; 0,05] , y[0,6 ; 0,9]

x[-2 ; 1] , y[-1,5 ; 1,5]

Page 29: Quelques pistes d’algorithmes possibles au lycée

Fractales sur scilabLes ensembles de Julia:Dans le plan complexe, on considère la suite (zn) définie par zn+1 = zn²+ c. Cette fois-ci, c est fixé (complexe situé à la frontière de l’ensemble de Mendelbrot: il y a autant d’ensemble de Julia que l’on veut) et c’est z0 qui varie. Un ensemble de Julia est l’ensemble des z0 pour lesquels la suite converge (en module).S’il existe n pour lequel ∣ zn ∣>2 alors la suite diverge. Même algorithme que précédemment:

c = -0,414 -0.612 i , x[-1,3 ; 1,3] , y[-1 ; 1]

Page 30: Quelques pistes d’algorithmes possibles au lycée

Fractales sur scilabLes ensembles de Julia:

c = -0,414 -0.612 i , x[-1,3 ; 1,3] , y[-1,3 ; 1,3]

x[-0,15 ; -0,075] , y[-1 ; -0,925]