La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Quelques pistes d’algorithmes possibles au lycée

Présentations similaires


Présentation au sujet: "Quelques pistes d’algorithmes possibles au lycée"— Transcription de la présentation:

1 Quelques pistes d’algorithmes possibles au lycée

2 Calcul d’aire

3 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)

4 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.

5 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  x=x+1/n; y= répéter tant que y  y=y+1/n si y  x² Alors s=s fin répéter fin répéter afficher s/n² Fin algorithme

6 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.

7 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 si y < x² alors s=s fin répéter afficher s/n Fin algorithme

8 Calcul d’aire Comparaison des 2 méthodes.

9 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 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/ et n=20 et p=1/3

10 Calcul d’aire Si 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 ) une valeur approchée de l’aire à 0,01 près avec un risque d’erreur de 5%.

11 Calcul d’aire Deuxiè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 efficace que la méthode par la grille.

12 Calcul d’aire Deuxiè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, La méthode Monte-Carlo a donné (pour n=108): 0,

13 Nombres premiers: test probabiliste

14 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+1i fin tant que retourner vrai Fin Mais 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…

15 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, Si on réitère le test, cette probabilité passe à 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)   108 =

16 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-1m; 1  y; a  x ‘ initialisation du calcul de a m = an Répéter tant que m>0 ‘ Calcul de a m - méthode des puissances successives Si m [2] = 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 b1 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 ‘ cas où an-1 = 1: n est probablement premier sinon retourner ‘ cas où an-1  1: n est composé fin si Fin 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 premier Fin de fonction

17 Test probabiliste de primalité
L’algorithme de Miller-Rabin sur Xcas: Le calcul de primalité de par Miller Rabin est instantané, par l’algorithme classique cela dure 225 secondes (presque 4 minutes)

18 Dichotomie

19 Dichotomie Le 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

20 Dessin en logo

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

22 Dessins aléatoires

23 Dessins aléatoires sur Xcas: profil montagne
Algorithme : 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 …

24 Dessins aléatoires sur Xcas: profil montagne
Les 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. Dessins aléatoires sur Xcas: profil montagne

25 Dessins aléatoires sur Xcas: arbres
Sans aléa Avec aléa

26 Fractales

27 L’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. Fractales sur scilab

28 x[-0,25 ; 0,05] , y[0,6 ; 0,9] x[-2 ; 1] , y[-1,5 ; 1,5]

29 Les 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: Fractales sur scilab c = -0, i , x[-1,3 ; 1,3] , y[-1 ; 1]

30 Les ensembles de Julia:
Fractales sur scilab c = -0, i , x[-1,3 ; 1,3] , y[-1,3 ; 1,3] x[-0,15 ; -0,075] , y[-1 ; -0,925]


Télécharger ppt "Quelques pistes d’algorithmes possibles au lycée"

Présentations similaires


Annonces Google