ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes d’équation non linéaires f(x)=0
Introduction Comment résoudre le système suivant ? Méthodes directes Méthodes itératives
Introduction Comment résoudre le système suivant ? Méthodes directes : impossibles Méthodes itératives
Résolution de f(x)=0 Soit une fonction f : Rn Rn Principe : continue sur ... Dérivable sur ... Principe : trouver une méthode itérative uk+1 = g(uk) qui converge vers la solution
Résolution de f(x)=0 Plusieurs méthodes Problèmes ? Newton Quasi-Newton (sécante, Broyden, …) Point fixe Gradient Problèmes ? Convergence Complexité
} f(x)=0 lorsque n=1 Recherche par dichotomie méthode de la séquente méthode de point fixe méthode de Newton-Raphson } Aussi lorsque
Recherche dichotomique Théorème : x = -0.2:0.01:2.2; figure(1) subplot(1,2,2) h = plot(x,x.^2-2) set(h,'LineWidth',3)hold on %plot([0 2],[-2 2],'--r') axis([-.2 2.2 -2.5 2.5])plot([-.2 2.2],[1 1],'k') set(gca,'FontSize',14,'FontName','Times','XTick',[],'YTick',[],'Box','on');ylabel('f(x)') text(1,0.9,' c=a+b/2') text(-.5,-1,'f(c)') plot([1 1],[1 -1],':k') plot([-0.2 1],[-1 -1],':k') text(0,0.9,' a') text(-.5,-2,'f(a)') plot([0 0],[1 -2],':k') plot([-0.2 0],[-2 -2],':k') text(2,0.9,' b') text(-.5,2,'f(b)') plot([2 2],[1 2],':k') plot([-0.2 2],[2 2],':k') h = plot(2, 2,'or') set(h,'LineWidth',6) h = plot(1, -1,'oc') h = plot(0, -2,'or') title('Méthode de la dichotomie') hold off Bonne idée : prendre c à l’intersection de la séquente et le l’axe des x
Méthode de la séquente
La « fausse » bonne idée garder f(a) et f(b) de signe opposé Bonne idée : si on est proche de la solution : prendre la dérivée
Méthode de Newton x = -0.2:0.01:2.2; figure(1) subplot(1,2,2) h = plot(x,x.^2-2) set(h,'LineWidth',3)hold on plot([-0.2 2.2],[0 0],'k') axis([-.2 2.2 -2.5 2.5])set(gca,'FontSize',14,'FontName','Times','XTick',[],'YTick',[],'Box','on');%ylabel('f(x)') a = .6; fa = a^2-2; text(a,-.2,' a') text(-.5,fa,'f(a)') plot([a a],[0 fa],':k') plot([-0.2 a],[fa fa],':k') b = a - (fa)/(2*a); fb = b^2-2; text(b,-0.2,' b') text(-.5,fb,'f(b)') plot([b b],[0 fb],':k') plot([-0.2 b],[fb fb],':k') plot([a b],[fa 0],'--r') h = plot(a, fa,'or') set(h,'LineWidth',6) h = plot(b, fb,'or') a=b;fa=fb; text(b,-0.2,' c') text(-.5,fb,'f(c)') title('Méthode de Newton-Raphson') hold off
Méthode de Newton En dimension 1 : on considère l'approximation affine : on cherche h tel que f(uk+h)=0 soit si on néglige les terme en h2 et ainsi
Méthode de Newton Illustration y=tanh(x)cos(x2)+x-2 y(x) y'=(1-tanh2(x))cos(x2) -2tanh(x)sin(x2)x+1
Méthode de Newton Illustration y=tanh(x)cos(x2)+x-2 y'=(1-tanh2(x))cos(x2) -2tanh(x)sin(x2)x+1 u1 = 2.1627 u0 = 2 u1 = 2.1627 u2 = 2.1380 u3 = 2.1378 u4 = 2.1378 u0 = 2
Méthode de point fixe Définition f(x)=0 et le x = g(x) exemple convergence (suite de Cauchy) théorème de convergence globale théorème de convergence local théorème du point fixe
Méthode du point fixe Principe général : trouver g en fonction de f telle que f(û)=0 g(û)=û la suite uk converge (si u0 est bien choisi) conditions suffisantes sur g en dimension 1 g dérivable et |g'(û)| < 1 conditions suffisantes sur g en dimension n g différentiable et [g(û)] < 1 ( = rayon spectral)
Méthode du point fixe Convergence linéaire : il existe C > 0 tel que Inconvénient : choix de g de manière algébrique
|g'(û)| < 1 convergence assurée Méthode du point fixe Exemple en dimension 1 résolution de x2 - 2 = 0 choix de g : g1(x) = 2/x g'1(x) = -2/x2 g'1(û) = -1 g2(x) = 2x - 2/x g'1(x) = 2+2/x2 g'1(û) = 3 g3(x) = x/2 + 1/x g'1(x) = 1/2-1/x2 g'1(û) = 0 g1 g2 g3 u0 = 1 u1 = 2 u2 = 1 u3 = 2 u4 = 1 u0 = 0.999 u1 = -0.0402 u2 = 49.668 u3 = 99.296 u4 = 198.57 u0 = 1 u1 = 1.5000 u2 = 1.4167 u3 = 1.4142 u4 = 1.4142 |g'(û)| < 1 convergence assurée
|g'(û)| < 1 convergence assurée Méthode du point fixe Exemple en dimension 1 résolution de x2 - 2 = 0 choix de g : g1(x) = 2/x g'1(x) = -2/x2 g'1(û) = -1 g2(x) = 2x - 2/x g'1(x) = 2+2/x2 g'1(û) = 3 g3(x) = x/2 + 1/x g'1(x) = 1/2-1/x2 g'1(û) = 0 g1 g2 g3 u0 = 1 u1 = 2 u2 = 1 u3 = 2 u4 = 1 u0 = 0.999 u1 = -0.0402 u2 = 49.668 u3 = 99.296 u4 = 198.57 u0 = 1 u1 = 1.5000 u2 = 1.4167 u3 = 1.4142 u4 = 1.4142 |g'(û)| < 1 convergence assurée
résumé Accélération ! Dichotomie séquente newton Point fixe Multidimensionnel ? Accélération !
Accélération de la convergence Définition : l’ordre de la convergence Motivation Définition du principe de Aitken Théorème de convergence quadratique Aitken et Steffensen
Méthode de Newton En dimension n : une équation, n inconnues : n équations, n inconnues : Le vecteur gradient La matrice Hessiène La matrice jacobienne
Méthode de Newton En dimension n : on considère l'approximation affine : on cherche h tel que f(uk+h)=0 soit système linéaire ! et ainsi
Méthode de Newton Théorème : s'il existe û tel que f(û)=0 f est différentiable dans un voisinage de û f(û) est inversible alors il existe > 0 tel que si u° vérifie alors la suite construite par la méthode de Newton converge vers û
Méthode de Newton Avantage : convergence quadratique il existe C > 0 tel que Inconvénient : calcul de f(x) souvent difficile
Exemple
Méthodes de Quasi-Newton Comment se passer du calcul de f(x) ? En dimension 1 : méthode de la sécante En dimension n : le rapport précédent n'a aucun sens (u est un vecteur) comment approcher f(uk+1) ? Approximation de 1/f '(uk+1)
Méthodes de Quasi-Newton Approximation de f(uk+1) par la matrice Ak Ak doit vérifier Ak(uk - uk-1)=f(uk) - f(uk-1) Problème : il existe une infinité de Ak Méthode de Broyden : condition supplémentaire : Akz = Ak-1z si (uk - uk-1)'z = 0
Méthodes de Quasi-Newton Méthode de Broyden : algorithme initialisation de u0 et A0 (différences finies) itération :
Méthodes de Quasi-Newton Convergence de la méthode de Broyden : "super-linéaire" moins rapide que Newton
Méthode du point fixe Principe général : trouver g en fonction de f telle que f(û)=0 g(û)=û la suite uk converge (si u0 est bien choisi) conditions suffisantes sur g en dimension 1 g dérivable et |g'(û)| < 1 conditions suffisantes sur g en dimension n g différentiable et [g(û)] < 1 ( = rayon spectral)
Méthode du point fixe Exemple en dimension 3
Méthode du point fixe Exemple en dimension 3
Méthode du point fixe Exemple en dimension 3 (suite) valeurs initiales (x0=0.1 ; y0=0.1 ; z0=-0.1) convergence vers (0.5 ; 0.0 ; -0.5236) résultat théorique: (0.5 ; 0.0 ; -/6)
Méthode du point fixe Comment essayer d'accélérer la convergence remplacer les valeurs par leurs "dernières" estimations (cf. Gauss-Siedel pour les systèmes linéaires) exemple :
Conclusion Méthodes Problème général : initialisation de la suite ! Newton : inconvénient = calcul des dérivées avantage = convergence quadratique Quasi-Newton : inconvénient = convergence super-linéaire avantage = plus de calcul des dérivées Point Fixe : inconvénient = convergence linéaire inconvénient = choix de g Problème général : initialisation de la suite !
TD Implémenter en Matlab : Newton, Broyden, point fixe (+Gauss Siedel) pour les problèmes suivants : comparer le temps de convergence (pour un même seuil)