Exo7 Zéros des fonctions Vidéo prtie 1. L dichotomie Vidéo prtie. L méthode de l sécnte Vidéo prtie 3. L méthode de Newton Dns ce chpitre nous llons ppliquer toutes les notions précédentes sur les suites et les fonctions, à l recherche des zéros des fonctions. Plus précisément, nous llons voir trois méthodes fin de trouver des pproximtions des solutions d une éqution du type (f (x) = 0). 1. L dichotomie 1.1. Principe de l dichotomie Le principe de dichotomie repose sur l version suivnte du théorème des vleurs intermédiires : Théorème 1 Soit f : [, b] R une fonction continue sur un segment. Si f () f (b) 0, lors il existe l [, b] tel que f (l) = 0. L condition f () f (b) 0 signifie que f () et f (b) sont de signes opposés (ou que l un des deux est nul). L hypothèse de continuité est essentielle! y y f (b) > 0 f () > 0 l b x l b x f () < 0 f (b) < 0 Ce théorème ffirme qu il existe u moins une solution de l éqution (f (x) = 0) dns l intervlle [, b]. Pour le rendre effectif, et trouver une solution (pprochée) de l éqution (f (x) = 0), il s git mintennt de l ppliquer sur un intervlle suffismment petit. On v voir que cel permet d obtenir un l solution de l éqution (f (x) = 0) comme l limite d une suite. Voici comment construire une suite d intervlles emboîtés, dont l longueur tend vers 0, et contennt chcun une solution de l éqution (f (x) = 0). On prt d une fonction f : [, b] R continue, vec < b, et f () f (b) 0. 1
Voici l première étpe de l construction : on regrde le signe de l vleur de l fonction f ppliquée u point milieu +b Si f () f ( +b Si f () f ( +b f (c) = 0.. ) 0, lors il existe c [, +b ) > 0, cel implique que f ( +b ] tel que f (c) = 0. +b ) f (b) 0, et lors il existe c [, b] tel que y y + b f ( +b ) > 0 b x f ( +b + b b x Nous vons obtenu un intervlle de longueur moitié dns lequel l éqution (f (x) = 0) dmet une solution. On itère lors le procédé pour diviser de nouveu l intervlle en deux. Voici le processus complet : Au rng 0 : On pose 0 =, b 0 = b. Il existe une solution x 0 de l éqution (f (x) = 0) dns l intervlle [ 0, b 0 ]. Au rng 1 : Si f ( 0 ) f ( 0+b 0 ) 0, lors on pose 1 = 0 et b 1 = 0+b 0, sinon on pose 1 = 0+b 0 et b 1 = b. Dns les deux cs, il existe une solution x 1 de l éqution (f (x) = 0) dns l intervlle [ 1, b 1 ].... Au rng n : supposons construit un intervlle [ n, b n ], de longueur b n, et contennt une solution x n de l éqution (f (x) = 0). Alors : Si f ( n ) f ( n+b n ) 0, lors on pose n+1 = n et b n+1 = n+b n, sinon on pose n+1 = n+b n et b n+1 = b n. Dns les deux cs, il existe une solution x n+1 de l éqution (f (x) = 0) dns l intervlle [ n+1, b n+1 ]. À chque étpe on n x n b n. On rrête le processus dès que b n n = b n est inférieur à l précision souhitée. Comme ( n ) est pr construction une suite croissnte, (b n ) une suite décroissnte, et (b n n ) 0 lorsque n +, les suites ( n ) et (b n ) sont djcentes et donc elles dmettent une même limite. D près le théorème des gendrmes, c est ussi l limite disons l de l suite (x n ). L continuité de f montre que f (l) = lim n + f (x n ) = lim n + 0 = 0. Donc les suites ( n ) et (b n ) tendent toutes les deux vers l, qui est une solution de l éqution (f (x) = 0). 1.. Résultts numériques pour 10 Nous llons clculer une pproximtion de 10. Soit l fonction f définie pr f (x) = x 10, c est une fonction continue sur R qui s nnule en ± 10. De plus 10 est l unique solution positive de l éqution (f (x) = 0). Nous pouvons restreindre l fonction f à l intervlle [3,4] : en effet 3 = 9 10 donc 3 10 et 4 = 16 10 donc 4 10. En d utre termes f (3) 0 et f (4) 0, donc l éqution
3 (f (x) = 0) dmet une solution dns l intervlle [3,4] d près le théorème des vleurs intermédiires, et pr unicité c est 10, donc 10 [3,4]. Notez que l on ne choisit ps pour f l fonction x x 10 cr on ne connît ps l vleur de 10. C est ce que l on cherche à clculer! y 3 4 3.5 3.5 3.15 x Voici les toutes premières étpes : 1. On pose 0 = 3 et b 0 = 4, on bien f ( 0 ) 0 et f (b 0 ) 0. On clcule 0+b 0 = 3,5 puis f ( 0+b 0 ) : f (3,5) = 3,5 10 =,5 0. Donc 10 est dns l intervlle [3;3,5] et on pose 1 = 0 = 3 et b 1 = 0+b 0 = 3,5.. On sit donc que f ( 1 ) 0 et f (b 1 ) 0. On clcule f ( 1+b 1 ) = f (3,5) = 0,565 0, on pose = 3 et b = 3,5. 3. On clcule f ( +b ) = f (3,15) = 0,3... 0. Comme f (b ) 0 lors cette fois f s nnule sur le second intervlle [ +b, b ] et on pose 3 = +b = 3,15 et b 3 = b = 3,5. À ce stde, on prouvé : 3,15 10 3,5. Voici l suite des étpes : 0 = 3 b 0 = 4 Donc en 8 étpes on obtient l encdrement : 1 = 3 b 1 = 3,5 = 3 b = 3,5 3 = 3,15 b 3 = 3,5 4 = 3,15 b 4 = 3,1875 5 = 3,1565 b 5 = 3,1875 6 = 3,1565 b 6 = 3,171875 7 = 3,1565 b 7 = 3,16406... 8 = 3,16015... b 8 = 3,16406... 3,160 10 3,165 En prticulier, on vient d obtenir les deux premières décimles : 10 = 3,16... 1.3. Résultts numériques pour (1,10) 1/1 Nous cherchons mintennt une pproximtion de (1,10) 1/1. Soit f (x) = x 1 1,10. On pose 0 = 1 et b 0 = 1,1. Alors f ( 0 ) = 0,10 0 et f (b 0 ) =,038... 0.
4 0 = 1 b 0 = 1,10 1 = 1 b 1 = 1,05 = 1 b = 1,05 3 = 1 b 3 = 1,015 4 = 1,0065 b 4 = 1,015 5 = 1,0065 b 5 = 1,00937... 6 = 1,00781... b 6 = 1,00937... 7 = 1,00781... b 7 = 1,00859... 8 = 1,00781... b 8 = 1,0080... Donc en 8 étpes on obtient l encdrement : 1,00781 (1,10) 1/1 1,0081 1.4. Clcul de l erreur L méthode de dichotomie l énorme vntge de fournir un encdrement d une solution l de l éqution (f (x) = 0). Il est donc fcile d voir une mjortion de l erreur. En effet, à chque étpe, l tille l intervlle contennt l est divisée pr. Au déprt, on sit que l [, b] (de longueur b ) ; puis l [ 1, b 1 ] (de longueur b ) ; puis l [, b ] (de longueur b 4 ) ;... ; [ n, b n ] étnt de longueur b. n Si, pr exemple, on souhite obtenir une pproximtion de l à 10 N près, comme on sit que n l b n, on obtient l n b n n = b. Donc pour voir l n n 10 N, il suffit de choisir n tel que b 10 N. n Nous llons utiliser le logrithme déciml : b n 10 N (b )10 N n log(b ) + log(10 N ) log( n ) log(b ) + N nlog N + log(b ) n log Schnt log = 0, 301..., si pr exemple b 1, voici le nombre d itértions suffisntes pour voir une précision de 10 N (ce qui correspond, à peu près, à N chiffres excts près l virgule). 10 10 ( 10 décimles) 34 itértions 10 100 ( 100 décimles) 333 itértions 10 1000 ( 1000 décimles) 33 itértions Il fut entre 3 et 4 itértions supplémentires pour obtenir une nouvelle décimle. Remrque En toute rigueur il ne fut ps confondre précision et nombre de décimles exctes, pr exemple 0,999 est une pproximtion de 1,000 à 10 3 près, mis ucune décimle près l virgule n est excte. En prtique, c est l précision qui est l plus importnte, mis il est plus frppnt de prler du nombre de décimles exctes.
5 1.5. Algorithmes Voici comment implémenter l dichotomie dns le lngge Python. Tout d bord on définit une fonction f (ici pr exemple f (x) = x 10) : Algorithme. dichotomie.py (1) def f(x): return x*x - 10 Puis l dichotomie proprement dite : en entrée de l fonction, on pour vribles, b et n le nombre d étpes voulues. Algorithme. dichotomie.py () def dicho(,b,n): for i in rnge(n): c = (+b)/ if f()*f(c) <= 0: b = c else: = c return,b Même lgorithme, mis vec cette fois en entrée l précision souhitée : Algorithme. dichotomie.py (3) def dichobis(,b,prec): while b->prec: c = (+b)/ if f()*f(c) <= 0: b = c else: = c return,b Enfin, voici l version récursive de l lgorithme de dichotomie. Algorithme. dichotomie.py (4) def dichotomie(,b,prec): if b-<=prec: return,b else: c = (+b)/ if f()*f(c) <= 0: return dichotomie(,c,prec) else:
6 return dichotomie(c,b,prec) Mini-exercices 1. À l min, clculer un encdrement à 0,1 près de 3. Idem vec 3.. Clculer une pproximtion des solutions de l éqution x 3 + 1 = 3x. 3. Est-il plus efficce de diviser l intervlle en 4 u lieu d en? (À chque itértion, l dichotomie clssique nécessite l évlution de f en une nouvelle vleur +b pour une précision méliorée d un fcteur.) 4. Écrire un lgorithme pour clculer plusieurs solutions de ( f (x) = 0). 5. On se donne un tbleu trié de tille N, rempli de nombres pprtennt à {1,..., n}. Écrire un lgorithme qui teste si une vleur k pprît dns le tbleu et en quelle position.. L méthode de l sécnte.1. Principe de l sécnte L idée de l méthode de l sécnte est très simple : pour une fonction f continue sur un intervlle [, b], et vérifint f () 0, f (b) > 0, on trce le segment [AB] où A = (, f ()) et B = (b, f (b)). Si le segment reste u-dessus du grphe de f lors l fonction s nnule sur l intervlle [, b] où (,0) est le point d intersection de l droite (AB) vec l xe des bscisses. L droite (AB) s ppelle l sécnte. On recommence en prtnt mintennt de l intervlle [, b] pour obtenir une vleur. y B A A A b x
7 Proposition 1 Soit f : [, b] R une fonction continue, strictement croissnte et convexe telle que f () 0, f (b) > 0. Alors l suite définie pr 0 = et n+1 = n est croissnte et converge vers l solution l de (f (x) = 0). b n f (b) f ( n ) f ( n) L hypothèse f convexe signifie exctement que pour tout x, x dns [, b] l sécnte (ou corde) entre (x, f (x)) et (x, f (x )) est u-dessus du grphe de f. y x x (x, f (x )) x (x, f (x)) Démonstrtion 1. Justifions d bord l construction de l suite récurrente. L éqution de l droite pssnt pr les deux points (, f ()) et (b, f (b)) est f (b) f () y = (x ) + f () b Cette droite intersecte l xe des bscisses en (,0) qui vérifie donc 0 = ( f (b) f () ) b + f (), donc = b f (b) f () f ().. Croissnce de ( n ). Montrons pr récurrence que f ( n ) 0. C est vri u rng 0 cr f ( 0 ) = f () 0 pr hypothèse. Supposons vrie l hypothèse u rng n. Si n+1 < n (un cs qui s vérer posteriori jmis rélisé), lors comme f est strictement croissnte, on f ( n+1 ) < f ( n ), et en prticulier f ( n+1 ) 0. Sinon n+1 n. Comme f est convexe : l sécnte entre ( n, f ( n )) et (b, f (b)) est u-dessus du grphe de f. En prticulier le point ( n+1,0) (qui est sur cette sécnte pr définition n+1 ) est u-dessus du point ( n+1, f ( n+1 )), et donc f ( n+1 ) 0 ussi dns ce cs, ce qui conclut l récurrence. Comme f ( n ) 0 et f est croissnte, lors pr l formule n+1 = n b n f (b) f ( n ) f ( n), on obtient que n+1 n. 3. Convergence de ( n ). L suite ( n ) est croissnte et mjorée pr b, donc elle converge. Notons l s limite. Pr continuité f ( n ) f (l). Comme pour tout n, f ( n ) 0, on en déduit que f (l) 0. En prticulier, comme on suppose f (b) > 0, on l < b. Comme n l, n+1 l, f ( n ) f (l), l églité n+1 = n b n f (b) f ( n ) f ( n) devient à l limite (lorsque n + ) : l = l b l f (b) f (l) f (l), ce qui implique f (l) = 0. Conclusion : ( n ) converge vers l solution de (f (x) = 0).
8.. Résultts numériques pour 10 Pour = 3, b = 4, f (x) = x 10 voici les résultts numériques, est ussi indiquée une mjortion de l erreur ε n = 10 n (voir ci-près). 0 = 3 ε 0 0,1666... 1 = 3,148571485... ε 1 0,0040... = 3,16000000000... ε 0,0039... 3 = 3,1601117318... ε 3 0,0008... 4 = 3,164648985... ε 4 3,8... 10 5 5 = 3,167401437... ε 5 3,84... 10 6 6 = 3,16773374... ε 6 4,49... 10 7 7 = 3,16776109... ε 7 5,5... 10 8 8 = 3,167765433... ε 8 6,14... 10 9.3. Résultts numériques pour (1,10) 1/1 Voici les résultts numériques vec une mjortion de l erreur ε n = (1,10) 1/1 n, vec f (x) = x 1 1,10, = 1 et b = 1,1 0 = 1 ε 0 0,0083... 1 = 1,00467633... ε 1 0,0035... = 1,00661950... ε 0,0014... 3 = 1,0074197... ε 3 0,00060... 4 = 1,0077471... ε 4 0,0004... 5 = 1,00788130... ε 5 0,00010... 6 = 1,00793618... ε 6 4,14... 10 5 7 = 1,0079586... ε 7 1,69... 10 5 8 = 1,00796779... ε 8 6,9... 10 6.4. Clcul de l erreur L méthode de l sécnte fournit l encdrement n l b. Mis comme b est fixe cel ne donne ps d informtion exploitble pour l n. Voici une fçon générle d estimer l erreur, à l ide du théorème des ccroissements finis. Proposition Soit f : I R une fonction dérivble et l tel que f (l) = 0. S il existe une constnte m > 0 telle que pour tout x I, f (x) m lors f (x) x l m pour tout x I. Démonstrtion Pr l inéglité des ccroissement finis entre x et l : f (x) f (l) m x l mis f (l) = 0, d où l mjortion.
9 Exemple 1. Erreur pour 10 Soit f (x) = x 10 et l intervlle I = [3,4]. Alors f (x) = x donc f (x) 6 sur I. On pose donc m = 6, l = 10, x = n. On obtient l estimtion de l erreur : ε n = l n f ( n) m = n 10 6 Pr exemple on trouvé = 3,16... 3,17 donc 10 3,17 10 6 = 0,489. Pour 8 on trouvé 8 = 3,16776543347473... donc 10 8 8 10 6 = 6,14... 10 9. On en fit 7 décimles exctes près l virgule. Dns l prtique, voici le nombre d itértions suffisntes pour voir une précision de 10 n pour cet exemple. Grosso-modo, une itértion de plus donne une décimle supplémentire. 10 10 ( 10 décimles) 10 itértions 10 100 ( 100 décimles) 107 itértions 10 1000 ( 1000 décimles) 1073 itértions Exemple. Erreur pour (1,10) 1/1 On pose f (x) = x 1 1,10, I = [1;1,10] et l = (1,10) 1/1. Comme f (x) = 1x 11, si on pose de plus m = 1, on f (x) m pour x I. On obtient ε n = l n 1 n 1,10. 1 Pr exemple 8 = 1.007967797318543... donc (1,10) 1/1 8 1 8 1,10 = 6,9... 10 6. 1.5. Algorithme Voici l lgorithme : c est tout simplement l mise en œuvre de l suite récurrente ( n ). Algorithme. secnte.py def secnte(,b,n): for i in rnge(n): = -f()*(b-)/(f(b)-f()) return Mini-exercices 1. À l min, clculer un encdrement à 0,1 près de 3. Idem vec 3.. Clculer une pproximtion des solutions de l éqution x 3 + 1 = 3x. 3. Clculer une pproximtion de l solution de l éqution (cos x = 0) sur [0,π]. Idem vec (cos x = sin x).
10 4. Étudier l éqution (exp( x) = ln(x)). Donner une pproximtion de l (ou des) solution(s) et une mjortion de l erreur correspondnte. 3. L méthode de Newton 3.1. Méthode de Newton L méthode de Newton consiste à remplcer l sécnte de l méthode précédente pr l tngente. Elle est d une redoutble efficcité. Prtons d une fonction dérivble f : [, b] R et d un point u 0 [, b]. On ppelle (u 1,0) l intersection de l tngente u grphe de f en (u 0, f (u 0 )) vec l xe des bscisses. Si u 1 [, b] lors on recommence l opértion vec l tngente u point d bscisse u 1. Ce processus conduit à l définition d une suite récurrente : u 0 [, b] et u n+1 = u n f (u n) f (u n ). Démonstrtion En effet l tngente u point d bscisse u n pour éqution : y = f (u n )(x u n )+f (u n ). Donc le point (x,0) pprtennt à l tngente (et à l xe des bscisses) vérifie 0 = f (u n )(x u n )+ f (u n ). D où x = u n f (u n) f (u n ). f (u n ) u n+1 u n 3.. Résultts pour 10 Pour clculer, on pose f (x) = x, vec f (x) = x. L suite issue de l méthode de Newton est déterminée pr u 0 > 0 et l reltion de récurrence u n+1 = u n u n u n. Suite qui pour cet exemple s ppelle suite de Héron et que l on récrit souvent u 0 > 0 et u n+1 = 1 (u n + un ).
11 Proposition 3 Cette suite (u n ) converge vers. Pour le clcul de 10, on pose pr exemple u 0 = 4, et on peut même commencer les clculs à l min : u 0 = 4 ( ) u 1 = 1 u 0 + 10 u 0 = 1 ( ) 4 + 10 4 = 13 ( ) 4 = 3,5 ( ) u = 1 u 1 + 10 u 1 = 1 13 4 + 10 13 = 39 104 = 3,1634... ( ) 4 u 3 = 1 u + 10 u = 16401 6843 = 3,167788... u 4 = 3,1677660168387... Pour u 4 on obtient 10 = 3,16776601683... vec déjà 13 décimles exctes! Voici l preuve de l convergence de l suite (u n ) vers. Démonstrtion u 0 > 0 et u n+1 = 1 (u n + un ). 1. Montrons que u n pour n 1. Tout d bord u n+1 = 1 4 ( u n + u n ) = 1 4u (u 4 n u n + ) = 1 (u n ) n 4 u n Donc u n+1 0. Comme il est clir que pour tout n 0, u n 0, on en déduit que pour tout n 0, u n+1. (Notez que u 0 lui est quelconque.). Montrons que (u n ( ) n 1 est une suite décroissnte qui converge. Comme u n+1 u n = 1 1 + u n ), et que pour n 1 on vient de voir que u n (donc 1), lors u n u n+1 u n 1, pour tout n 1. Conséquence : l suite (u n ) n 1 est décroissnte et minorée pr 0 donc elle converge. 3. (u n ) converge vers. Notons ( l l limite de (u n ). Alors u n l et u n+1 l. Lorsque n + dns l reltion u n+1 = 1 u n + u n ), on obtient l = 1 ( ) l + l. Ce qui conduit à l reltion l = et pr positivité de l suite, l =. 3.3. Résultts numériques pour (1,10) 1/1 Pour clculer (1,10) 1/1, on pose f (x) = x 1 vec = 1,10. On f (x) = 1x 11. On obtient u n+1 = u n u1 n. Ce que l on reformule insi : 1u 11 n ( 11u n + ). u 0 > 0 et u n+1 = 1 1 Voici les résultts numériques pour (1,10) 1/1 en prtnt de u 0 = 1. u 0 = 1 u 1 = 1,0083333333333333... u = 1,0079748433368980... u 3 = 1,0079741404315996... u 4 = 1,007974140489038... u 11 n
1 Toutes les décimles ffichées pour u 4 sont exctes : (1,10) 1/1 = 1,007974140489038... 3.4. Clcul de l erreur pour 10 Proposition 4 1. Soit k tel que u 1 k. Alors pour tout n 1 : u n ( ) k n 1. Pour = 10, u 0 = 4, on : u n ( ) 1 n 1 10 8 4 Admirez l puissnce de l méthode de Newton : 11 itértions donnent déjà 1000 décimles exctes près l virgule. Cette rpidité de convergence se justifie grâce u clcul de l erreur : l précision est multipliée pr à chque étpe, donc à chque itértion le nombre de décimles exctes double! 10 10 ( 10 décimles) 4 itértions 10 100 ( 100 décimles) 8 itértions 10 1000 ( 1000 décimles) 11 itértions Démonstrtion 1. Dns l preuve de l proposition 3, nous vons vu l églité : u n+1 = (u n ) 4u n donc (u n+1 )(u n+1 + ) = (u n ) (u n + ) 4u n Ainsi comme u n pour n 1 : u n+1 = (u n ) 1 u n+1 + 1 4 ( 1 + u n ) (u n ) 1 1 4 (1+1) = 1 (u n ) Si k vérifie u 1 k, nous llons en déduire pr récurrence, pour tout n 1, l formule u n ( ) k n 1 C est vri pour n = 1. Supposons l formule vrie u rng n, lors : u n+1 1 (u n ) = 1 ( ( ) ) k n 1 ( ) = ( ) k n L formule est donc vri u rng suivnt.. Pour = 10 vec u 0 = 4 on u 1 = 3,5. Comme 3 10 4 lors u 1 10 u 1 3 1 4. On fixe donc k = 1 4. Toujours pr l encdrement 3 10 4, l formule obtenue précédemment devient u n 4 ( 1 ) n 1 ( ) 4 1 n 1 = 8. 3 4
13 3.5. Algorithme Voici l lgorithme pour le clcul de. On précise en entrée le réel 0 dont on veut clculer l rcine et le nombre n d itértions. Algorithme. newton.py def rcine_crree(,n): u=4 # N'importe qu'elle vleur > 0 for i in rnge(n): u = 0.5*(u+/u) return u En utilisnt le module deciml le clcul de u n pour n = 11 donne 1000 décimles de 10 : 3, 167766016837933199889354443718533719555139351 686857504857959443863938134448108379300951 873478415840055148548856030453880014690519596700 15390334491657179599406591501534741133394841408 53169957709047157646104436957879060378086099418 83717115484063855999118596845640336961604691 3143361894979189066595436167617878135006138818 678580463683134954780311437693346719738195131856 7840331417954018308045878446146005357757970 886440904407977896034543989163349656106779 65167603104843669779375696155705003698949094694 185000735834884464388731109891090434805435653 40390774019786543759396417600130699000095578446 31096679069441833613018130894541703315807731663 8639519379370465476506306368658719780493146 05345411160935697988134597000798883537595853 85795136964686511497675171345955938039375651 53698551949553509994703884399033646616547064734 999796133434030185705187836676345789510739887 51579451577165139663443839901848456093576600 Mini-exercices 1. À l clculette, clculer les trois premières étpes pour une pproximtion de 3, sous forme de nombres rtionnels. Idem vec 3.. Implémenter l méthode de Newton, étnt données une fonction f et s dérivée f. 3. Clculer une pproximtion des solutions de l éqution x 3 + 1 = 3x. 4. Soit > 0. Comment clculer 1 pr une méthode de Newton? 5. Clculer n de sorte que u n 10 10 l (vec u 0 = 4, u n+1 = 1 (u n + un ), = 10).
14 Auteurs Auteurs : Arnud Bodin, Niels Borne, Lur Desideri Dessins : Benjmin Boutin