Big Bang Theory TV‐show 2017 Stéphane Gobron HE‐Arc // hes.so Algorithmes Numériques 7 chapitres Codage des nombres Résolution d’équations Systèmes linéaires Dérivation Intégration Equation différentielles Optimisation Nuage de mots de ce chapitre Super heros de ce chapitre Résolution d’équations Problématique Modèle mathématique Méthode par dichotomie Interaction sur l’algorithme Méthode de Newton Méthode du point fixe Labo 2 Résolutions par dichotomie et point fixe Molière? Newton? Abel? Euclide? Algorithmes Numériques Résolution d’équation Problématique Prédictions de collisions Prédictions / collisions E.g. Tirs balistiques Attention, la simple équation du second degré n’est pas du tout réaliste donc inutile en pratique Tirs balistiques Algorithmes Numériques Résolution d’équation Problématique f(x) Nous nous intéressons à tous les problèmes pouvant être mis en équation f(x) = g(x) On cherche à trouver tous les x satisfaisant cet équation (1) (1) peut encore s’écrire sous la forme : f(x) – g(x) = 0 f2(x) = 0 g(x) x1 x2 f2(x) sin x x 3 Algorithmes Numériques Modèle mathématique Admettons que nous ne nous intéressions qu’aux équation algébrique Équation dite «algébrique» si on peut l’écrire sous forme : P(x) = 0 avec P polynôme de degré n si n<5 => solution mathématique si n>4 le mathématicien N. Abel a démontré qu’il n’existe pas de racine directe! résolution analytique uniquement dans quelques cas particuliers utilisation de méthodes numériques https://fr.wikipedia.org/wiki/Niels_Henrik_Abel Résolution d’équation Niels Henrik Abel est à l'origine de la notion de nombre algébrique Niels Henrik Abel (1802 ~ 1829) Exemples d’équations algébriques sin x x 3 Algorithmes Numériques Résolution d’équation Modèle mathématique Si elle n’est pas algébrique, elle est dite «transcendante» Solutions mathématiques rares et souvent non triviales utilisation de méthodes numériques /!\ précision limitée Exemple d’équation transcendante : sin(x)=x/3 1.0 0.5 1 2 3 4 0.5 Représentation des deux fonctions sin(x) et de x/3 ; Cercles rouges : les deux solutions pour x positif Pythagore? Bolzano? Lagrange? Gauss? x 0;2 pour laquelle x sin x 3 Algorithmes Numériques L’idée de base f(x) – g(x) = 0 sin(x)-x/3 = 0 Théorème de Bolzano Si une fonction f est continue sur [a,b] et change de signe sur cet intervalle, alors f s'annule en au moins un point c de [a,b] https://fr.wikipedia.org/wiki/Bernard_Bolzano Résolution d’équation sin(x)=x/3 Bernhard Bolzano (1781 ~ 1848) => sin(x)-x/3=0 sin(x)-x/3 f(x) ab f 2 Algorithmes Numériques Résolution d’équation Méthode «dichotomie» Méthode de Bolzano Chercher une solution par dichotomie Avantage convergence assurée Inconvénients Nb d'itérations de 3 à 4 fois le nombre de chiffres significatifs voulus converge « lentement » Note importante : la dichotomie et aussi appelée «bissection» , terme plus anglophone Algorithmes Numériques Résolution d’équation Méthode «par dichotomie» Algorithme 1 Algorithme orienté mathématique et non informatique Le raisonnement est mathématiquement correct mais l’algorithme résultant n’est pas bien adaptée aux contraintes informatiques Initialiser (avec a b ) : a ; b ; f x ; Poser : fa f a ; fb f b Répéter tant que b a ab 2 fm f m Si fm fa 0 , alors b m et fb fm sinon a m et fa fm Afficher : x m m Algorithme 1 Algorithmes Numériques Codage des nombres Développement info. Amélioration d’algo Vous avez 5 minutes pour trouver les problèmes et/ou améliorations de cet algorithme Indices! Il y en a au moins deux Initialiser (avec a b ) : a ; b ; f x ; Poser : fa f a ; fb f b Répéter tant que b a ab 2 fm f m Si fm fa 0 , alors b m et fb fm sinon a m et fa fm Afficher : x m m Algorithme 1 fb déclaré, initialisé, mais n’est jamais utilisé machine? => boucle infinie Algorithmes Numériques Résolution d’équation Méthode «par dichotomie» Algorithme 2 avantages : zéro avec la meilleure précision relative à l'ordinateur utilisé Pas de boucle infinie Algorithme 2 Cette condition fonctionne, néanmoins préférez : |mnew-mold| > machine Molière? Newton? Mozart? Euclide? Pythagore? Montesquieu? Lagrange? Euler? Algorithmes Numériques Méthode de la tangente Méthode de Newton Pour toute fonction f(x) partir d’un point Pk(xk,0) trouver le point sur la fonction (xk, f(xk)) utiliser la pente en ce point pour construire une droite calculer l’intersection de cette droite avec l’axe des (x) que l’on nomme Pk+1 répéter les quatre étapes précédentes tant que Pi différent Pi-1 https://fr.wikipedia.org/wiki/Isaac_Newton Résolution d’équation f(x) Isaac Newton (1642 ~ 1727) r xk+ 2 xk+1 Pk xk Algorithmes Numériques Résolution d’équation Algorithme, méthode de la tangente Principe utiliser la pente, donc la dérivée dk de la fonction f(x) en xk calculer l’intersection de la droite Dk(x) avec l’axe de (x) en (xk+1,0) Déclarer : xkOld; xk; dk Avec Dk(x) = ax+b, ‘a’ la pente représentée par dk Initialiser : Répéter tant que |xkOld - xk| xkOld = xk dk=f’(pk) calculer b de la droite Dk Avantage Cette méthode peut converger très vite pk=intersection(Dk et axeX) xk=pkx r=xk Algorithme de la tangente Algorithmes Numériques Résolution d’équation Algorithme, méthode de la tangente En quelques minutes, réfléchissez sur l’algorithme de droite Indices! 1. en informatique, une bonne approximation est tout aussi « valable » que la solution analytique 2. y=ax+b 3. voir chapitre 3 …! Déclarer : xkOld; xk; dk Avec Dk(x) = ax+b, ‘a’ la pente représentée par dk Initialiser : Répéter tant que |xkOld - xk| xkOld = xk 1. dk=f’(pk) 2. calculer b de la droite Dk pk=intersection(Dk et axeX) xk=pkx r=xk Algorithme de la tangente 3. f xxk k1f xf kxk 1xk f xk 1 xykL'équation x xkreliant f xk de la droite 1 xkf xxkk1 f xk 1 x k 1 ; f xk 1 à xk ; f xk est : f xk f xk 1 y Algorithmes Numériques x xk f xk xk xk 1 Méthode de la tangente 1. Comment calculer la dérivée di ? Approximation suffisante Méthode de Lagrange 2. Comment trouver b? https://fr.wikipedia.org/wiki/Joseph‐Louis_Lagrange Résolution d’équation Joseph‐Louis Lagrange (1736 ~ 1813) r xk+ 1 xk La droite D(x) devient : La droite Dk = a.x+b En xk, on connaît le point (xk, f(xk)) donc f(xk)=dk.xk+b D’où b=f(xk)/dk.xk Approximation de di xk- 1 Algorithmes Numériques Résolution d’équation Méthode de la tangente Enorme inconvénient Pas de convergence! Divergence si la pente est trop faible Voire boucle infinie x0 Cercle vicieux Algorithmes Numériques Résolution d’équation Méthode du point fixe y=x Hypothèse : on cherche les racines de f(x) Principe fondamental : utiliser une fonction g(x) g(x) = x+f(x) f(x) r … Algorithmes Numériques Résolution d’équation Méthode du point fixe g(x) = x+f(x) (1) permet de construire des figures comme dans l’exemple ci‐à‐droite L’idée est toujours de trouver une racine ‘r’ qui satisfasse f(r)=0 alors (1) g(r)= r+ x g(r) = r g(x) On cherche donc un point fixe r de g en construisant la suite suivante xi+1 = g(xi) f(x) Et ça ressemble vivement à un algorithme! r … Algorithmes Numériques Résolution d’équation (a) Méthode du point fixe Avantage Facile à programmer Inconvénient Diverge souvent (b) Voici quelques exemples : (a) convergence monotone (b) divergence monotone (c) convergence alternée (d) divergence alternée (c) (d) Algorithmes Numériques Résolution d’équation Labo 2 Développer un programme présentant une des trois methodes pour trouver toutes les solutions de ‐100 à 100 Utiliser les fonctions sin( x ) – x/13 et x / (1-x2) 0.6 0.4 0.2 Selon la méthode Dichotomie: calculer les erreurs de votre algorithme Pente (Newton) : si la valeur x0 ne converge pas, l’algo s’arrête et propose d’augmenter ou de diminuer x0 Point fixe : en jouant sur 1.8 2.0 2.2 2.4 2.6 2.8 3.0 0.2 Les points pour tendre à 6 sont principalement attribués selon la qualité de construction visuel de la méthode choisie. Merci! Questions? Prochain cours : Systèmes linéaires Problématique Modèle mathématique Méthode de Cramer Méthodes directes Substitution Elimination de Gauss Labo 3 Exemple de système linéaire