Ingénierie numérique et simulation Recherche de zéro Intégration Numérique Problème dynamique à une dimension Problème linéaire à plusieurs dimensions
Recherche de zéro Résoudre f(x) = 0
Recherche de zéro Méthode par dichotomie : Théorème de la valeur intermédiaire : Soient a, b R 2, tels que a < b. Soit une fonction f continue sur [a; b] et f(a). f(b) < 0. Alors l équation f(x) = 0 a au moins une solution dans l intervalle [a;b]. Principe de la dichotomie : On considère deux nombres a et b et une fonction f continue sur l intervalle [a;b] telle que f(a) et f(b) soient de signe opposés. Supposons que nous voulions résoudre l équation f(x)=0. Nous savons d après le TVI que f a au moins un zéro dans l intervalle [a;b]. La méthode de dichotomie consiste à diviser l intervalle en deux, en calculant : m=(a+b)/2. On détermine alors f(m) et on peut alors réduire la longueur de l intervalle en deux : Si f(a).f(m)<0, l intervalle de recherche devient [a;m], Sinon, l intervalle de recherche devient [m;b] Savoir écrire l algo et le programme python pour trouver le zéro d une fonction par dichotomie
Recherche de zéro Méthode de Newton : L algorithme utilise une forme linéarisée de la fonction que l on étudie. La solution est approchée grâce à la dérivée de la fonction en se déplaçant sur la courbe représentative de f. Soit I un intervalle de R et f une fonction dérivable sur I. Pour déterminer une approximation numérique des solutions de l éq. f(x) = 0, la méthode de Newton part d une solution approchée x 0 et remplace l équation f(x) = 0 par l éq. approchée f x 0 + x x 0. f (x 0 ), d où la solution : x = x 0 f x 0 f x 0. Assimilation de la courbe à sa tangente au point d abscisse x 0. Il faut f (x0) non nul. Si x 1 appartient encore à I, on peut recommencer en partant de x1, etc. Relation de récurrence : x n+1 = x n f x n f x n, x 0 I.
Recherche de zéro Méthode de la sécante : L utilisation de la méthode de Newton nécessite le calcul de la dérivée de f en chaque point de l itération, ce qui peut être coûteux. C est pourquoi on remplace souvent en pratique la tangente par la sécante. Relation de récurrence : x n+1 = x n x n x n 1 f x n f x n 1. f(x n ), n 1.
Recherche de zéro Bibliothèque Scipy import scipy.optimize as opt opt.newton(f,2,df) Méthode de Newton avec x 0 = 2 Par défaut, la précision espérée est 1.48e 8 Le nombre maximal d'itérations est 50 opt.newton(f,2) Méthode de la sécante avec x 0 = 2 Précision et itération comme pour le premier cas df non précisée : c est la méthode de la sécante qui sera utilisée opt.bisect(f,1,2) Méthode de dichotomie avec a=1 et b=2 Par défaut, la précision espérée est 1e 12 Le nombre maximal d itérations est 100
Intégration Numérique Comment calculer une intégrale numériquement?
Intégration Numérique Méthode des rectangles En utilisant la propriété de linéarité de l intégrale, on subdivise l intervalle d intégration initial en n intervalles que l on prendra pour simplifier de même longueur. Somme de n intégrales. L aire sous la courbe est approximée par l aire d un rectangle. Notons [a ; b] un des sous intervalles. Intégrale exacte Rectangle à gauche Rectangle point milieu Rectangle à droite b f(x) a dx b a. f(a) b a. f a + b 2 b a. f b
Intégration Numérique Méthode des trapèzes : La fonction n est plus interpolée par des constantes (polynômes de degré 0 pour chacun des rectangles), mais par des polynômes de degré 1 (portion de fonctions linéaires) sur chacun des sous intervalles. Géométriquement, cela revient à approximer l aire sous la courbe sur un intervalle [a ; b] par un trapèze :
Intégration Numérique Méthode de Simpson La méthode de Simpson s appuie sur une interpolation quadratique sur chaque intervalle. Plus précise que l interpolation par la méthode des trapèzes lorsque la fonction à intégrer est raisonnablement continue, mais moins lorsque la fonction présente des discontinuités.
Problème dynamique à une dimension Equation Différentielle
Problème dynamique à une dimension Un système dynamique est un système qui évolue au cours du temps de façon : causale : son avenir ne dépend que de phénomènes du passé ou du présent ; déterministe : à une condition initiale donnée, correspond à chaque instant ultérieur un et un seul état futur possible. Pour certains types d équations différentielles, il est possible de déterminer une solution analytique. Pour d autres, le problème peut s avérer plus difficile. Ainsi, la résolution numérique des équations différentielles a pour but d approximer la solution d une équation différentielle dont on n a pas de solution analytique.
Problème dynamique à une dimension On considère le Syst. différentiel général : y t = f y t, t y t 0 = y 0 On notera que y peut désigner un vecteur et non pas seulement une seule variable. Si f est continue et lipchitzienne en y alors le problème de Cauchy admet une solution unique. Comment résoudre un tel problème? 13
Problème dynamique à une dimension Euler explicite : L approximation courante consiste à échantillonner les grandeurs physiques avec un pas de temps régulier d une longueur h. Pour une étude compris entre les temps t0 et t1, l intervalle de temps est donc divisé en n segments de longueur h = t 1 t 0. n L idée est de retenir que l on effectue un développement limité à l ordre 1, en écrivant que pour un réel h strictement positif et petit : f y k, t k = y k+1 y k. h t k+1 = t k + h y k+1 = y k + h. f(y k, t k )
Problème dynamique à une dimension Euler explicite : Quelles sont les données de l algorithme? Comment choisir le pas h? Petit : solution num. satisfaisante Grand : temps de calcul long La complexité est linéaire avec le nombre de segments. 15
Problème dynamique à une dimension Euler implicite Une seconde méthode d approximation utilise la méthode des rectangles à droite, ainsi la relation de récurrence s écrit : t k+1 = t k + h y k+1 = y k + h. f y k+1, t k 16
Problème dynamique à une dimension Bibliothèque scipy et function «odeint» Parmi les méthodes à un pas, : - Méthodes de Runge Kutta et plus spécialement celle d ordre 1 (RK1) qui est la méthode d Euler. - La plus utilisée reste la méthode de Runge Kutta d ordre 4 (RK4) car elle offre un bon compromis entre précision, rapidité et volume en mémoire. On peut résoudre numériquement des ED de la forme y0 = f(t ; y) sur un intervalle [a ; b] grâce à la fonction «odeint» du module scipy.integrate. L'aspect déroutant est la nature de t qui est un tableau de temps entre a et b : t est de la forme t = [a, t1,., b]. La condition initiale est alors y(a) = y0. La valeur renvoyée est un tableau contenant une estimation de la solution aux différents temps. 17
Problème dynamique à une dimension Plusieurs critères pour juger de la qualité d une méthode (ou schéma) numérique de résolutions d ED : Erreur de consistance donne l ordre de grandeur de l erreur effectué à chaque pas. Pour la méthode d Euler, cela mesure l erreur qu entraine le fait d approcher le nombre dérivé par un taux d accroissement. L'ordre p quantifie la consistance ou la qualité de l'approximation : la somme des erreurs cumulées est en O(h p ). Il faut au moins une méthode d ordre 1 pour que l erreur tende vers 0 lorsque le pas tend vers 0. La stabilité contrôle la différence entre 2 sol. approchées correspondant à 2 conditions initiales voisines. Un syst. est dit stable si un petit écart entre les CI et de petites erreurs d arrondis provoquent une erreur contrôlable. Critère de convergence. Si l erreur globale (max des écarts entre la sol exacte et la sol approchée) tend vers 0 lorsque le pas tend vers 0 (stabilité + consistance). 18
Problème linéaire à plusieurs dimensions Résolution de AX=B
Pbm linéaires à plusieurs dimensions Systèmes lin. de n éq. à n inc. (S) a 1,1 x 1 + + a 1,n x n = b 1 S : a n,1 x 1 + + a n,n x n = b n a i,j 1 i n 1 j n, n N R n sont les coefficients du système (S) b i 1 i n R n sont les seconds membres, x i 1 i n R n sont les inconnues du système. On peut aussi écrire sous la forme A.X=B sous forme matricielle. C = A B : matrice augmentée (ajout b après a) 20
Pbm linéaires à plusieurs dimensions Algo du pivot de Gauss-Jordan pivot partiel : L algo. permet de résoudre le système (S) par une suite finie d opérations élémentaires sur les lignes. Il procède en deux phases principales : «triangularisation» du système et «remontée». Liste de liste : A = [[a 0,0, a 0,1,, a 0,n 1 ],, [a n 1,0, a n 1,1,, a n 1,n 1 ]] 21
Pbm linéaires à plusieurs dimensions Triangularisation : (pseudo-code) Pour k variant de 0 à n (par pas de 1) Chercher i k, n, tel que a i,k = max j k,n Echanger Li et Lk Pour i variant de k+1 à n faire L i < L i a i,k a k,k L k Fin Pour Fin Pour Remontée : (pseudo-code) Pour k variant de n-1 à 0 (par pas de 1) x k c k,n x k x k /c k,k Fin Pour n 1 j=k+1 c k,j x j a j,k Sous fonction utilisée : trouve_pivot echange_lignes transvection Exemple 2x + y = 5 4x + 2y + 2z = 16 x y + z = 0 22
Pbm linéaires à plusieurs dimensions Fonction solve du sous module linalg de numpy. import numpy as np import numpy.linalg as npl A = np.array([[-2,1,0],[-4,2,2],[1,-1,1]]) b = np.array([5,16,0]) x = npl.solve(a,b) 23