1 Partie VII Stratégies syndicales et pistes d'action possibles.
Quelques pistes d’algorithmes possibles au lycée
description
Transcript of Quelques pistes d’algorithmes possibles au lycée
Quelques pistes d’algorithmes possibles au lycée
Calcul d’aire
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)
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.
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
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.
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
Calcul d’aireComparaison des 2 méthodes.
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
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%.
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.
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
Nombres premiers:test probabiliste
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…
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
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
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)
Dichotomie
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
Dessin en logo
Flocon de KochUn algorithme récursif: Flocon de Koch sur Xcas en logo
Dessins aléatoires
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 …
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.
Dessins aléatoires sur Xcas: arbres
Sans aléa Avec aléa
Fractales
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.
x[-0,25 ; 0,05] , y[0,6 ; 0,9]
x[-2 ; 1] , y[-1,5 ; 1,5]
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]
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]