2012_2013_M33_L2

  • Published on
    25-Nov-2015

  • View
    110

  • Download
    0

Transcript

AnalysenumriqueM33USTVL22012/2013Recueil dexercices corrigset aide-mmoireG. FACCANONIDerniremise--jourJeudi 31janvier 2013Ce fascicule est un support au cours danalyse numrique. Il aborde : la recherche de racines dune fonction, linterpo-lation, lintgration numriques, lintgration dquations diffrentielles, le fitting de donnes et la rsolution de systmeslinaires. Les applications se feront avec le langage Python dont la documentation et les sources peuvent tre tlcharges ladresse http://www.python.org.Avertissement : ces notes sont rgulirement mises jour et corriges, ne vous tonnez pas si vous dcouvrez des erreurs.Merci de me les communiquer. Toutes les remarques ou questions permettant den amliorer la rdaction peuvent treenvoyes ladresse gloria.faccanoni@univ-tln.frGloria FACCANONIIMATH Btiment U-318 T 0033 (0)4 94 14 23 81Universit du Sud Toulon-VarAvenue de luniversit B gloria.faccanoni@univ-tln.fr83957 LA GARDE - FRANCE i http://faccanoni.univ-tln.fr2Table des matiresNotations 5Introduction au calcul scientifique 71. Rsolution dquations non linaires 91.1. tape : localisation des zros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. tape : construction dune suite convergente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.1. Mthodes de dichotomie (ou bissection), de LAGRANGE (ou Regula falsi) et de la scante . . . . . . . . 101.2.2. Mthodes de point fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122. Interpolation 472.1. Position du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.2. Interpolation de LAGRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.3. Polynme dHERMITE ou polynme osculateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.4. Splines : interpolation par morceaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.4.1. Interpolation linaire composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.5. Approximation de drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553. Quadrature 733.1. Principes gnraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.2. Exemples de formules de quadrature interpolatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754. quations diffrentielles ordinaires 994.1. Schmas numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2. Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025. Meilleur approximation au sens des moindres carrs. 1235.1. Fitting par une relation affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.2. Fitting par un polynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256. Systmes linaires 1316.1. Systmes mal conditionns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.2. Mthode (directe) dlimination de Gauss et factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326.3. Mthodes itratives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137A. Python : guide de survie pour les TP 159A.1. Obtenir Python et son diteur IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159A.1.1. Utilisation de base dIDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159A.2. Notions de base de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162A.3. Fonctions et Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168A.3.1. Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168A.3.2. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170A.4. Structure conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172A.5. Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733NotationsEnsembles usuels en mathmatiquesOn dsigne gnralement les ensemble les plus usuels par une lettre double barre :N lensemble des entiers naturelsN lensemble des entiers strictement positifsZ lensemble des entiers relatifs (positifs, ngatifs ou nuls)Z lensemble des entiers 6= 0Q lensemble des nombres rationnels(pq , p Z, q Z)R lensemble des relsR lensemble des rels autres que 0C lensemble des nombres complexesIntervallesIngalit Ensemble Reprsentation graphiquea x b [a,b] a ba < x < b ]a,b[ a ba x < b [a,b[ a ba < x b ]a,b] a bx a [a,+[ ax > a ]a,+[ ax b ],b] bx < b ],b[ b|x| a avec a 0 [a, a] a a|x| < a avec a 0 ]a, a[ a a|x| a avec a 0 ],a] [a,+[ a a|x| > a avec a 0 ],a[]a,+[ a ax R ],+[Symboles utiliss dans le documentdfinitionthorme, corollaire, propositionproprit(s)astuceattentionremarquemthode, algorithme, cas particulierexercice de baseexerciceexemple5Notations Jeudi 31 janvier 2013curiosit gal par dfinition> strictement suprieur< strictement infrieur suprieur ou gal infrieur ou gal6= diffrent{ } ensemble; ensemble vide| tel que appartient6 nappartient pas pour tout (quantificateur universel) il existe (quantificateur universel)6 il nexiste pas! il existe un et un seul est sous-ensemble (est contenu) union densembles intersection densembles= si . . . alors si et seulement sissi si et seulement siln logarithme de base eloga logarithme de base a infinisymbole dintgraleni=0 ai somme par rapport lindice i , quivaut a0+a1+ +anni=0 ai produit par rapport lindice i , quivaut a0a1 ann! n factoriel, quivaut 12 ng f g compos ff , d fd x symboles de driveConventions pour la prsentation du codePour lcriture du code, on utilise deux prsentations :? les instructions prcdes de chevrons dans une boite grise sont saisir dans une session interactive1 >>> 1 + 12 2? les instructions sans chevrons dans une boite grise sont des bouts de code crire dans un fichier1 print Coucou!6 G. FaccanoniIntroduction au calcul scientifiqueOn peut dfinir le CALCUL SCIENTIFIQUE comme la discipline qui permet de reproduire sur un ordinateur un phnomneou un processus dcrit par un modle mathmatique.PHNOMNE PHYSIQUE, CO-NOMIQUE, BIOLOGIQUE. . .Observation exprimentaleModle conceptuelMODLE MATHMATIQUEMise en quations :quations diffrentielles, int-grales, stochastiques. . .ANALYSE MATHMATIQUEBien posBien conditionnProprits de la solutionSolutions analytiquesANALYSE NUMRIQUEMthodes de discrtisationAnalyse des algorithmes (rapi-dit, prcision, souplesse)Estimation des erreursPROGRAMMATIONLangage de programmation (C,C++, Fortran, Java, Python, Mat-lab, Scilab, Octave. . .)Structure des donnesImplmentation de lalgorithmeOptimisationCALCULSPOSTPROCESSINGVisualisationAnalyse des rsultatsCALCUL SCIENTIFIQUELordinateur est aujourdhui un outil incontournable pour simuler et modliser des systmes complexes, mais il fautencore savoir exprimer nos problmes (physiques, conomiques, biologiques. . .) en langage formalis des mathmatiquespures sous la forme dquations mathmatiques (diffrentielles, intgrales. . .). Nous sommes habitus rsoudre les pro-blmes de faon analytique, alors que lordinateur ne travaille que sur des suites de nombres. On verra quil existe souventplusieurs approches pour rsoudre un mme problme, ce qui conduit des algorithmes diffrents. Un des objectifs de cecours est de fournir des bases rigoureuses pour dvelopper quelques algorithmes utiles dans la rsolution de problmes enmathmatique, conomie, physique. . .Un algorithme, pour tre utile, doit satisfaire un certain nombre de conditions. Il doit tre :rapide : le nombre doprations de calcul pour arriver au rsultat escompt doit tre aussi rduit que possible ;prcis : lalgorithme doit savoir contenir les effets des erreurs qui sont inhrentes tout calcul numrique (ces erreurspeuvent tre dues la modlisation, la reprsentation sur ordinateur ou encore la troncature) ;souple : lalgorithme doit tre facilement transposable des problmes diffrents.Le choix et loptimisation des algorithmes numriques mis en pratique sont absolument cruciaux tant pour les calculsde type industriel souvent trs rptitifs et devant donc pouvoir tre excuts en un temps trs court, que pour les cal-culs de rfrence pour lesquels la seule limite est la patience de celui qui les fait. Par exemple, en fluidodynamique, enlaissant tourner une station de travail pendant quelques jours, les numriciens rsolvent des systmes frisant le milliarddinconnues. Lexprience montre quentre une approche numrique standard et une approche soigneusement rflchie7Introduction au calcul scientifique Jeudi 31 janvier 2013et optimise un gain de temps de calcul dun facteur 100, voire davantage, est souvent observ. Il est clair quon peut pas-ser ainsi, grce cet effort, dun calcul totalement draisonnable un calcul parfaitement banal : tout lenjeu de lanalysenumriques est l ! Cest dire limportance pour tous scientifique de bien connatre ces mthodes, leurs avantages et leurslimites.Exemple Calcul depASur ordinateur, laddition de deux entiers peut se faire de faon exacte mais non le calcul dune racine carre. On procde alors parapproximations successives jusqu converger vers la solution souhaite. Il existe pour cela divers algorithmes. Le suivant est connudepuis lantiquit (mais ce nest pas celui que les ordinateurs utilisent).Soit A un nombre rel positif dont on cherche la racine carre. Dsignons par x0 la premire estimation de cette racine (gnralementle plus grand entier dont le carr est infrieur A ; par exemple, si A = 178, alors x0 = 13 car 132 = 169< 178 et 142 = 196> 178) et par0 lerreur associe : pA = x0+0.Cherchons une approximation de 0. On aA = (x0+0)2 = x20 +2x00+20.Supposons que lerreur soit petite face x0, ce qui permet de ngliger le terme en 20 :A ' x20 +2x00.Remplaons lerreur 0 par un 0, qui en est une approximation, de telle sorte queA = x20 +2x00.On en dduit que0 =Ax202x0doncx1 = x0+0 =12(Ax0+x0)constitue une meilleure approximation de la racine que x0 (sous rserve que le dveloppement soit convergent). De plus, rien ne nousempche de recommencer les calculs avec x1, puis x2, etc., jusqu ce que la prcision de la machine ne permette plus de distinguerle rsultat final de la vritable solution. On peut donc dfinir une suite, qui partir dune estimation initiale x0 devrait en principeconverger vers la solution recherche. Cette suite estxk+1 =12(Axk+xk), x0 > 0.Lalgorithme du calcul de la racine carre devient donc1. Dmarrer avec une premire approximation x0 > 0 depA.2. chaque itration k, calculer la nouvelle approximation xk+1 = 12(Axk+xk).3. Calculer lerreur associe k+1 =Ax2k+12xk+1 .4. Tant que lerreur est suprieure un seuil fix, recommencer au point 2Le tableau ci-dessous illustre quelques itrations de cet algorithme pour le cas o A = 5 :k xk k0 2.0000000000 0.23606797751 2.2500000000 0.01393202252 2.2361111111 0.00004313363 2.2360679779 0.00000000044 2.2360679775 0.0000000000On voit que lalgorithme converge trs rapidement et permet donc destimer la racine carre dun nombre moyennant un nombre li-mit doprations lmentaires (additions, soustractions, divisions, multiplications). Il reste encore savoir si cet algorithme convergetoujours et dterminer la rapidit de sa convergence. Lanalyse numrique est une discipline proche des mathmatiques appliques,qui a pour objectif de rpondre ces questions de faon rigoureuse.Dans la plupart des domaines scientifiques, tout calcul passe par lexploitation de techniques de reprsentation desfonctions et des algorithmes de localisation de zros, de recherche dlments propres de matrices, de calcul dintgrales,de rsolution dquations diffrentielles, aux drives partielles et/ou intgrales. . . Une partie de ces diffrents problmesest trait dans ce polycopi ; noter la prsence dexercices corrigs en fin de chaque chapitre permettant de vrifier ou deconsolider lassimilation des notions introduites.8 G. Faccanoni1. Rsolution dquations non linairesRecherche de la solution de lquation non linaire f (x)= 0 o f est une fonction donneSoit f : RR une fonction continue donne dont on veut chercher numriquement un ou plusieurs zros x, cest--diref (x)= 0. Les mthodes numriques pour approcher x consistent : localiser grossirement le (ou les) zro(s) de f en procdant des valuation qui sont souvent de type graphique ; onnote x0 cette solution grossire ; construire, partir de x0, une suite x1, x2, x3, . . . telle que limk xk = x o f (x)= 0. On dit alors que la mthode estconvergente.Dfinition Mthode itrative deux niveauxOn appelle mthode itrative deux niveaux un procd de calcul de la formexk+1 =G(xk ), k = 0,1,2, . . .dans lequel on part dune valeur donne x0 pour calculer x1, puis laide de x1 on calcul x2 etc. La formule mme estdite formule de rcurrence. Le procd est appel convergent si xk tend vers un nombre fini lorsque k tend vers +. Ilest bien vident quune mthode itrative nest utile que sil y a convergence vers les valeurs cherches.On peut parfaitement envisager des mthodes itratives multiniveaux, comme par exemples les schmas trois niveauxdans lesquels on part de deux valeurs donnes x0 et x1 pour calculer x2, puis laide de x1 et x2 on calcule x3 etc.Dfinition Ordre de convergenceSoit p un entier positif. On dit quune mthode ( deux niveaux) convergente est dordre p sil existe une constante Ctelle que|xxk+1| C |xxk |p .Si p = 1 (et C < 1) on parle de convergence linaire, si p = 2 on parle de convergence quadratique.1.1. tape : localisation des zrosPour localiser grossirement le (ou les) zro(s) de f on va faire dabord une tude de la fonction f , puis on va utiliser lesthormes suivants afin de trouver un intervalle qui contient un et un seul zro.Thorme Thorme des valeurs intermdiairesFormulation 1 Limage dun intervalle de R par une fonction continue est un intervalle de R.Formulation 2 Soit f une fonction continue sur un intervalle I = [a;b] de R. Alors f atteint toutes les valeurs interm-diaires entre f (a) et f (b). Autrement dit :? si f (a) f (b) alors pour tout d [ f (a), f (b)] il existe c [a;b] tel que f (c)= d ;? si f (a) f (b) alors pour tout d [ f (b), f (a)] il existe c [a;b] tel que f (c)= d .Ce thorme donne alors le corollaire immdiat suivant.Corollaire Thorme de BOLZANO ou des zros dune fonction continueSoit une fonction continue f : [a,b]R, si f (a) f (b)< 0, alors il existe (au moins un) x ]a,b[ tel que f (x)= 0.Ce thorme garantit juste lexistence dun zro. Pour lunicit on essayera dappliquer le thorme de la bijection dontlnonc est rappel ci-dessous.Thorme Thorme de la bijectionSoit f une fonction continue et strictement monotone sur un intervalle I de R, alors f induit une bijection de I dansf (I ). De plus, sa bijection rciproque est continue sur I , monotone sur I et de mme sens de variation que f .91. Rsolution dquations non linaires Jeudi 31 janvier 20131.2. tape : construction dune suite convergenteAyant encadr les zros de f , la construction de suites qui convergent vers ces zros peut se faire laide de plusieursmthodes numriques. Ci-dessous on dcrit les mthodes les plus connues et on tudie leurs proprits (convergencelocale vs globale, vitesse de convergence, etc.).1.2.1. Mthodes de dichotomie (ou bissection), de Lagrange (ou Regula falsi) et de lascanteDans les mthodes de dichotomie et de LAGRANGE, chaque pas ditration on divise en deux un intervalle donn et onchoisit le sous-intervalle o f change de signe. Concrtement, soit une fonction numrique strictement monotone sur unintervalle [a,b]. On suppose que lquation f (x)= 0 na quune et une seule solution dans cet intervalle. On se propose dedterminer cette valeur avec une prcision donne. Soit [a0,b0] un intervalle dans lequel f (a0) f (b0)< 0 et soit c0 ]a0,b0[.Si f (a0) f (c0) < 0, alors la racine appartient lintervalle [a0,c0] et on reprend le procd avec a1 = a0 et b1 = c0. Sinon,cest--dire si f (a0) f (c0) > 0 on pose a1 = c0 et b1 = b0. On construit ainsi une suite dintervalles embots [ak ,bk ]. Lessuites ak et bk sont adjacentes et convergent vers x.Dfinition Mthodes de dichotomie et de LAGRANGESoit deux points a0 et b0 (avec a0 < b0) dimages par f de signe contraire (i.e. f (a0) f (b0)< 0). En partant de I0 = [a0,b0],les mthodes de dichotomie et de LAGRANGE (appele aussi Regula falsi) produisent une suite de sous-intervalles Ik =[ak ,bk ], k 0, avec Ik Ik1 pour k 1 et tels que f (ak ) f (bk )< 0.? Dans la mthode de dichotomie, on dcoupe lintervalle [ak ;bk ] en deux intervalles de mme longueur, i.e. on divise[ak ;bk ] en [ak ;ck ] et [ck ;bk ] o ck estck =ak +bk2.? Dans la mthode de Lagrange, plutt que de diviser lintervalle [ak ;bk ] en deux intervalles de mme longueur, ondcoupe [ak ;bk ] en [ak ;ck ] et [ck ;bk ] o ck est labscisse du point dintersection de la droite passant par (ak , f (ak ))et (bk , f (bk )) et laxe des abscisses, i.e. est solution de lquationf (bk ) f (ak )bk ak(cak )+ f (ak )= 0qui estck = ak bk akf (bk ) f (ak )f (ak )=ak f (bk )bk f (ak )f (bk ) f (ak ).Dans les deux cas, pour litration suivante, on pose soit [ak+1;bk+1]= [ak ;ck ] soit [ak+1;bk+1]= [ck ;bk ] de sorte ce quef (ak+1) f (bk+1)< 0. La suite (ck )kN converge vers x puisque la longueur de ces intervalles tend vers 0 quand k tend vers+. Les algorithmes scrivent alors comme suit :DICHOTOMIE :Require: a, b > a, , f : [a,b]Rk 0ak abk bxk ak +bk2while bk ak > or | f (xk )| > doif f (ak ) f (xk )< 0 thenak+1 akbk+1 xkelseak+1 xkbk+1 bkend ifxk+1 ak+1+bk+12k k+1end whileLAGRANGE :Require: a, b > a, , f : [a,b]Rk 0ak abk bxk ak bk akf (bk ) f (ak )f (ak )while bk ak > or | f (xk )| > doif f (ak ) f (xk )< 0 thenak+1 akbk+1 xkelseak+1 xkbk+1 bkend ifxk+1 ak+1bk+1ak+1f (bk+1) f (ak+1)f (ak+1)k k+1end while10 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesExempleSoit f (x)=3943x+39x25x3. On cherche a estimer x [1;5] tel que f (x)= 0.DICHOTOMIEf (x)=39+ (43+ (395x)x)xxy1f (1)=15f (5)= 23f (3)= 12f (2)=0.1875 2.5f (2.5)= 0.3984375I0 = [1;5]I1 = [1;3]I2 = [2;3]I3 = [2;2.5]LAGRANGEf (x)=39+ (43+ (395x)x)xxy1f (1)=15f (5)= 22.3f (2.3)= 0.197530824 2.11f (2.11)=0.06002I0 = [1;5]I1 = [1;2.3]I2 = [2.11;2.3]RemarqueAvec la mthode de la dichotomie, les itrations sachvent la m-me tape quand |xm x| |Im | < , o est unetolrance fixe et |Im | dsigne la longueur de lintervalle Im . Clairement Ik = ba2k , donc pour avoir une erreur |xm x| < ,on doit prendre le plus petit m qui vrifiem log2ba.Notons que cette ingalit est gnrale : elle ne dpend pas du choix de la fonction f .Exemple Fond dinvestissementLe client dune banque dpose au dbut dune anne v euros dans un fonds dinvestissement et en retire, la fin de la n-me anne,un capital de M > v euros. Nous voulons calculer le taux dintrt annuel moyen T de cet investissement.Le capital final M est reli aux taux dintrt annuel moyen T par la relationM = vnk=1(1+T )k = v (1+T )n 1(1+T )1 = v1+TT((1+T )n 1) .On en dduit que T est racine de lquation algbrique non linaire f (T )= 0 of (T )= v 1+TT((1+T )n 1)M .tudions la fonction f :? f (T )> 0 pour tout T > 0,? limT0+ f (T )= nv M < (n1)v , limT+ f (T )=+,? f (T )= vT 2(1+ (1+T )n (T n1))> 0 pour tout T > 0 (comparer le graphe de 1/(1+T )n et de nT 1) G. Faccanoni 111. Rsolution dquations non linaires Jeudi 31 janvier 2013En tudiant la fonction f on voit que, comme nv < M ds que n > 1, elle admet un unique zro dans lintervalle ]0,+[ (on peutmme prouver que elle admet un unique zro dans lintervalle ]0, M [).Supposons que v = 1000 et quaprs 5 ans M est gal 6000. En tudiant la fonction f on voit quelle admet un unique zrodans lintervalle ]0.01,0.1[. Si on applique la mthode de la dichotomie avec = 1012, aprs 36 itrations la mthode converge vers0.06140241153618. On conclut ainsi que le taux dintrt T est approximativement gal 6.14%.La mthode de dichotomie est simple mais elle ne garantit pas une rduction monotone de lerreur dune itration lautre : tout ce dont on est assur, cest que la longueur de lintervalle de recherche est divise par deux chaque tape. Parconsquent, si le seul critre darrt est le contrle de la longueur de Ik , on risque de rejeter de bonnes approximations dex. En fait, cette mthode ne prend pas suffisamment en compte le comportement rel de f . Il est par exemple frappant quela mthode ne converge pas en une seule itration quand f est linaire ( moins que le zro x ne soit le milieu de lintervallede recherche initial).Dfinition Mthode de la ScanteIl sagit dune mthode trois niveaux : approcher les zros de f se ramne calculer la limite de la la suite rcurrentex0 donn,x1 donn,xk+1 = xk xk xk1f (xk ) f (xk1)f (xk ),Cette mthode a ordre 1+p52 .Remarque Interprtation gomtrique de la mthode de la scanteSoit f : RR une fonction continue et soit x [a,b] un zro de f . Pour calculer xk+1 on prend lintersection de laxe desabscisses avec la droite passant par les points (xk , f (xk )) et (xk1, f (xk1)), i.e. on cherche x solution du systme linaire{y = f (xk ) f (xk1)xkxk1 (xxk )+ f (xk ),y = 0,ce qui donnex = xk xk xk1f (xk ) f (xk1)f (xk ).On reconnat la mthode de la scante.1.2.2. Mthodes de point fixeEn samusant avec une calculatrice de poche ou avec le code python ci-dessous1 import math2 x = 13 for i in range (1,100):4 x = math.cos(x)5 print x_, i, =, xon peut vrifier quen partant de la valeur 1 et en appuyant plusieurs fois de suite sur la touche cosinus, on obtient cettesuite de valeurs :x0 = 1,x1 = cos(x0)= 0.540302305868,x2 = cos(x1)= 0.857553215846,x3 = cos(x2)= 0.654289790498,...x55 = 0.739085133171,...x100 = 0.739085133215qui tend vers la valeur 0.73908513. . . . En effet, on a par construction xk+1 = cos(xk ) pour k = 0,1, . . . (avec x0 = 1). Si cettesuite converge, sa limite ` satisfait lquation cos(`)= `. Pour cette raison, ` est appel point fixe de la fonction cosinus.12 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesfyxaabbx0x1x1x2x2x3x3x4x4x5x5x6([a;b]) [a;b]0(x)< 1convergencefyxaabbx0x1x1x2x2x3x3x4x4x5x5x6x6x7([a;b]) [a;b]1 doxk+1 (xk )k k+1end whileNaturellement toute mthode de point fixe nest pas forcement convergente. Par contre, si elle converge, cest--dire si lasuite xk a une limite que nous notons x, et si est continue, alors cette limite est ncessairement un point fixe de puisquex = limkxk+1 = limk(xk )=(limkxk)=(x).On a le rsultat suivant :Thorme Convergence (globale) des itrations de point fixeConsidrons une fonction : [a;b] R. On se donne x0 [a;b] et on considre la suite xk+1 = (xk ) pour k 0. Si lesdeux conditions suivantes sont satisfaites :condition de stabilit : (x) [a,b] pour tout x [a,b]condition de contraction stricte : il existe K < 1 tel que |(x)(y)| K |x y | pour tout x, y [a,b]alors est continue, a un et un seul point fixe x dans [a,b] et la suite xk+1 =(xk ) converge vers x pour tout choix de x0dans [a,b].Dmonstration. G. Faccanoni 131. Rsolution dquations non linaires Jeudi 31 janvier 2013Continuit La condition de contraction stricte implique que est continue puisque, si on prend une suite (yk )k [a,b]qui converge vers un lment x de [a,b], alors nous avons |(x)(yn)| K |x yn | et par suite limk(yk )=(x).Existence Commenons par prouver lexistence dun point fixe de . La fonction g (x)=(x) x est continue dans [a,b]et, grce la condition de stabilit, on a g (a) = (a) a 0 et g (b) = (b)b 0. En appliquant le thorme desvaleurs intermdiaires, on en dduit que g a au moins un zro dans [a,b], i.e. a au moins un point fixe dans [a,b].Unicit Lunicit du point fixe dcoule de la condition de contraction stricte. En effet, si on avait deux points fixes distinctsx1 et x2, alors|x1 x2| = |(x1)(x2)| K |x1 x2| < |x1 x2|ce qui est impossible.Convergence Prouvons prsent que la suite xk converge vers lunique point fixe x quand k tend vers + pour toutedonne initiale x0 [a;b]. On a0 |xk+1 x| = |(xk )(x)| K |xk x|o K < 1 est la constante de contraction. En itrant k+1 fois cette relation on obtient|xk+1 x| K k+1|x0 x|,i.e., pour tout k 0|xk+1 x||x0 x|K k+1.En passant la limite quand k tend vers + on obtient |xk+1 x| tend vers zro.RemarqueSi est de classe C 1([a,b]) et si |(x)| < 1 pour tout x [a,b], alors la condition de contraction stricte est satisfaite. Deplus, on alimkxk+1 xxk x=(x).Ce thorme assure la convergence, avec un ordre 1, de la suite (xk )kN vers le point fixe x pour tout choix dune valeurinitiale x0 [a;b]. Il constitue donc un exemple de rsultat de convergence globale. Mais en pratique, il est souvent difficilede dterminer a priori lintervalle [a;b] ; dans ce cas, le rsultat de convergence locale suivant peut tre utile.Thorme dOSTROWSKI ou de convergence (locale) des itrations de point fixeSoit x un point fixe dune fonction continue et diffrentiable dans un intervalle [a;b] contenant x. Si |(x)| < 1, alorsil existe un intervalle [c;d ] [a;b] tel que la suite (xk )k converge vers x pour tout x0 [c;d ]. De plus,? si 0 1 la suite diverge de faon monotone, tandis que pour(x)Jeudi 31 janvier 2013 1. Rsolution dquations non linairesEn gnral, la mthode de point fixe ne converge pas pour des valeurs arbitraires de x0, mais seulement pour des valeurssuffisamment proches de x, cest--dire appartenant un certain voisinage de x. Au premier abord, cette condition sembleinutilisable : elle signifie en effet que pour calculer x (qui est inconnu), on devrait partir dune valeur assez proche de x !En pratique, on peut obtenir une valeur initiale x0 en effectuant quelques itrations de la mthode de dichotomie ou enexaminant le graphe de f . Si x0 est convenablement choisi alors la mthode de point fixe converge.Proposition Calcul de lordre de convergence dune mthode de point fixeSoit x un point fixe dune fonction C p+1 pour un entier p 1 dans un intervalle [a;b] contenant x. Si(i )(x)= 0 pour1 i p et (p+1)(x) 6= 0, alors la mthode de point fixe associe la fonction ditration est dordre p+1.Mthodes de point fixe particulirement connuesSoit f : [a,b] R une fonction continue (continment drivable pour la mthode de la corde 2 et la mthode de NEW-TON) et soit x un zro de f . Supposons que lon connaisse une valeur x0 proche de x. Approcher les zros de f se ramneau problme de la dtermination des points fixes de la fonction , ce qui se fait en construisant la suite rcurrente{xk+1 =(xk ),x0 donn.Considrons les fonctions suivantes qui dfinissent des mthodes clbres :Mthode de la Corde 1 : (xk )= xk baf (b) f (a) f (xk ) ordre : 1Mthode de la Corde 2 : (xk )= xk f (xk )f (x0)ordre : 1Mthode de Newton : (xk )= xk f (xk )f (xk )ordre :{2 si x est une racine simple1 sinonPreuve de lordre de convergence de la mthode de NewtonSoit la mthode de Newton pour le calcul de ` zro de f . Cette mthode peut tre mise sous la forme dune itration depoint fixe un+1 =(un) en posant(x)= x f (x)f (x).? Si f (`) 6= 0 (i.e. si ` est racine simple), on trouve(x)= 1 ( f(x))2 f (x) f (x)( f (x))2= f (x) f(x)( f (x))2, (`)= 0,(x)= f(x)f (x)+ f (x) f(x)( f (x))22 f (x)( f(x))2( f (x))3, (`)= f(`)f (`).La mthode de Newton est donc dordre 2.? Si la racine ` est de multiplicit m > 1, alors la mthode nest plus du second ordre. En effet, f (x)= (x`)mh(x) o hest une fonction telle que h(`) 6= 0. On a alors(x)= 1 f (x)f (x)= 1 (x`)h(x)mh(x)+ (x`)h(x) ,(x)= h(x)(m(m1)h(x)+2(x`)h(x)+ (x`)2h(x))(mh(x)+ (x`)h(x))2 , (`)= 1 1m .Si la valeur de m est connue a priori, on peut retrouver la convergence quadratique en modifiant la mthode de New-ton comme suit :(x)= xm f (x)f (x).Remarque Interprtation gomtrique de la mthode de NEWTON et des mthodes de la cordeSoit f : RR une fonction continment drivable et soit x un zro simple de f , cest--dire f (x)= 0 et f (x) 6= 0. Suppo-sons que lon connaisse une valeur xk proche de x. Pour calculer xk+1 on prend lintersection de laxe des abscisses avec G. Faccanoni 151. Rsolution dquations non linaires Jeudi 31 janvier 2013la droite tangente au graphe de f passant par le point (xk , f (xk )), i.e. on cherche x solution du systme linaire{y = f (xk )(xxk )+ f (xk ),y = 0.On obtientx = xk f (xk )f (xk )ce qui correspond la mthode de NEWTON.xyfy = f (x0)(xx0)+ f (x0)y = f (x1)(xx1)+ f (x1)xx0x1x2Soit f : RR une fonction continue et soit x [a,b] un zro de f . Cette fois-ci, pour calculer xk+1 on prend lintersectionde laxe des abscisses avec la droite passant par le point (xk , f (xk )) et parallle la droite passant par les points (a, f (a))et (b, f (b)), i.e. on cherche x solution du systme linaire{y = f (b) f (a)ba (xxk )+ f (xk ),y = 0,ce qui donnex = xk baf (b) f (a) f (xk ).Il sagit de la mthode de la corde 1. Cette mthode permet dviter qu chaque itration on ait valuer f (xk ) car onremplace f (xk ) parf (b) f (a)ba .xyfa by = f (b) f (a)ba (xx0)+ f (x0)y = f (b) f (a)ba (xx1)+ f (x1)xx0x1x216 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesUne variante de la mthode de la corde consiste calculer xk+1 comme lintersection entre laxe des abscisses et la droitepassant par le point (xk , f (xk )) et parallle la droite tangente au graphe de f passant par le point (x0, f (x0)), i.e. oncherche x solution du systme linaire {y = f (x0)(xxk )+ f (xk ),y = 0,ce qui donnex = xk f (xk )f (x0)Dans cette variante on remplace f (xk ) par f (x0).xyfy = f (x0)(xx0)+ f (x0)y = f (x0)(xx1)+ f (x1)xx0x1x2ExempleOn se trouve en possession dune calculatrice qui ne sait effectuer que les oprations addition, soustraction et multiplication. Lorsquea > 0 est donn, on veut calculer sa valeur rciproque 1/a. Le problme peut tre ramen rsoudre lquation x = 1/a ce qui quivaut chercher le zro de la fonctionf : R+ Rx 7 1xaSelon la formule de NEWTON on axk+1 = (1+a)xk +x2k ,une rcurrence qui ne requiert pas de divisions. Pour a = 7 et partant de x0 = 0.2 par exemple, on trouve x1 = 0,12, x2 = 0,1392,x3 =0,1427635200, x4 = 0,1428570815, etc. Cette suite converge vers 1/7' 0,142857142857.Exemple Comparaison des mthodes de Newton pour diffrentes formulation de la fonction initialeDans R+ on veut rsoudre lquationx = e1/x . (1.1)En transformant lquation donne de diffrentes manires, on arrive diffrentes formules de rcurrence :1. Lquation (1.1) quivaut chercher le zro de la fonctionf : R+Rx 7 xe1/xEn utilisant la mthode de Newton on trouve la formule itrativexk+1 = xk f (xk )f (xk )= xk xk e1/xk1+ e1/xkx2k= xk x2kxk e1/xkx2k +e1/xk.2. Si on pose y = 1/x, alors on a lquivalencex = e1/x y = ey , G. Faccanoni 171. Rsolution dquations non linaires Jeudi 31 janvier 2013donc la solution x de lquation (1.1) est la rciproque du zro de la fonctiong : R+Ry 7 1 ye yEn utilisant la mthode de Newton on trouve la formule itrativeyk+1 = yk g (yk )g (yk )= yk 1 yk e yk(1+ yk )e yk= yk +eyk yk1+ yket xk = 1/yk .3. Lquation (1.1) est encore quivalente chercher le zro de la fonctionh : R+Rx 7 1x ln(x)En utilisant la mthode de Newton on trouve la formule itrativexk+1 = xk h(xk )h(xk )= xk +1xk ln(xk )1+ ln(xk )= 1+xk1+ ln(xk ).La reprsentation graphique de f montre quil nexiste quune seule racine. Comme f (1.7) f (1.9) < 0, elle se trouve dans lintervalle[1.7;1.9]. En partant de x0 = 1.8 on trouve les suites suivantes :Formule 1 Formule 2 Formule 3x1 = 1,7628781412 1.7418849724 1.7634610883x2 = 1.7632228030 1.7751466845 1.7632228446x3 = 1.7632228344 1.7564077294 1.7632228344La solution est x ' 1,76322283435.Attention noter que mme si la mthode de NEWTON permet en gnral dobtenir une convergence quadratique, un mauvaischoix de la valeur initiale peut provoquer la divergence de cette mthode (notamment si la courbe reprsentative de fprsente au point dabscisse x0 un tangente peu prs horizontale). Do limportance dune tude pralable soigne dela fonction f (cette tude est dailleurs ncessaire pour toute mthode de point fixe).Critres darrtSupposons que (xn)n soit une suite qui converge vers x zro de la fonction f . Nous avons le choix entre deux types decritres darrt pour interrompre le processus itratif dapproximation de x : ceux bass sur le rsidu et ceux bass surlincrment. Nous dsignerons par une tolrance fixe pour le calcul approch de x et par en = x xn lerreur absolue.Nous supposerons de plus f continment diffrentiable dans un voisinage de la racine.Contrle du rsidu : les itrations sachvent ds que | f (xn)| < . Il y a des situations pour lesquelles ce testsavre trop restrictif ou, au contraire, trop optimiste.? si | f (x)| ' 1 alors |en | ' : le test donne donc une indication satisfaisante de lerreur ;? si | f (x)| 1, le test nest pas bien adapt car |en | peut tre assez grand par rapport ;? si enfin | f (x)| 1 alors |en | et le test est trop restrictif.Dans lexemple prcdent f (x)= 2p2 1 : le test est trop restrictif (comparer la colonne | f (xn)| la colonne |xxn |).Contrle de lincrment : les itrations sachvent ds que |xn+1xn | < . Soit (xn)n la suite produite par la m-thode de point fixe xn+1 = (xn). Comme x = (x) et xn+1 = (xn), on obtient par un dveloppement au premierordreen+1 = xxn+1 =(x)(xn)=(n)(xxn)=(n)en , n I x,xnI x,xn tant lintervalle dextrmits x et xk . En utilisant lidentiten = (xxn+1)+ (xn+1xn)= en+1+ (xn+1xn)=(n)en + (xn+1xn),on en dduit queen = xn+1xn1(n).Par consquent, ce critre fournit un estimateur derreur satisfaisant si (x) ' 0 dans un voisinage de x. Cest lecas notamment des mthodes dordre 2, dont la mthode de Newton. Cette estimation devient dautant moinsbonne que sapproche de 1.18 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesxyff (xk )xkekxxyff (xk )xkekxFIGURE 1.2.: Deux situations pour lesquelles le rsidu ek = xk x est un mauvais estimateur derreur : | f (x)| >> 1 (gauche), | f (x)| 1. Rsolution dquations non linaires Jeudi 31 janvier 2013TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTdichotomie, lagrange, newton et point_fix sont quatre fonctions (informatiques) qui renvoient la valeur approchedu zro dune fonction (mathmatique) f . En paramtre elles reoivent f, la fonction dont on cherche la racine, a et b sontles extrmits de lintervalle de recherche pour les mthodes de dichotomie et de LAGRANGE, x_init est la donne initialepour les mthodes de NEWTON et de point fixe, maxITER est le nombre maximal ditrations et tol est la tolrance. EllesrenvoientMthodes numriques.1 #!/usr/bin/python2 #-*- coding: Utf-8 -*-34 import math, sys56 def dichotomie(f,a,b,tol,maxITER):7 fa = f(a)8 if abs(fa)tol)) and (kJeudi 31 janvier 2013 1. Rsolution dquations non linaires57 x = x_init58 fx = f(x)59 h = tol60 dfx = (f(x+h)-fx)/h # calcul approche de f(x)61 while ( (abs(fx)>tol) and (ktol) and (k1. Rsolution dquations non linaires Jeudi 31 janvier 2013115 x_init = 0.116 print "E) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)117 print "F) Zero calcule par la methode de point fix a partir du point x_0 =",x_init," : ", point_fix(phi,x_init,tol,maxITER)118119 x_init = 1.120 print "G) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)121 print "H) Zero calcule par la methode de point fix a partir du point x_0 =",x_init," : ", point_fix(phi,x_init,tol,maxITER)122123124 # Dans python il existe un module qui implement deja ces methodes, comparons nos resultats avec ceux dumodule:125 from scipy.optimize import fsolve126 x_init = 0.127 print "** Zero calcule par le module scipy.optimize a partir du point x_0 =",x_init," : ", fsolve(f,x_init)128 x_init = 1.129 print "** Zero calcule par le module scipy.optimize a partir du point x_0 =",x_init," : ", fsolve(f,x_init)22 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linaires.............. Exercices .............Exercice 1.1Dcrire les mthodes de la dichotomie et de LAGRANGE et les utiliser pour calculer le zro de la fonctionf (x)= x34x8.95dans lintervalle [2;3] avec une prcision de 102.CORRECTION. En partant de I0 = [a,b], les mthodes de la dichotomie et de LAGRANGE produisent une suite de sous-intervalles Ik = [ak ,bk ], k 0, avec Ik Ik1, k 1, et tels que f (ak ) f (bk )< 0. Dans notre cas on ak 0ak 2bk 3while |bk ak | > 0.01 doxk g (ak ,bk )k k+1if (a3k 4ak 8.95)(x3k 4xk 8.95)< 0 thenak+1 akbk+1 xkelseak+1 xkbk+1 bkend ifend whileavecg (ak ,bk )={ ak+bk2 pour la mthode de la dichotomie,ak f (bk )bk f (ak )f (bk ) f (ak ) pour la mthode de la LAGRANGE.Dichotomiek ak xk bk signe de f (ak ) signe de f (xk ) signe de f (bk )0 2.000000 2.5000000 3.00000 +1 2.500000 2.7500000 3.00000 + +2 2.500000 2.6250000 2.75000 +3 2.625000 2.6875000 2.75000 +4 2.687500 2.7187500 2.75000 + +5 2.687500 2.7031250 2.71875 +6 2.703125 2.7109375 2.71875 + +LAGRANGEk ak xk bk signe de f (ak ) signe de f (xk ) signe de f (bk )0 2.000000 2.596666667 3.00000 +1 2.596666667 2.690262642 3.00000 +2 2.690262642 2.702092263 3.00000 +3 2.702092263 2.703541518 3.00000 +4 2.703541518 2.703718378 3.00000 +5 2.703718378 2.703739951 3.00000 +6 2.703739951 2.703742582 3.00000 +Exercice 1.2Dterminer la suite des premiers 3 itrs des mthodes de dichotomie dans lintervalle [1,3] et de Newton avec x0 = 2pour lapproximation du zro de la fonction f (x) = x22. Combien de pas de dichotomie doit-on effectuer pour am-liorer dun ordre de grandeur la prcision de lapproximation de la racine ?CORRECTION. On cherche les zros de la fonction f (x)= x22 :? Mthode de la dichotomie : en partant de I0 = [a,b], la mthode de la dichotomie produit une suite de sous-intervallesIk = [ak ,bk ] avec Ik+1 Ik et tels que f (ak ) f (bk )< 0. Plus prcisment? on pose a0 = a, b0 = b, x0 = a0+b02 , G. Faccanoni 231. Rsolution dquations non linaires Jeudi 31 janvier 2013f (x)xy113722321454 716I0I1I2I3I4(a) Mthode de la dichotomie.f (x)xy2321712(b) Mthode de Newton.FIGURE 1.3.: Approximation du zro de la fonction f (x)= x22.? pour k 0? si f (ak ) f (xk )< 0 on pose ak+1 = ak , bk+1 = xk sinon on pose ak+1 = xk , bk+1 = bk? et on pose xk+1 = ak+1+bk+12 .Voir la figure 1.3a.? Mthode de Newton :xk+1 = xk f (xk )f (xk )= xk x2k 22xk= 12xk +1xk.Voir la figure 1.3b.Donc on a le tableau suivantx0 x1 x2 x3Dichotomie 2 32 = 1,5 54 = 1,25 118 = 1,375Newton 2 32 = 1,5 1712 = 1,416 1724 + 1217 ' 1,4142156On rappelle quavec la mthode de la dichotomie, les itration sachvent la m-me tape quand |xm x| |Im | < , o est une tolrance fixe et |Im | dsigne la longueur de lintervalle Im . Clairement Ik = ba2k , donc pour avoir |xm x| < ondoit prendrem log2ba.Amliorer dun ordre de grandeur la prcision de lapproximation de la racine signifie avoir|xk x| =|x j x|10donc on doit effectuer k j = log2(10)' 3,3 itrations de dichotomie.Exercice 1.31. Donner la suite dfinissant la mthode de Newton pour la recherche dun zro de fonction. Justifier lexpressionde la suite.2. crire lalgorithme pour une convergence 106 prs.3. Dterminer lordre de convergence minimale de cette suite.24 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesCORRECTION.1. Supposons f C 1 et f (x) 6= 0 (cest--dire x est une racine simple de f ). La mthode de Newton revient calculer lezro de f en remplaant localement f par sa tangente : en partant de lquation de la tangente la courbe (x, f (x))au point xky(x)= f (xk )+ f (x)(xxk )et en faisant comme si xk+1 vrifiait y(xk+1)= 0, on obtientxk+1 = xk f (xk )f (xk ).tant donn une valeur initiale x(0), cette formule permet de construire une suite xk .2. Algorithmes pour une convergence = 106 :Require: x0, x 7 f (x)while |xk+1xk | > 106 doxk+1 xk f (xk )f (xk )end while3. La relation prcdent peut tre mise sous la forme dune itration de point fixe xk+1 = g (xk ) avecg (x)= x f (x)f (x).Si x est racine simple, cest--dire si f (x) 6= 0, on trouve g (x) = 0 et g (x) = f (x)f (x) : la mthode de Newton est doncdordre 2. Si la racine x est de multiplicit m > 1, alors g (x) = 1 1m et la mthode nest que dordre 1. Si la valeurde m est connue priori, on peut retrouver la convergence quadratique de la mthode de Newton en modifiant lamthode comme suit :xk+1 = xk mf (xk )f (xk ).Exercice 1.4On veut calculer le zro de la fonctionf (x)= x22dans lintervalle [0;2].1. On applique la mthode de LAGRANGE : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera auplus petit k qui vrifie | f (xk )| < 104).k ak xk bk signe de f (ak ) f (xk ) signe de f (bk ) |xk p2|0 0.00000 1.00000 2.00000 -1.00000 + 0.414211...2. On applique la mthode de NEWTON : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera au pluspetit k qui vrifie | f (xk )| < 104). Le point de dpart x0 est donn.k xk f (xk ) |xk p2|0 1.000001...CORRECTION.1. En partant de I0 = [a,b], la mthode de LAGRANGE produit une suite de sous-intervalles Ik = [ak ,bk ], k 0, avecIk Ik1, k 1, et tels que f (ak ) f (bk )< 0. Dans notre cas on ak 0ak 0bk 2xk akwhile |x2k 2| > 0.0001 doxk ak bk+2ak+bkif (a2k 2)(x2k 2)< 0 thenak+1 ak G. Faccanoni 251. Rsolution dquations non linaires Jeudi 31 janvier 2013bk+1 xkelseak+1 xkbk+1 bkend ifk k+1end whilek ak xk bk signe de f (ak ) | f (xk )| signe de f (bk ) |xk p2|0 0.00000 1.00000 2.00000 |-1.00000|>0.0001 + 0.414211 1.00000 1.33333 2.00000 |-0.22222|>0.0001 + 0.080882 1.33333 1.40000 2.00000 |-0.04000|>0.0001 + 0.014213 1.40000 1.41176 2.00000 |-0.00692|>0.0001 + 0.002454 1.41176 1.41379 2.00000 |-0.00119|>0.0001 + 0.000425 1.41379 1.41414 2.00000 |-0.00020|>0.0001 + 0.000076 1.41414 1.41420 2.00000 |-0.00004| 104 doxk+1 xk2 + 1xkk k+1end whilek xk | f (xk )| |xk p2|0 1.00000 |-1.00000|>0.0001 0.414211 1.50000 |0.25000|>0.0001 0.085792 1.41667 |0.00695|>0.0001 0.002463 1.41422 |0.00002|Jeudi 31 janvier 2013 1. Rsolution dquations non linaires? si |i (`)| = 1, on ne peut en gnral tirer aucune conclusion : selon le problme considr, il peut y avoir convergenceou divergence.? Enfin, si ( j )i (`)= 0 pour 1 j p et (p+1)i (`) 6= 0, alors la mthode de point fixe associe la fonction ditration iest dordre p+1.Calculons donc i (`) pour i = 1,2,3,4 :1. 1(x)=3x2+2x7 et 1(1)=8 : la suite diverge en oscillant (colonne C) ;2. 2(x)= 3x3(8x)+(8x3)(8x)2 et 2(1)= 1449 : la suite converge de faon oscillante (colonne D) ;3. 3(x)= 310 x2+15x+ 15et 3(1)= 410 : la suite converge de faon monotone (colonne A ou B) ;4. 4(x)= (6x22x)(3x22x+8)(2x3x2+8)(6x2)(3x22x+8)2 et 4(1)= 0 : la suite converge lordre au moins 2 (colonne B).Exercice 1.6Entre deux murs (verticaux) parallles, on place deux chelles en les croisant. La premire fait 3m de long, la seconde2m. On constate quelles se croisent une hauteur de 1m. Quelle est la distance entre les deux murs ?CORRECTION. Avec un peu de trigonomtrie, on obtient une mise en quation de cette distance d sous la forme : d =2sin()= 3sin() et 12cos() + 13cos() = 1. Il reste rsoudre 1p4d 2 +1p9d 2 = 1.Exercice 1.7Soit la fonction f(x) = cosh(x)+ cos(x). Pour = 1,2,3 trouver (graphiquement) un intervalle qui contient le zrode f. Calculer ce dernier par la mthode de dichotomie avec une tolrance de 1010. Utiliser ensuite la mthode deNewton. Pourquoi cette mthode nest-elle pas prcise quand = 2 ?CORRECTION.tude de f. On se rappelle que cosh(x)= ex+ex2 et sinh(x)= exex2 donc? limx f(x)=+? f (x)= sinh(x) sin(x) et f (x)= 0 si et seulement si x = 0 (comparer les graphes de sinh et sin et se rappeler quepour x > 0 on a sinh(x)> x > sin(x) et pour x < 0 on a sinh(x)< x < sin(x))? f (x)= cosh(x)cos(x)> 0 pour tout x 6= 0.par consquent? pour = 1, la fonction na pas de zro rel,? pour = 2 il ny a que le zro x = 0 et il est de multiplicit quatre (cest--dire f2(x)= f 2a(x)= f 2 (x)= f 2 (x)= 0 etf (IV )2 (x) 6= 0),? pour = 3, f3 admet deux zros distincts, un dans lintervalle ]3,1[ et lautre dans ]1,3[.xyy = f1(x)y = f2(x)y = f3(x)Mthode de la dichotomie. Dans le cas = 2, la mthode de dichotomie ne peut pas tre utilise car il est impossiblede trouver un intervalle ]a,b[ sur lequel f2(a) f2(b) < 0. Pour = 3, en partant de [a,b] = [3,1], la mthode dedichotomie converge en 34 itrations vers la valeur x = 1.85792082914850 avec f3(x) ' 3.61012. De mme, enprenant [a,b]= [1,3], la mthode de dichotomie converge en 34 itrations vers la valeur x = 1.85792082914850 avecf3(x)'3.68771012.Mthode de Newton. Considrons le cas o = 2. En partant de la donne initiale x0 = 1, la mthode de NEWTONconverge vers la valeur x = 1.4961104 en 31 itrations avec = 1010 tandis que la racine exacte de f2 est 0. Cetcart est d au fait que f2 est quasiment constante au voisinage de sa racine, donc le problme de recherche du zroest mal conditionn. La mthode converge vers la mme solution et avec le mme nombre ditrations mme si onprend gal au zro machine. Considrons le cas = 3. La mthode de Newton avec gal au zro machine convergevers 1.85792082915020 aprs 9 itrations en partant de x0 = 1, alors que si x0 = 1, elle converge aprs 9 itrationsvers 1.85792082915020. G. Faccanoni 271. Rsolution dquations non linaires Jeudi 31 janvier 2013Voici les instructions :130 def f(x):131 return math.cosh(x)+math.cos(x)-gamma132133 maxITER = 100134135 gamma = 3136 tol = 1.0e-15137 a = -3.138 b = -1.139 x_init = -1.140 print "Zero calcule par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,tol,maxITER)141 print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)142 a = 1.143 b = 3.144 x_init = 1.145 print "Zero calcule par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,tol,maxITER)146 print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)147148 gamma = 2149 tol = 1.0e-10150 x_init = -1.151 print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)152 x_init = 1.153 print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,maxITER)Exercice 1.8 quation dtat dun gazNous voulons dterminer le volume V occup par un gaz dont la temprature est T et dont la pression est p. Lquationdtat (i.e. lquation liant p, V et T ) selon le modle de VAN DER WAALS est donne par(p+a(NV)2)(V N b)= kN T,o a et b sont deux coefficients qui dpendent du gaz considr, N est le nombre de molcules contenues dans le volumeV et k est la constante de Boltzmann. Nous devons donc rsoudre une quation non linaire dont la racine est V .Pour le dioxyde de carbone CO2, les coefficients a et b dans prennent les valeurs suivantes : a = 0.401Pam3 etb = 42.7106 m3. Trouver le volume occup par 1000 molcules de CO2 la temprature T = 300K et la pres-sion p = 3.5107 Pa par la mthode de dichotomie, avec une tolrance de 1012 (la constante de Boltzmann vautk = 1.38065031023 JK1).CORRECTION. On doit calculer les zros de la fonction f (V )= pV +aN 2/V abN 3/V 2pN bkN T , o N est le nombrede molcules. On a? limV0+ f (V )= et limV+ f (V )=+? f (V )= paN 2/V 2+2abN 3/V 3 = p+aN 2(2bN /V 1)/V 2? f (V )= 0 si et seulement si paN 2V 3V =2bN donc pour aucun V > 0.En traant le graphe de f , on voit que cette fonction na quun zro simple dans lintervalle ]0.01,0.06[ avec f (0.01) < 0 etf (0.06)> 0. On peut calculer ce zro en utilisant la mthode de dichotomie comme suit :154 def f(V):155 a = 0.401156 b = 42.7e-6157 N = 1000.158 T = 300.159 p = 3.5e7160 k = 1.3806503e-23161 return p*V+a*N**2/V-a*b*N**3/V**2-p*N*b-k*N*T28 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linaires162163 tol = 1.0e-12164 left = 0.01165 right = 0.06166167 print "Zero calcule par la methode de dichotomie dans lintervalle [", left, ",", right,"] : ", dichotomie(f,left,right,tol,maxITER)ce qui donne V = 0.0426999999999m3.Exercice 1.9Soit A est un nombre positif donn et considrons lalgorithme suivant : tant donn une valeur x0, on calculexk+1 = xk +Ax2k2, k = 0,1,2, . . .1. Montrer que si la suite xk converge, alors sa limite est soitpA soit pA.2. On considre le cas o A ]0,4[. Montrer quil existe > 0 tel que, si |x0pA| alors la suite xk converge verspA.3. Vrifier graphiquement que si x0 est proche de pA mais diffrent de pA, alors la suite xk ne converge pas verspA.4. Vrifier que si x0 = 1, alors lalgorithme concide avec la mthode de la corde 2 pour rsoudre x2 A = 0.5. Proposer un algorithme plus efficace pour calculer la racine carre dun nombre positif A.CORRECTION.1. Supposons que xk converge vers `. En passant la limite dans la formule de rcurrence on obtient`= `+ A`22,cest--dire `2 = A et donc `=pA.2. La mthode peut scrire sous la forme dune mthode de point fixe o la fonction est dfinie par(x)= x+ Ax22.Si A ]0,4[ et `=pA, puisque (x)= 1 x, alors |(`)| = |1pA| < 1 : on peut appliquer le thorme dOSTROWSKIdonc il existe > 0 tel que, si |x0pA| alors la suite xk converge verspA.3. On a reprsent dans la figure ci-dessous le graphe de la fonction lorsque A = 1/2. Si on choisit x0 < pA alorsla suite diverge vers ; si pA < x0 2+pA alors la suite diverge vers .y = xyxpApApApA 2+pAx0x1x1x2x2 x3x3x4x4x54. Soit f la fonction dfinie par f (x)= x2 A. La mthode de la corde 2 pour rsoudre f (x)= 0 scrit dans ce casxk+1 = xk f (xk )f (x0)= xk x2k A2x0, k = 0,1,2, . . . . G. Faccanoni 291. Rsolution dquations non linaires Jeudi 31 janvier 2013Si on choisit x0 = 1, cette mthode scrit doncxk+1 = xk f (xk )f (x0)= xk x2k A2, k = 0,1,2, . . . .Ainsi on conclut que la mthode donne concide avec la mthode de la corde 2 pour rsoudre x2 A = 0 lorsquex0 = 1 comme point de dpart.5. Si on choisit la mthode de Newton pour rsoudre f (x)= 0 avec f (x)= x2 A, on axk+1 = xk f (xk )f (xk )= xk x2k A2xk, k = 0,1,2, . . . .Cette mthode est plus efficace que la prcdente car elle converge lordre 2 pour tout x0 > 0.Exercice 1.10Soit f : RR la fonction dfinie par f (x)= x32. On veut approcher le zro de f par la mthode de point fixe suivante :{x0 donn,xk+1 = g(xk ) pour tout k 0,(1.2)avec g : RR la fonction dfinie par g(x)= (1)x3+(1 3)x+2(1)+ 23x2, R.1. Pour quelles valeurs du paramtre la mthode de point fixe (1.2) est-elle consistante (i.e. est un point fixe deg) ?2. Pour quelles valeurs du paramtre la mthode de point fixe (1.2) est-elle dordre 2 ?3. Existe-t-il des valeurs du paramtre pour lesquelles la mthode de point fixe (1.2) est-elle dordre 3 ?CORRECTION. Comme est le zro de f , on a 3 = 2.1. La mthode de point fixe (1.2) est consistante pour tout R carg()= (1)3+(1 3)+2(1)+ 232= (1)(32)+(1 3)+ 232= 3+ 232= (32)32=.2. La mthode de point fixe (1.2) est au moins dordre 2 si g ()= 0. On ag ()= 3(1)2+13 433= 3(1)2+1= (1)(32+1)donc la mthode de point fixe (1.2) est au moins dordre 2 si = 1.3. Pour que la mthode de point fixe (1.2) soit dordre 3 il faudrait g ()= g ()= 0. Puisque g ()= 0 si et seulement si= 1 et g 1 ()= 44 6= 0, il nest pas possible davoir une convergence dordre suprieur 2.Exercice 1.11On considre le problme du calcul de ` [0,pi] tel que `= 1 14 cos(`).1. Montrer quon peut utiliser la mthode de la dichotomie pour approcher `. Que vaut lapproximation de ` aprs 3itrations ? Quel est lerreur maximale quon obtient aprs 3 itrations ?k 0 1 2 3[ak ,bk ] [0,pi]`kpi22. On considre la mthode de point fixe suivante :{x0 [0,pi],xk+1 = g (xk ) pour tout k 0,(1.3)avec g : [0,pi]R la fonction dfinie par g (x)= 1 14 cos(x).2.1. tudier graphiquement la convergence de cette mthode.2.2. Montrer rigoureusement que la mthode converge pour tout x0 [0,pi].2.3. Montrer que lerreur satisfait lingalit |xk `| C k |x0 `|. Donner une estimation de la constante C etlutiliser pour minorer le nombre ditrations ncessaires pour approcher ` 103 prs.30 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linaires2.4. Montrer que si on utilise le critre darrt |xk+1xk | alors |xk+1`| 1C . Quelle valeur de faut-il choisirpour approcher ` 103 prs ?CORRECTION.1. Soit f : [0,pi]R la fonction dfinie par f (x)= 1 14 cos(x)x. Elle est de classeC, f (0)= 3/4> 0 et f (pi)= 5/4pi `.gyxpipix0 x1x2 x0x1x254342.2. g ([0,pi])= [3/4,5/4] [0,pi] et |g (x)| 1/4< 1 : la mthode de point fixe converge vers ` pour tout x0 [0,pi].2.3. Pour tout k N il existe k compris entre ` et xk tel que |xk`| = |g (xk1)g (`)| |g (k )||xk1`| 14k |x0`| pi4k. Donc, pour approcher ` 103 prs, il faut prendre le plus petit k N qui vrifie k log4(103pi) 5.9, i.e.k = 6.2.4. Pour tout k N on a |xk `| |xk+1xk | |xk+1xk +xk `| = |xk+1`| C |xk `| avec C = 1/4 do|xk+1`| 11C |xk+1xk | 1C .Pour que lerreur soit infrieur 103 il faut alors choisir (1C )103.Exercice 1.12On considre le problme du calcul de ` [0,pi] tel que `= 1+ 12 sin(`).1. Montrer quon peut utiliser la mthode de la dichotomie pour approcher `. Que vaut lapproximation de ` aprs 3itrations ?2. On considre la mthode de point fixe suivante :{x0 [0,pi],xk+1 = g (xk ) pour tout k 0,(1.4)avec g : [0,pi]R la fonction dfinie par g (x)= 1+ 12 sin(x).2.1. tudier graphiquement la convergence de cette mthode.2.2. Montrer rigoureusement que la mthode converge pour tout x0 [0,pi].2.3. Montrer que lerreur satisfait lingalit |xk `| C k |x0 `|. Donner une estimation de la constante C etlutiliser pour minorer le nombre ditrations ncessaires pour approcher ` 103 prs.2.4. Montrer que si on utilise le critre darrt |xk+1xk | alors |xk+1`| 1C . Quelle valeur de faut-il choisirpour approcher ` 103 prs ? (Rappel : |a c| |cb| |ab| |a c|+ |cb| pour tout a,b,c R)CORRECTION.1. Soit f : [0,pi]R la fonction dfinie par f (x)= 1+ 12 sin(x)x. Elle est de classeC, f (0)= 1> 0 et f (pi)= 1pi< 0, lethorme des valeurs intermdiaires permet de conclure quil existe au moins un ` [0,pi] tel que f (`)= 0. De plus,comme f (x)= 12 cos(x)1< 0, ce zro est unique. On peut alors utiliser la mthode de la dichotomie pour approcher` et lon a G. Faccanoni 311. Rsolution dquations non linaires Jeudi 31 janvier 2013k 0 1 2 3[ak ,bk ] [0,pi][0, pi2] [pi4 ,pi2] [ 3pi8 ,pi2]`kpi2pi43pi87pi162. On considre la mthode de point fixe de fonction ditration g .2.1. tude graphique de la convergence :g est de classe C, g (0) = g (pi) = 1, g (x) = 12 cos(x) [1/2,1/2], g est croissante sur [0, pi2 ], dcroissante sur [pi2 ,pi]et g (pi/2)= 3/2 0 fix).1. Faire ltude complte de la fonction g .2. Comparer g lidentit.3. Soit la suite (xn)nN dfinie parxn+1 = g (xn), x0 > 0. laide des graphe de g et de lidentit sur R+, dessiner la suite (xn)nN sur laxe des abscisses. Observer graphi-quement la convergence.4. Justifier mathmatiquement la convergence observe graphiquement. En particulier, montrer que cette suite estdcroissante partir du rang 1.5. Calculer lordre de convergence de la suite.6. crire lalgorithme dfini par la suite (xn)nN qui permet de dterminer 3pa une prcision de 106.7. Expliciter la mthode de Newton pour la recherche du zro de la fonction f dfinie par f (x) = x3 a. Queremarque-t-on ?CORRECTION.1. tude de la fonction g : R+R dfinie par g (x)= 23 x+ 13 ax2 :? g (x)> 0 pour tout x R+ ;? limx0+g (x)= limx+g (x)=+ ;limx+g (x)x = 23 et limx+g (x)23 x = 0 donc y = 23 x est un asymptote et lon a g (x)> 23 x pour tout x > 0 ;? g (x)= 23(1 ax3);? g est croissante sur [ 3pa,+[, dcroissante sur [0, 3pa] ;? x = 3pa est un minimum absolu et g ( 3pa)= 3pa,? g (x)= 2ax4> 0 : g est convexe sur R+.32 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesy = 23 xg (x)xyi (x)3pa3pa(a) Graphe de g compar au graphe de i (x)= x.g (x)xyi (x)3pa3pax0 x1x2x3x4(b) tude graphique de la convergence de la m-thode de point fixe.FIGURE 1.4.: Exercice 1.13x 0 3pa +g (x) +g (x)+3pa+2. Graphe de g compar au graphe de i (x) = x : voir la figure 1.4a. On vrifie analytiquement quil existe une et uneseule intersection entre la courbe dquation y = g (x) et la droite dquation y = x :g (x)= x 23x+ 13ax2= x x3 = a.3. tude graphique de la convergence de la mthode de point fixe : voir la figure 1.4a.4. On en dduit que pour tout x > 0 on a g (x) 3pa. Donc, pour tout k > 0, xk = g (xk1) 3pa. Vrifions les hypothsesdu thorme de point fixe qui fournit une condition suffisante de convergence de la suite :4.1. pour tout x dans [ 3pa,+[ on a g (x)> 3pa donc g ([ 3pa,+[) [ 3pa,+[ (i.e. lintervalle 3pa,+[ est stable) ;4.2. g C 1([ 3pa,+[) ;4.3. pour tout x dans [ 3pa,+[ on a|g (x)| =23(1 ax3)< 1donc g est contractante.Alors la mthode converge vers x point fixe de g . De plus, pour tout x [ 3pa,+[ on a x = g (x) x = 3pa : lamthode permet donc de calculer de faon itrative la racine cubique de a.5. tant donn queg (x)= 0, g (x)= 2ax46= 0la mthode de point fixe converge lordre 2.6. Algorithme de point fixe :Require: x0 > 0while |xk+1xk | > 106 doxk+1 g (xk )end whileQuelques remarques propos du critre darrt bas sur le contrle de lincrment. Les itrations sachvent ds que|xk+1xk | < ; on se demande si cela garantt-t-il que lerreur absolue ek+1 est elle aussi infrieur . Lerreur absolue litration (k+1) peut tre value par un dveloppement de Taylor au premier ordreek+1 = |g (x) g (xk )| = |g (zk )ek | G. Faccanoni 331. Rsolution dquations non linaires Jeudi 31 janvier 2013avec zk compris entre x et xk . Donc|xk+1xk | = |ek+1ek | = |g (zk )1|ek ' |g (x)1|ek .Puisque g (x)= 0, on a bien |xk+1xk | ' ek .7. La mthode de Newton est une mthode de point fixe avec g (x)= x f (x)f (x) . Ici elle scritxk+1 = xk f (xk )f (xk )= xk x3k a3x2k= xk 13xk +a3x2k= 23xk +a3x2kautrement dit la mthode de point fixe assigne est la mthode de Newton (quon sait tre dordre de convergencegale 2 lorsque la racine est simple).Exercice 1.14On veut rsoudre lquation ex = x avec 0 0. De plus, comme g (1) = e < 1, on peut conclure que` ]0;1[.Mthode 2 : La fonction f : x 7 exx est continue monotone dcroissante, limx exx =+ et limx+ exx = ; par le thorme des valeurs intermdiaires on conclut quil existe un et un seul ` R telque f (`) = 0. Comme f (0) > 0, on peut appliquer nouveau le thorme des valeurs intermdiaires lintervalle [0;[ et en dduire que ` > 0. De plus, comme f (1) < e11 < 0, on peut conclure que` ]0;1[.2. Le graphe de la fonction g est celui en figure 1.14. On en dduit que? la suite (un)n converge pour tout u0 R ;? g (R)=]0;+[ et g (]0;+[)=]0;1[ ainsi u1 ]0;+[ et un ]0;1[ pour tout n > 1 ;? la convergence nest pas monotone : la sous-suite des termes dindice pair est monotone croissante tandis quela sous-suite des termes dindice impair est monotone dcroissante (ce qui veut dire dune part quon ne pourrapas utiliser les thormes du type monotone+borne=convergente pour prouver la convergence, dautre parton voit aussi que ni lintervalle [`;+[ ni lintervalle [0;`] sont stables) ;? |g (x)| nest pas borne pour tout x R (croissance exponentielle ). Plus particulirement, |g (x)| < 1 ssiex > ssi x > ln()/. Comme 0Jeudi 31 janvier 2013 1. Rsolution dquations non linairesg (x)xy i (x)``0 1(a) Graphe de g compar au graphe de i (x)= x.g (x)xy i (x)``x0 x1x2 x3(b) tude graphique de la convergence de la mthode de pointfixe.FIGURE 1.5.: Exercice 1.14Exercice 1.15Soit f une application de R dans R dfinie par f (x)= exp(x2)4x2. On se propose de trouver les racines relles de f .1. Situer les 4 racines de f (i.e. indiquer 4 intervalles disjoints qui contiennent chacun une et une seule racine).2. Montrer quil y a une racine x comprise entre 0 et 1.3. Soit la mthode de point fixe {xk+1 =(xk ),x0 ]0,1[,(1.7)avec lapplication de R dans R dfinie par (x) =pexp(x2)2 . Examiner la convergence de cette mthode et enprciser lordre de convergence.4. crire la mthode de Newton pour la recherche des zros de la fonction f .5. Entre la mthode de Newton et la mthode de point fixe (1.7), quelle est la plus efficace ? Justifier la rponse.CORRECTION. On cherche les zros de la fonction f (x)= exp(x2)4x2.1. On remarque que f (x)= f (x) : la fonction est paire. On fait donc une brve tude sur [0,+[ :? f (0)= 1 et limx+ f (x)=+,? f (x) = 0 pour x = 0 et x =pln4 et on a f (0) = 1 et f (pln4) = 4(1 ln4) < 0 ; f est croissante pour x >pln4 etdcroissante pour 0< x 0 et f (1)= e4< 0, pour le thorme des valeurs intermdiaires il existe au moins un x ]0,1[ telque f (x) = 0. Puisque f (x) = 2x exp(x2)8x = 2x(exp(x2)22) < 2x(e 4) < 0 pour tout x ]0,1[, ce x est unique.Voir la figure 1.6b.3. tude de la convergence de la mthode (1.7) :3.1. pour tout x dans ]0,1[ on a0 0 pour tout n N donc ` 0,? si x0 < 0 alors xn < 0 pour tout n N donc ` 0.Comme x0 = 1> 0, alors xn > 0 pour tout n N et ` {0,p5}.2. Soit la fonction g dfinie sur [1;p5] par g (x)= 10xx2+5 . On tudie la fonction g :? g (x)> 0 pour tout x [1;p5] ;? g (1)= 53 , g (p5)=p5 ;? g (x)=10 x25(x2+5)2 ;? g est croissante sur [1;p5[ et g (p5)= 0.Graphe de g compar au graphe de i (x) = x : voir la figure 1.8a. On vrifie analytiquement quil existe une et uneseule intersection entre la courbe dquation y = g (x) et la droite dquation y = x dans [1;p5] :g (x)= x 10xx2+5 = x x2 = 5.3. On a g (x) [5/3;p5] pour tout x [1;p5] et on a vu au point prcdent que g est croissante et g (p5)=p5.De plus, g (x) x carg (x)= 10xx2+5 10x(p5)2+5 = x,par consquent la suite xk+1 = g (xk ) xk est croissante.Comme g (x) (p5)=p5 alors la suite xk+1 = g (xk )p5 est borne. On a ainsi une suite croissante et born, ce quiimplique quelle converge. Comme au premier point on a montr que si elle converge vers ` alors ` {0,p5}, onconclut que xn n+p5. Pour ltude graphique de la convergence de la mthode de point fixe voir la figure 1.8b.Dans ce cas, on ne peut pas utiliser le thorme de point fixe pour prouver la convergence de la suite sur lintervalle[1;p5]. En effet? g est au moins de classe C 1([1;p5])? g ([1;p5])= [5/3;p5] [1;p5]? mais 0 g (x)< 1 ssi x [10+5p5;p5] (et on a10+5p5> 1). G. Faccanoni 371. Rsolution dquations non linaires Jeudi 31 janvier 2013En revanche, on peut utiliser le thorme de point fixe pour prouver la convergence de la suite sur lintervalle [5/3;p5]car? g est au moins de classe C 1([5/3;p5])? g ([5/3;p5]) [5/3;p5]? 0 g (x)< 1 pour tout x [5/3;p5].4. Comme g (p5)= 0 et g (p5) 6= 0, la mthode de point fixe associe la fonction ditration g est dordre 2.Exercice 1.17Lobjectif de cet exercice est de dterminer le zro dune fonction C 2(R,R) vrifiant 2 < f (x) < 1 sur R. On dfinit lasuite {xn}nN de R par la rcurrence suivantexn+1 = g (xn)= xn + f (xn),o > 0 et x0 R sont donns.1. Montrer que limx f (x)=+ et limx+ f (x)=.2. En dduire quil existe un unique ` lment de R tel que f (`)= 0.3. Montrer que si 0Jeudi 31 janvier 2013 1. Rsolution dquations non linaires4.1. On vrifie dabord que, si la suite converge vers un point fixe de g , ce point est bien un zro de f (ici le rciproqueest vrai aussi) : soit ` R, alors`= g (`) `= `+ f (`) 0= f (`) f (`)= 0;4.2. vrifions maintenant que la suite converge vers un point fixe de g (et donc, grce ce quon a vu au pointprcdant, elle converge vers lunique zro de f ) :4.2.1. on a videmment que g : RR ;4.2.2. on a dj remarqu que g C 1(R,R) ;4.2.3. pour tout x dans R on a prouv que |g (x)| < 1, i.e. que g est contractante.Alors la suite xn+1 = g (xn) converge vers ` point fixe de g et zro de f .5. Si = 1f (`) alorsxn+1 = g (xn)= xn f (xn)f (`),qui converge car 2< f (`)1. Rsolution dquations non linaires Jeudi 31 janvier 20132. g est de classe C 2(R,R). Puisque 1< f (x)< 2 et 0Jeudi 31 janvier 2013 1. Rsolution dquations non linairesy = 23 x 49g (x)xy i (x)mm(a) Graphe de g compar au graphe de i .g (x)xyi (x)x0 x1x2x3x4(b) tude graphique de la convergence de la mthode de pointfixe.FIGURE 1.9.? g est croissante sur [m,+[, dcroissante sur [0,m] o m 1,36 ;? x =m est un minimum absolu et g (m)=m.x 0 m +g (x) +g (x)+m+2. Graphe de g compar au graphe de i (x) = x : voir la figure 1.9a. On vrifie analytiquement quil existe une et uneseule intersection entre la courbe dquation y = g (x) et la droite dquation y = x :g (x)= x 2x3+4x2+103x2+8x = x x3+4x210= 0 x =m f (x)= 0.3. Pour ltude graphique de la convergence de la mthode de point fixe voir la figure 1.9b.4. On en dduit que pour tout x > 0 on a g (x)m. Donc, pour tout k > 0, xk = g (xk1)m. Pour tudier la convergencede la mthode vrifions si on peut appliquer le thorme de point fixe :4.1. pour tout x dans [m,+[ on a g (x)>m donc g ([m,+[) [m,+[ ;4.2. g C 1([m,+[) ;4.3. pour tout x dans [m,+[, on a |g (x)| = (6x2+8x)g (x)(6x+8)3x2+8x < 1 alors g est contractante.Si les conditions prcdentes sont vrifies alors la mthode converge vers m point fixe de g . De plus, pour tout [m,+[ : = g () =m donc le point fixe de g est racine de f .5. Algorithme de point fixe :Require: x0 > 0Require: g : x 7 g (x)while |xk+1xk | > doxk+1 g (xk )end while6. La mthode de Newton est une mthode de point fixe avec g (x)= x f (x)f (x) . Ici donc elle scritxk+1 = xk f (xk )f (xk )= xk x3k +4x2k 103x2k +8xk= g (xk ) G. Faccanoni 411. Rsolution dquations non linaires Jeudi 31 janvier 2013autrement dit la mthode de point fixe assigne est la mthode de Newton.7. tant donn que la mthode de point fixe donne est la mthode de Newton et que la racine m de f est simple, elleconverge lordre 2.Quelques remarques propos du critre darrt bas sur le contrle de lincrment. Les itrations sachvent ds que |xk+1xk | < ; on se demande si cela garantt-t-il que lerreur absolue ek+1 est elle aussi infrieur . Lerreur absolue litration(k+1) peut tre value par un dveloppement de Taylor au premier ordreek+1 = |g (x) g (xk )| = |g (zk )ek |avec zk compris entre m et xk . Donc|xk+1xk | = |ek+1ek | = |g (zk )1|ek ' |g (m)1|ek .Puisque g (x)= 2 3x+4x2(3x+8)2 f (x), alors g(m)= 0 donc on a bien |xk+1xk | ' ek .Exercice 1.20On se propose de calculer 413 en trouvant les racines relles de lapplication f de R dans R dfinie par f (x)= x4 13 .1. Situer les 2 racines de f (i.e. indiquer 2 intervalles disjoints qui contiennent chacun une et une seule racine). Enparticulier, montrer quil y a une racine x comprise entre 0 et 1.2. Soit g la fonction dfinie sur [0;1] parg (x)= x(9x4+5)3(5x4+1) .2.1. Faire ltude complte de la fonction g et la comparer lidentit.2.2. Soit la suite (xn)nN dfinie parxn+1 = g (xn), x0 ]0;1[. laide des graphe de g et de lidentit sur [0;1], dessiner la suite (xn)nN sur laxe des abscisses. Observergraphiquement la convergence.2.3. Justifier mathmatiquement la convergence observe graphiquement.2.4. Calculer lordre de convergence de la suite.2.5. crire lalgorithme dfini par la suite (xn)nN qui permet de dterminer 413 une prcision de .3. Expliciter la mthode de Newton pour la recherche du zro de la fonction f .4. Entre la mthode de Newton et la mthode de point fixe xk+1 = g (xk ), quelle est la plus efficace ? Justifier la rponse.CORRECTION.1. f est paire ; comme f (x) = 4x3, f est croissante pour x > 0 et dcroissante pour x < 0 ; puisque f (0) < 0 et f (1) =f (1)> 0, on conclut que il ny a que deux racines relles distinctes : x ]0;1[ et x ]1;0[.2. On tudie la fonction g (x)= x(9x4+5)3(5x4+1) pour x 0.2.1. ? g (x) 0 pour tout x 0 et g (x)= 0 ssi x = 0 ;? g (x)= 5(9x86x4+1)3(5x4+1)2 = 53(3x415x4+1)2donc g (x) 0 pour tout x ]0;1[ et g (x)= 0 ssi x = 413 . De plus, g(413)=413 .? Enfin, g (x) = 103 3x415x4+132x3(5x4+1)2 =203 g(x) 32x3(5x4+1)2 =320x3(3x41)(5x4+1)3 donc g(x) = 0 ssi x = 0 ou x = 413 , g estconcave pour x ]0; 413[, convexe pour x > 413 .? Pour le graphe de g compar au graphe de i (x)= x pour x [0;1] voir la figure 1.10a.? On vrifie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x) etla droite dquation y = x :g (x)= x x(9x4+5)3(5x4+1) = x 9x4+5= 3(5x4+1) x4 = 13 f (x)= 0.2.2. Pour ltude graphique de la convergence de la mthode de point fixe voir la figure 1.10b.2.3. tudions la convergence de la mthode. On remarque quexk+1xk= 9x4k +53(5x4k +1)> 1 xk < 41342 G. FaccanoniJeudi 31 janvier 2013 1. Rsolution dquations non linairesy = 35 xg (x)xyi (x)1413413(a) Graphe de g compar au graphe de i .g (x)xyi (x)1413413x0 x1 x2 x3 x4(b) tude graphique de la convergence de la mthode de point fixe.FIGURE 1.10.donc la suite rcurrente {x0 ]0; 413[xk+1 = g (xk )est monotone croissante et majore par 413 : elle est donc convergente vers ` 413 . Comme ` = g (`) ssi ` =413 , on conclut quelle converge vers413 . De mme, la suite rcurrente{x0 ]413 ;0[xk+1 = g (xk )est monotone dcroissante et minor par 413 : elle est donc convergente vers ` 413 . Comme ` = g (`) ssi`= 413 , on conclut quelle converge vers413 .Par consquent, quelque soit le point initiale, la mthode de point fixe donne converge vers 413 point fixe deg (et racine de f ).Soulignons quon ne peut pas utiliser le thorme de point fixe pour prouver la convergence de la mthode carg nest pas contractante sur [0;1]. En effet, dans [0;1] on a|g (x)| < 1 g (x)< 1 5(3x41)2 < 3(5x4+1)2 15x8+30x41> 0 x4 >1+1615]0;1[.2.4. Si on pose x = 413 alors g (x) = x, g (x) = 0, g (x) = 0 et g (x) = 320x2 25x822x4+1(5x4+1)4 = 15p32 : on conclut que lasuite converge lordre 3.2.5. Algorithme de point fixe :Require: x0 > 0Require: g : x 7 g (x)while |xk+1xk | > doxk+1 g (xk )end while3. Entre la mthode de Newton et la mthode de point fixe xk+1 = g (xk ), la plus efficace est la mthode de point fixexk+1 = g (xk ) car elle est dordre 3 tandis que celle de Newton nest que dordre 2.Exercice 1.21Comparer les mthodes de la dichotomie, de Lagrange et de Newton pour approcher la racine x ' 0.5149332646611294de la fonction f (x) = cos2(2x) x2 sur lintervalle ]0,1.5[ avec une prcision de 1016. Pour la mthode de Newton onprendra x0 = 0.75. G. Faccanoni 431. Rsolution dquations non linaires Jeudi 31 janvier 2013CORRECTION. On modifie les fonctions donnes la page 20 pour que les mthodes sarrtent lorsque le nombre ditra-tions est gal maxITER :1 import math, sys23 def dichotomie(f,a,b,tol,maxITER):4 fa = f(a)5 if abs(fa)tol) and (ktol) and (kJeudi 31 janvier 2013 1. Rsolution dquations non linaires63 k += 164 return xEnsuite on construit une matrice dont la premire colonne contient le nombre ditrations, la deuxime colonne lerreurabsolue obtenue par la mthode de la dichotomie avec le nombre ditrations indiqu dans la premire colonne, la troi-sime colonne lerreur absolue obtenue par la mthode de LAGRANGE et la dernire par la mthode de NEWTON.65 def f(x):66 return (math.cos(2.*x))**2-x**267 def df(x):68 return -4.*math.cos(2.*x)*math.sin(2.*x)-2.*x6970 exact = 0.51493326466112947172 nITER = 1073 tol = sys.float_info.epsilon74 a = 0.75 b = 1.576 x_init = 0.75777879 XXX = []80 Dic = []81 Lag = []82 New = []8384 for i in range(nITER):85 maxITER = i86 XXX.append(maxITER)87 Dic.append(abs(exact-dichotomie(f,a,b,tol,maxITER)))88 Lag.append(abs(exact-lagrange(f,a,b,tol,maxITER)))89 New.append(abs(exact-newton(f,x_init,tol,maxITER)))90 print "%2.g %15.17f %15.17f %15.17f" % (XXX[i], Dic[i], Lag[i], New[i])On obtient ainsi le tableaumaxITER Dichotomie LAGRANGE NEWTON0 0.23506673533887057 0.14588447288050665 0.235066735338870571 0.13993326466112943 0.03464350570111258 0.077739757197412502 0.04756673533887057 0.00260088757041255 0.000230796768012083 0.04618326466112943 0.00002318596617201 0.000000016700200674 0.00069173533887057 0.00000020304484416 0.000000000000000115 0.02274576466112943 0.00000000177782544 0.000000000000000006 0.01102701466112943 0.00000000001556633 0.000000000000000007 0.00516763966112943 0.00000000000013634 0.000000000000000008 0.00223795216112943 0.00000000000000122 0.000000000000000009 0.00077310841112943 0.00000000000000000 0.00000000000000000On affiche enfin les erreurs absolues |x xmaxITER| en fonction du nombre ditrations pour chaque mthode avec unechelle logarithmique pour laxe des ordonnes.91 from matplotlib.pylab import *92 xlabel(Iterations)93 ylabel(Absolute error)94 axis([0.,nITER,0.,0.1])95 semilogy(XXX,Dic,"r-o",XXX,Lag,"g-o",XXX,New,"y-o")96 legend([Dichotomie,Lagrange,Newton])97 show()Le rsultat est le suivant G. Faccanoni 451. Rsolution dquations non linaires Jeudi 31 janvier 2013On remarque tout dabord que la dcroissance de lerreur avec la mthode de la dichotomie nest pas monotone. De plus,on voit que la mthode de NEWTON est dordre 2 tandis que la mthode de LAGRANGE est dordre 1.46 G. Faccanoni2. Interpolationtant donn n+1 points { (xi , yi )}ni=0, trouver un polynme p = p(x) tel que p(xi )= yitant donn n+1 couples (xi , yi ), le problme consiste trouver une fonction =(x) telle que (xi )= yi ; on dit alorsque interpole {yi } aux nuds {xi }. Les quantits yi peuvent, par exemple, reprsenter les valeurs aux nuds xi dunefonction f connue analytiquement ou des donnes exprimentales. Dans le premier cas, lapproximation a pour but deremplacer f par une fonction plus simple en vue dun calcul numrique dintgrale ou de drive. Dans lautre cas, lebut est davoir une reprsentation synthtique de donnes exprimentales dont le nombre peut tre trs lev. On parledinterpolation polynomiale quand est un polynme, dapproximation trigonomtrique quand est un polynme trigo-nomtrique et dinterpolation polynomiale par morceaux (ou dinterpolation par fonctions splines) si est polynomialepar morceaux.2.1. Position du problmeNotons Rm[x] lespace vectoriel form par tous les polynmes de degr infrieur ou gale m. Il est bien connu queRm[x] a dimension m+1 et que sa base canonique est donne par{1, x, x2, . . . , xm}.Supposons que lon veuille chercher un polynme Pm de degr m 0 qui, pour des valeurs x0, x1, x2, . . . , xm distinctesdonnes (appels nuds dinterpolation), prenne les valeurs y0, y1, y2, . . . , ym respectivement, cest--direPm(xi )= yi pour 0 i m. (2.1)Si un tel polynme existe, il est appel polynme dinterpolation ou polynme interpolant.Une manire apparemment simple de rsoudre ce problme est dcrire le polynme dans la base canonique de Rm[x] :Pm(x)= a0+a1x+a2x2+ +am xm ,o a0, a1, a2, . . . , am sont des coefficients qui devront tre dtermins. Les (m+1) relations (2.1) scrivent alorsa0+a1x0+ . . . an xm0 = y0a0+a1x1+ . . . an xm1 = y1. . .an +a1xm + . . . am xmm = ymPuisque les valeurs xi et yi sont connues, ces relations forment un systme linaire de (m + 1) quations en les (m + 1)inconnues a0, a1, a2, . . . , am quon peut mettre sous la forme matricielle 11 x0 . . . xm01 x1 . . . xm1.........1 xm . . . xmma0a1...am=y0y1...ym . (2.2)Ainsi, le problme consistant chercher le polynme Pm satisfaisant (2.1) peut se rduire rsoudre le systme linaire (2.2).Cependant, rsoudre une systme linaire de (m + 1) quations (m + 1) inconnues nest pas une tache triviale. Cettemthode pour trouver le polynme Pm nest donc pas une bonne mthode en pratique. Dans la suite on va tudier unemthode plus astucieuse pour construire le polynme Pm .1. La matrice1 x0 ... xm01 x1 ... xm1.........1 xm ... xmm sappelle matrice de VANDERMONDE.472. Interpolation Jeudi 31 janvier 20132.2. Interpolation de LAGRANGEQuand on crit le polynme Pm dans la base canonique de Rm[x], le problme est de dterminer les (m+1) coefficientsa0, a1, a2, . . . , am tels quePm(x)= a0+a1x+a2x2+ +am xm .On se demande sil existe une autre base { L0,L1,L2, . . . ,Lm } de Rm[x] telle que le polynme Pm scritPm(x)= y0L0(x)+ y1L1(x)+ y2L2(x)+ + ymLm(x).Les (m+1) relations (2.1) imposent la condition :Li (x j ){1 si i = j0 sinonpour 0 i , j m,ce qui donneLi (x)=nj=0j 6=ixx jxi x j= (xx0)(xx1) (xxi1)(xxi+1) (xxm)(xi x0)(xi x1) (xi xi1)(xi xi+1) (xi xm).Clairement, le numrateur de Li (x) est un produit de m termes (x x j ) avec i 6= j et est donc un polynme de degr m. Lednominateur est une constante et il est facile de vrifier que? Li (x) Rm[x],? Li (x j )= 0 si i 6= j , 0 i m,? Li (xi )= 1.De plus, les polynmes L0,L1,L2, . . . ,Lm sont linairement indpendants car si lquationmi=0i Li (x) = 0 doit tre satis-faite pour tout x R alorsmi=0i Li (x j )= 0 doit tre vraie pour tout j = 0,1, . . . ,m et puisquemi=0i Li (x j )= j , on conclutque tous les j sont nuls. Par consquent, la famille { L0,L1,L2, . . . ,Lm } forme une base de Rm[x].Il est important de remarquer que nous avons construit explicitement une solution du problme (2.1) et ceci pour nim-porte quelles valeurs y0, y1, y2, . . . , ym donnes. Ceci montre que le systme linaire (2.2) a toujours une unique solution.Dfinition Interpolation de Lagrangetant donn m+1 points distincts x0, . . . , xm et m+1 valeurs correspondantes y0, . . . , ym , il existe un unique polynmePm Rm[x] tel que Pm(xi )= yi , pour i = 0, . . .m quon peut crire sous la formePm(x)=mi=0yi Li (x) Rm[x] o Li (x)=mj=0j 6=ixx jxi x j.Cette relation est appele formule dinterpolation de LAGRANGE et les polynmes Li sont les polynmes caractristiques(de LAGRANGE).ExemplePour m = 2 le polynme de Lagrange scritP (x)= y0(xx1)(xx2)(x0x1)(x0x2)+ y1(xx0)(xx2)(x1x0)(x1x2)+ y2(xx0)(xx1)(x2x0)(x2x1)ExempleOn cherche le polynme dinterpolation de LAGRANGE qui en 1 vaut 8, en 0 vaut 3 et en 1 vaut 6. On aP (x)= y0(xx1)(xx2)(x0x1)(x0x2)+ y1(xx0)(xx2)(x1x0)(x1x2)+ y2(xx0)(xx1)(x2x0)(x2x1)= 8 x(x1)2+3 (x+1)(x1)1 +6(x+1)x2= 4x2x+3.RemarqueSi m est petit il est souvent plus simple de calculer directement les coefficients a0, a1, . . ., am en rsolvant le systmelinaire (2.2).48 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationSoit f : RRune fonction continue donne et soit x0, x1, x2, . . . , xm , (m+1) points distincts donns. Interpoler la fonctionf aux points xi , 0 i m signifie chercher un polynme Pm de degr m tel quePm(xi )= f (xi ) pour 0 i m. (2.3)La solution de ce problme est donc donne parPm(x)=mi=0f (xi )Li (x) Rm[x] o Li (x)=mj=0j 6=ixx jxi x jet le polynme Pm est appele interpolant de f de degr m aux points x0, x1, x2, . . . , xm .ExempleSoit f : RR la fonction dfinie par f (x)= ex . On cherche linterpolant de f aux points 1, 0, 1. On aP (x)= f (x0)(xx1)(xx2)(x0x1)(x0x2)+ f (x1)(xx0)(xx2)(x1x0)(x1x2)+ f (x2)(xx0)(xx1)(x2x0)(x2x1)= 1ex(x1)2+ (x+1)(x1)1 +e(x+1)x2=(12e1 e2)x2+(e2 12e)x+1.La figure ci-dessous montre le graphe de la fonction f et de son interpolant aux points 1, 0, 1.xy1 0 11e1efP2Proposition ErreurSi yi = f (xi ) pour i = 0,1, . . . ,n, f : I R tant une fonction donne de classe C n+1(I ) o I est le plus petit intervallecontenant les nuds { xi }ni=0, lerreur dinterpolation au point x I est donn parEn(x) f (x)Pn(x)= f(n+1)()(n+1)! n+1(x)o I et n+1(x)ni=0(xx j ).videmment, En(xi ) = 0 pour i = 0,1, . . . ,n. De plus, dans le cas dune distribution uniforme de nuds, i.e. quand xi =xi1+h avec i = 1,1, . . . ,n et h > 0 et x0 donns,maxxI|En(x)| maxxI | f(n+1)(x)|4(n+1) hn+1.Attention priori on pourrait penser que cette erreur tend vers 0 quand n + puisquelimn+hn+14(n+1) = 0.En ralit il existe des fonctions f pour lesquelles maxxI |En(x)| n+ +. Ce rsultat frappant indique quen aug-mentant le degr n du polynme dinterpolation, on nobtient pas ncessairement une meilleure reconstruction de f . G. Faccanoni 492. Interpolation Jeudi 31 janvier 2013Exemple RUNGECe phnomne est bien illustr par la fonction de RUNGE : soit la fonction f : [5,5] R dfinie par f (x) = 11+x2 . La fonction fest infiniment drivable sur [5,5] et | f (n)(5)| devient trs rapidement grand lorsque n tend vers linfini. Si on considre une dis-tribution uniforme des nuds on voit que lerreur tend vers linfini quand n tend vers linfini. Ceci est li au fait que la quantitmaxx[5,5]| f (n+1)(x)| tend plus vite vers linfini que hn+14(n+1) tend vers zro. La figure 2.1a montre ses polynmes interpolants de de-grs 3, 5 et 10 pour une distribution quirepartie des nuds. Cette absence de convergence est galement mise en vidence par lesfortes oscillations observes sur le graphe du polynme dinterpolation (absentes sur le graphe de f ), particulirement au voisinagedes extrmits de lintervalle. Ce comportement est connu sous le nom de phnomne de RUNGE. On peut viter le phnomne deRUNGE en choisissant correctement la distribution des nuds dinterpolation. Sur un intervalle [a,b], on peut par exemple considrerles nuds de CHEBYSHEV-GAUSS-LOBATTO (voir figure 2.1b)xi =a+b2 ba2cos(pini), pour i = 0, . . . ,nPour cette distribution particulire de nuds, il est possible de montrer que, si f est drivable sur [a,b], alors Pn converge vers fquand n + pour tout x [a,b]. Les nuds de CHEBYSHEV-GAUSS-LOBATTO, qui sont les abscisses des nuds quirpartis sur ledemi-cercle unit, se trouvent lintrieur de [a,b] et sont regroups prs des extrmits de lintervalle. Ces figures ont t obtenuepar les instructions suivantes :1 from matplotlib.pylab import *23 def lagrange(t,x,y):4 p = 05 n = len(x)6 L = [1 for i in range(n)]7 for i in range(n):8 for j in range(n):9 if j!=i:10 L[i] *= (t-x[j])/(x[i]-x[j])11 p += y[i]*L[i]12 return p1314 def f(x):15 return 1./(1.+x**2)"Noeuds quirpartis"1 x1 = linspace(-5,5,3)2 x2 = linspace(-5,5,5)3 x3 = linspace(-5,5,10)4 y1 = f(x1)5 y2 = f(x2)6 y3 = f(x3)78 # Calcul des polynomes en plusieurs points dun intervalle pour affichage9 t = arange(-5,5,.1)10 l1t = []11 l2t = []12 l3t = []13 for k in t:14 l1t.append(lagrange(k,x1,y1))15 l2t.append(lagrange(k,x2,y2))16 l3t.append(lagrange(k,x3,y3))1718 plot(t,f(t),r-,t,l1t,b:,t,l2t,m-.,t,l3t,y--)19 legend([f,p_3,p_5,p_10],loc=lower center)20 axis([-5, 5, -0.5, 1])21 show()"Noeuds de CHEBYSHEV-GAUSS-LOBATTO"1 def Tchebychev(a,b,n):2 return [0.5*(a+b)-0.5*(b-a)*cos(pi*i/(n-1)) for i in range(n)]34 x1 = Tchebychev(-5,5,3)5 x2 = Tchebychev(-5,5,5)50 G. FaccanoniJeudi 31 janvier 2013 2. Interpolation4 2 0 2 40.40.20.00.20.40.60.81.0fp_3p_5p_10(a)4 2 0 2 40.40.20.00.20.40.60.81.0fp_3p_5p_10(b)FIGURE 2.1.: Interpolation de LAGRANGE, exemple de RUNGE6 x3 = Tchebychev(-5,5,10)7 y1 = [f(x) for x in x1]8 y2 = [f(x) for x in x2]9 y3 = [f(x) for x in x3]1011 # Calcul des polynomes en plusieurs points dun intervalle pour affichage12 t = arange(-5,5,.1)13 l1t = []14 l2t = []15 l3t = []16 for k in t:17 l1t.append(lagrange(k,x1,y1))18 l2t.append(lagrange(k,x2,y2))19 l3t.append(lagrange(k,x3,y3))2021 plot(t,f(t),r-,t,l1t,b:,t,l2t,m-.,t,l3t,y--)22 legend([f,p_3,p_5,p_10],loc=lower center)23 axis([-5, 5, -0.5, 1])24 show()2.3. Polynme dHERMITE ou polynme osculateurOn peut gnraliser linterpolation de LAGRANGE pour prendre en compte, en plus des valeurs nodales, les valeurs de ladrive du polynme interpolateur dans ces nuds.Considrons n+1 triplets (xi , yi , y i ), le problme est de trouver un polynmem(x)= a0+a1x+ . . . am xm Pm tel quel{m(xi )= yi ,m(xi )= y i ,i = 0, . . .n.Il sagit dun systme linaire de 2(n+1) quations et m+1 inconnues. Si m = 2n+1 on a le rsultat suivant :Thormetant donn n + 1 points distincts x0, . . . , xn et n + 1 couples correspondantes (y0, y 0), . . . , (yn , y n), il existe un unique G. Faccanoni 512. Interpolation Jeudi 31 janvier 2013polynme2n+1 P2n+1 tel que2n+1(xi )= yi et2n+1(xi )= y i , pour i = 0, . . .n quon peut crire sous la formeQ(x)=ni=0yi Ai (x)+ y i Bi (x) P2n+1 oLi (x) =nj=0j 6=ixx jxix j ,ci =nj=0j 6=i1xix j ,Ai (x) = (12(xxi )ci )(Li (x))2,Bi (x) = (xxi )(Li (x))2,quon peut rcrire commeQ(x)=ni=0(yi Di (x)+ y i (xxi ))(Li (x))2 oLi (x) =nj=0j 6=ixx jxix j ,ci =nj=0j 6=i1xix j ,Di (x) = 12(xxi )ci .Cette relation est appele formule dinterpolation de HERMITE.ExemplePour n = 2 le polynme de Hermite scritQ(x)= y0(12(xx0)(1x0x1+ 1x0x2))((xx1)(xx2)(x0x1)(x0x2))2+ y 0(xx0)((xx1)(xx2)(x0x1)(x0x2))2+ y1(12(xx1)(1x1x0+ 1x1x2))((xx0)(xx2)(x1x0)(x1x2))2+ y 1(xx1)((xx0)(xx2)(x1x0)(x1x2))2+ y2(12(xx2)(1x2x0+ 1x2x1))((xx0)(xx1)(x2x0)(x2x1))2+ y 2(xx2)((xx0)(xx1)(x2x0)(x2x1))2,quon peut rcrire commeQ(x)=(y0(12(xx0)(1x0x1+ 1x0x2))+ y 0(xx0))((xx1)(xx2)(x0x1)(x0x2))2+(y1(12(xx1)(1x1x0+ 1x1x2))+ y 1(xx1))((xx0)(xx2)(x1x0)(x1x2))2+(y2(12(xx2)(1x2x0+ 1x2x1))+ y 2(xx2))((xx0)(xx1)(x2x0)(x2x1))2.RemarqueSi n est petit on peut calculer directement les coefficients a0, a1, . . ., a2n+1 en rsolvant le systme linaire de 2n + 2quationsa0+a1x0+ . . . a2n+1x2n+10 = y0a0+a1x1+ . . . a2n+1x2n+11 = y1. . .an +a1xn + . . . a2n+1x2n+1n = yna1+a2x0+ . . .2n+1a2n+1x2n+110 = y 0a1+a2x0+ . . .2n+1a2n+1x2n+111 = y 1. . .an +a1xn + . . .2n+1a2n+1x2n+11n = y ni.e.1 x0 . . . x2n+101 x1 . . . x2n+11.........1 xn . . . x2n+1n0 x0 . . . 2n+1x2n+1100 x1 . . . 2n+1x2n+111.........0 xn . . . 2n+1x2n+11n (2n+2)(2n+2)a0a1.........a2n+1 (2n+2)1=y0y1...yny 0y 1...y n (2n+2)152 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationExemple RUNGEOn veut voir si avec linterpolation dHERMITE on arrive mieux approcher la fonction de RUNGE. Soit la fonction f : [5,5] Rdfinie par f (x)= 11+x2 . La figure ci-dessous montre les polynmes interpolants de degrs 3, 5 et 10 pour une distribution quirepartiedes nuds.4 2 0 2 41.00.50.00.51.0fq_3q_5q_10Cette figure a t obtenue par les instructions :1 from matplotlib.pylab import *23 def hermite(t,x,y,dy):4 p = 05 n = len(x)6 L = [1 for i in range(n)]7 c = [0 for i in range(n)]8 for i in range(n):9 for j in range(len(x)):10 if j!=i:11 L[i] *= (t-x[j])/(x[i]-x[j])12 c[i] += 1./(x[i]-x[j])13 p += (y[i]*(1.-2.*(t-x[i])*c[i])+dy[i]*(t-x[i]))*L[i]**214 return p1516 def f(x):17 return 1./(1.+x**2)1819 def df(x):20 return -2.*x/(1.+x**2)**22122 # INPUT23 x1 = linspace(-5,5,3)24 x2 = linspace(-5,5,5)25 x3 = linspace(-5,5,10)26 y1 = f(x1)27 y2 = f(x2)28 y3 = f(x3)29 dy1 = df(x1)30 dy2 = df(x2)31 dy3 = df(x3)3233 # Calcul des polynomes en plusieurs points dun intervalle pour affichage34 t = arange(-5,5,.1)35 h1t = []36 h2t = []37 h3t = []38 for k in t:39 h1t.append(hermite(k,x1,y1,dy1))40 h2t.append(hermite(k,x2,y2,dy2))41 h3t.append(hermite(k,x3,y3,dy3))4243 plot(t,f(t),r-,t,h1t,b:,t,h2t,m-.,t,h3t,y--)44 legend([f,q_3,q_5,q_10],loc=lower center)45 axis([-5, 5, -1, 1])46 show() G. Faccanoni 532. Interpolation Jeudi 31 janvier 2013Mme avec linterpolation dHERMITE on voit que lerreur tend vers linfini quand n tend vers linfini pour une distribution uniformedes nuds.AlgorithmesLAGRANGE :Require: t , n,{(xi , yi )}ni=0p 0for i = 0 to n doLi 1for j = 0 to n doif j 6= i thenLi t x jxi x jLiend ifend forp p+ yi Liend forreturn pHERMITE :Require: t , n,{(xi , yi , y i )}ni=0p 0for i = 0 to n doLi 1for j = 0 to n doif j 6= i thenLi t x jxi x jLici 1xi x j+ ciend ifend forp p+ (yi (12(t xi ) ci )+ y i (t xi ))L2iend forreturn p2.4. Splines : interpolation par morceauxLinterpolation aux nuds de Chebyshev fournit une approximation prcise de toute fonction rgulire f dont lexpres-sion est connue. Quand f nest pas rgulire ou quand f nest connue quen certains points (qui ne concident pas avec lesnuds de Chebyshev), on peut recourir une autre mthode dinterpolation, appele interpolation composite.Dfinitiontant donn n + 1 points distincts x0, . . . , xn de [a;b] avec a = x0 < x1 < < xn = b, la fonction sk : [a;b] R est unespline de degr k relative aux nuds {xi } si{sk (x)|[xi ;xi+1] Rk [x], i = 0,1, . . . ,n1,sk C k1([a;b]).videmment tout polynme de degr k est une spline, mais en pratique une spline est constitue de polynmes diffrentssur chaque sous-intervalle. Il peut donc y avoir des discontinuits de la drive k-ime aux nuds internes x1, . . . , xn1.2.4.1. Interpolation linaire compositetant donn une distribution (non ncessairement uniforme) de nuds x0 < x1 < < xn , on approche f par unefonction continue qui, sur chaque intervalle [xi , xi+1], est dfinie par le segment joignant les deux points (xi , f (xi )) et(xi+1, f (xi+1)). Cette fonction est appele interpolation linaire par morceaux (ou spline linaire).Dfinition Splines linairestant donn n+1 points distincts x0, . . . , xn de [a;b] avec a = x0 < x1 < < xn = b, la fonction ` : [a;b]R est une splinelinaire relative aux nuds {xi } si {`(x)|[xi ;xi+1] R1, i = 0,1, . . . ,n1,` C 0([a;b]).Autrement dit, dans chaque sous-intervalle [xi ; xi +1], la fonction ` : [xi , xi+1] R est le segment qui connecte le point(xi , yi ) au point (xi+1, yi+1) ; elle scrit donc`(x)|[xi ;xi+1] = yi +yi+1 yixi+1xi(xxi )54 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationIl est intressant de noter que la commande plot(x,y), utilise pour afficher le graphe dune fonction f sur un intervalledonn [a,b], remplace en fait la fonction par une interpole linaire par morceaux, les points dinterpolation tant lescomposantes du vecteur x.Proposition ErreurSi yi = f (xi ) pour i = 0,1, . . . ,n et f : [a;b]R est une fonction donne de classeC 2([a;b]), alors on peut majorer lerreurdinterpolation au point x [a;b] parmaxx[a;b]| f (x)`(x)| (ba)28maxx[a;b]| f (x)|.Par consquent, pour tout x dans lintervalle [a;b], `(x) tend vers f (x) quand n +, condition que f soit assezrgulire.Le principale dfaut de cette interpolation par morceaux est que ` nest que continue. Or, dans des nombreuses appli-cations, il est prfrable dutiliser des fonctions ayant au moins une drive continue. On peut construire pour cela unefonction s3 comme linterpolation dHERMITE des points (xi , f (xi ), f (xi )) et (xi+1, f (xi+1), f (xi+1)) sur chaque [xi ; xi +1]pour i = 0,1, . . . ,n1.2.5. Approximation de drivesSoit f : RR une fonction de classe C 1(R), xi R et f sa drive. On sait quef (xi )= limh0f (xi +h) f (xi )h= limh0f (xi ) f (xi h)h= limh0f (xi +h/2) f (xi h/2)h.Une ide naturelle pour calculer numriquement f (xi )consiste donc se donner une valeur de h positive assez pe-tite et calculerf (xi ) +h f (xi )f (xi +h) f (xi )h, (2.4)f (xi ) h f (xi )f (xi ) f (xi h)h, (2.5)f (xi ) h f (xi )f (xi +h) f (xi h)2h, (2.6)On les appelles taux daccroissement ou diffrences finies? droite (ou progressive) +h ,? gauche (ou rtrograde) h ,? centre h .xyf (x)xif (xi )xi +hf (xi +h)xi hf (xi h)h hSi f est de classe C 3, en crivant le dveloppement de Taylor de f en x autour du point xif (xi h)= f (xi )h f (xi )+h2 f (xi )+O(h3),on obtientf (xi +h) f (xi )h= f (xi )+h f(xi )+h2 f (xi )+O((h)3) f (xi )h= f (xi )+O(h),f (xi ) f (xi h)h= f (xi ) f (xi )+h f(xi )h2 f (xi )+O(h3)h= f (xi )+O(h),f (xi +h) f (xi h)2h= f (xi )+h f(xi )+ (h)2 f (xi )+O(h3) f (xi )+h f (xi ) (h)2 f (xi )2h= f (xi )+O(h2).Donc, si f est assez rgulire, les diffrences finies convergent vers f (xi ) lorsque h tend vers zro. De plus, pour les diff-rences finies gauche et droite la convergence est dordre 1 alors que la diffrence finie centre converge lordre 2. G. Faccanoni 552. Interpolation Jeudi 31 janvier 2013ExempleOn compare pour diffrentes valeurs de h les valeurs donnes par ces trois formules pour la drive de la fonction sinus en 0 :1 from math import *23 def DFgauche(f,x,h):4 return (f(x+h)-f(x))/h56 def DFdroite(f,x,h):7 return (f(x)-f(x-h))/h89 def DFcentree(f,x,h):10 return (f(x+0.5*h)-f(x-0.5*h))/h1112 # TEST13 def f(x):14 return sin(x)1516 x = 017 for i in range(1,13):18 h = 10**(-i)19 dfg = DFgauche(f,x,h)20 dfd = DFdroite(f,x,h)21 dfc = DFcentree(f,x,h)22 print "%5.e %17.15f %17.15f %17.15f" %(h, dfg, dfd, dfc)On constate qu partir de h = 108 la valeur donne est exacte.1 1e-01 0.998334166468282 0.998334166468282 0.9995833854135672 1e-02 0.999983333416666 0.999983333416666 0.9999958333385423 1e-03 0.999999833333342 0.999999833333342 0.9999999583333344 1e-04 0.999999998333333 0.999999998333333 0.9999999995833335 1e-05 0.999999999983333 0.999999999983333 0.9999999999958336 1e-06 0.999999999999833 0.999999999999833 0.9999999999999587 1e-07 0.999999999999998 0.999999999999998 1.0000000000000008 1e-08 1.000000000000000 1.000000000000000 1.0000000000000009 1e-09 1.000000000000000 1.000000000000000 1.00000000000000010 1e-10 1.000000000000000 1.000000000000000 1.00000000000000011 1e-11 1.000000000000000 1.000000000000000 1.00000000000000012 1e-12 1.000000000000000 1.000000000000000 1.000000000000000Dfinition Erreur de troncatureLes diffrences| f (xi )+h |, | f (xi )h |,sont appeles erreur de troncature. Elles sont dordre h et on dit que les diffrences finies sont consistantes lordre 1 enh. De mme, lerreur de troncature| f (xi )h |,est dordre h2 et on dit que la diffrence finie est consistante lordre 2 en h. Elle est ainsi plus prcise que les formulesde diffrences finies progressives et rtrogrades.Remarque Erreurs darrondisLes erreurs de troncature diminuent lorsque h diminue. En revanche, les erreurs darrondis augmentent lorsque hdiminue. En effet, le calcul de h se fait avec une prcision absolue de lordre de 2 | f (x)|/h o 1015. Parailleurs, daprs lingalit de Taylor-Lagrange, on a | f (xi )h | h2 max | f (x)|. Lingalit triangulaire entrane alors| f (xi )flt(h )| h2 max | f (x)|+2| f (x)|h . Une tude rapide de la fonction h 7 h2 max | f (x)|+2| f (x)|h montre que cettefonction possde un minimum absolu sur R+ atteint en h = 2| f (x)|max | f (x)| . Pour une fonction suffisamment rgulire, ilest donc judicieux de choisir une valeur de h qui soit de lordre dep, cest--dire de lordre de 108.56 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationExemplePar exemple, en utilisant le code de lexemple prcdent pour calculer la drive premire de la fonctionp1+x en 0, on obtient1 1e-01 0.488088481701516 0.513167019494862 0.5001564211506362 1e-02 0.498756211208895 0.501256289338003 0.5000015625170943 1e-03 0.499875062460964 0.500125062539047 0.5000000156250024 1e-04 0.499987500623966 0.500012500624925 0.5000000001575975 1e-05 0.499998750003172 0.500001250003379 0.5000000000143786 1e-06 0.499999875058776 0.500000124969979 0.4999999999588677 1e-07 0.499999988079480 0.500000012504387 0.4999999991817118 1e-08 0.499999996961265 0.500000008063495 0.4999999969612659 1e-09 0.500000041370185 0.500000041370185 0.50000004137018510 1e-10 0.500000041370185 0.500000041370185 0.50000004137018511 1e-11 0.500000041370185 0.500000041370185 0.50000004137018512 1e-12 0.500044450291171 0.500044450291171 0.50004445029117113 1e-13 0.499600361081320 0.500710584105946 0.49849013805669514 1e-14 0.488498130835069 0.499600361081320 0.499600361081320Cette fois-ci on voit apparatre trs nettement la perte de prcision lorsque h est trop petit.De manire analogue, la drive seconde peut tre approche parf (xi ) f (xi +h)2 f (xi )+ f (xi h)(h)2.et on a lestimation derreur :f (xi +h)2 f (xi )+ f (xi h)h2= f (xi )+h f(xi )+ (h)2 f (xi )+O((h)3)2 f (xi )+ f (xi )h f (xi )+ (h)2 f (xi )h2= f (xi )+O(h2)., , , , , , , , , , , , , , Conclusion , , , , , , , , , , , , ,1. Approcher un ensemble de donnes ou une fonction f dans [a,b] consiste trouver une fonction f capable de lesreprsenter avec suffisamment de prcision ; linterpolation polynomiale consiste dterminer un polynme p telque p(xi )= yi , o les { xi } sont des nuds donns et les{yi}sont soit de la forme{f (xi )}, soit des valeurs prescrites ;2. si les n+1 nuds { xi } sont distincts, il existe un unique polynme de degr infrieur ou gal n qui interpole lesvaleurs donnes{yi}aux nuds { xi } ;3. pour une distribution de nuds quidistants dans [a,b], lerreur dinterpolation en un point quelconque de [a,b] netend pas ncessairement vers 0 quand n tend vers linfini. Nanmoins, il existe des nuds particuliers, par exempleceux de CHEBYSHEV, pour lesquels on a cette proprit de convergence pour toutes les fonctions continment diff-rentiables ;4. linterpole linaire par morceaux dune fonction f est la fonction continue, linaire par morceaux, `, qui interpolef en un ensemble de nuds { xi }. Avec cette approximation, on vite le phnomne de RUNGE quand le nombre denuds augmente.Ce quon na pas dit1. Linterpolation trigonomtrique est bien adapte lapproximation des fonctions priodiques. Elle est base sur lechoix dune fonction combinaison linaire de sinus et de cosinus. La FFT est un algorithme trs efficace qui permet lecalcul des coefficients de Fourier dune fonction dinterpolation trigonomtrique partir de ses valeurs aux nuds.Elle admet une inverse, la IFFT, galement trs rapide.2. Linterpolation par des splines cubiques permet dapprocher f par une fonction cubique par morceaux deux foiscontinment drivable.3. Augmenter le degr dun polynme dinterpolation de Lagrange namliore pas toujours lapproximation dune fonc-tion donne. Ce problme peut tre rsolu avec linterpolation composite (avec des fonctions linaires par morceauou des splines cubiques). Nanmoins, aucune des deux mthodes nest adapte lextrapolation dinformations partir des donnes disponibles, cest--dire, la gnration de nouvelles valeurs en des points situs lextrieur delintervalle contenant les nuds dinterpolation. Pour cela on verra lapproximation au sens des moindres carres. G. Faccanoni 572. Interpolation Jeudi 31 janvier 20134. Les polynmes dinterpolation peuvent aussi approcher des donnes ou des fonctions en plusieurs dimensions. Enparticulier, linterpolation composite, base sur des fonctions linaires par morceaux ou des splines cubiques, estbien adapte quand le domaine est subdivis en polygones en 2D (triangles ou quadrilatres) ou en polydres en3D (ttradres ou prismes).58 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationTTTTTTTTTTTTT Codes Python TTTTTTTTTTTTVoici les function python des mthodes illustres dans ce chapitre : t est le point o on veut valuer le polynmedinterpolation, x est une liste qui contient les abscisses des points dinterpolation, y est une liste qui contient les ordonnesdes points dinterpolation et dy est une liste qui contient la valeur de la drive aux points dinterpolation. Elles renvoientlvaluation du polynme en t.Mthodes numriques.1 def lagrange(t,x,y):2 p = 03 n = len(x)4 L = [1 for i in range(n)]5 for i in range(n):6 for j in range(n):7 if j!=i:8 L[i] *= (t-x[j])/(x[i]-x[j])9 p += y[i]*L[i]10 return p1112 def hermite(t,x,y,dy):13 p = 014 n = len(x)15 L = [1 for i in range(n)]16 c = [0 for i in range(n)]17 for i in range(n):18 for j in range(len(x)):19 if j!=i:20 L[i] *= (t-x[j])/(x[i]-x[j])21 c[i] += 1./(x[i]-x[j])22 p += (y[i]*(1.-2.*(t-x[i])*c[i])+dy[i]*(t-x[i]))*L[i]**223 return pet voici un exemple dutilisation de ces fonctions :Cas test.24 from matplotlib.pylab import *2526 # INPUT27 x = [1,2,3,4,5]28 y = [0,1,0,1,0]29 dy = [-1,1,0,-1,0]3031 # Calcul des polynomes en un point32 t = 1.533 print "La valeur du polynome de Lagrange en", t, "est", lagrange(t,x,y)34 print "La valeur du polynome de Hermite en", t, "est", hermite(t,x,y,dy)3536 # Calcul des polynomes en plusieurs pointd dun intervalle pour affichage37 axis([0, 6, -2, 2])38 t = arange(0,6,.1)39 lt = []40 ht = []41 for k in t:42 lt.append(lagrange(k,x,y))43 ht.append(hermite(k,x,y,dy))44 plot(x,y,ro,t,lt,b,t,ht,m)45 show() G. Faccanoni 592. Interpolation Jeudi 31 janvier 2013.............. Exercices .............Exercice 2.1Construire le polynme de Lagrange P qui interpole les points (0,2), (1,1), (2,2) et (3,3).CORRECTION. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .Ici n = 3 donc on aP (x)= y0 (xx1)(xx2)(xx3)(x0x1)(x0x2)(x0x3)+ y1 (xx0)(xx2)(xx3)(x1x0)(x1x2)(x1x3)+ y2 (xx0)(xx1)(xx3)(x2x0)(x2x1)(x2x3)+ y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)== 2 (x1)(x2)(x3)(01)(02)(03) +(x0)(x2)(x3)(10)(12)(13)+2 (x0)(x1)(x3)(20)(21)(23) +3(x0)(x1)(x2)(30)(31)(32) == (x1)(x2)(x3)3 +x(x2)(x3)2x(x1)(x3)+ x(x1)(x2)2=13x3+2x2 83x+2.P (x)xy0 112233Sinon, comme on cherche p(x)=3i=0 ai xi un polynme de degr 3, il sagit de trouver les 4 coefficients a0, a1, a2 et a3solution du systme linairea0+a1 0+a2 02+a3 03 = 2a0+a1 1+a2 12+a3 13 = 1a0+a1 2+a2 22+a3 23 = 2a0+a1 3+a2 32+a3 33 = 3i.e.1 0 0 01 1 1 11 2 4 81 3 9 27a0a1a2a3=21231 0 0 0 21 1 1 1 11 2 4 8 21 3 9 27 3L2L2L1L3L3L1L4L4L11 0 0 0 20 1 1 1 10 2 4 8 00 3 9 27 1 L3L32L2L4L43L21 0 0 0 20 1 1 1 10 0 2 6 20 0 6 24 4 L4L43L31 0 0 0 20 1 1 1 10 0 2 6 20 0 0 6 2donc a3 = 13 , a2 = 2, a1 = 83 et a0 = 2.Exercice 2.2Trouver le polynme de lespace vectoriel Vec{1+x2, x4} qui interpole les points (0,1) et (1,3).CORRECTION.Il sagit de trouver un polynme p(x) qui soit combinai-son linaire des deux polynmes assigns (i.e. p(x) = (1+x2)+(x4)) et qui interpole les deux points (0,1) et (1,3) :{p(0)= 1,p(1)= 3, {(1+02)+(04)= 1,(1+12)+(14)= 3,do = 1 et = 1. Le polynme cherch est donc le poly-nme p(x)= 1+x2+x4.p(x)0113xy60 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationExercice 2.31. Construire le polynme de Lagrange P qui interpole les points (1,2), (0,1), (1,2) et (2,3).2. Soit Q le polynme de Lagrange qui interpole les points (1,2), (0,1), (1,2). Montrer quil existe un rel tel que :Q(x)P (x)=(x+1)x(x1).CORRECTION. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .1. Ici n = 3 donc on aP (x)= y0 (xx1)(xx2)(xx3)(x0x1)(x0x2)(x0x3)+ y1 (xx0)(xx2)(xx3)(x1x0)(x1x2)(x1x3)+ y2 (xx0)(xx1)(xx3)(x2x0)(x2x1)(x2x3)+ y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)= x(x1)(x2)3 +(x+1)(x1)(x2)2 (x+1)x(x2)+ (x+1)x(x1)2==13x3+x2+ 13x+1.2. Par constructionQ(1)= P (1),Q(0)= P (0),Q(1)= P (1),donc le polynme Q(x)P (x) sannule en 1, en 0 et en 1, ceci signifie quil existe un polynme R(x) tel queQ(x)P (x)=R(x)(x+1)x(x1).Puisque P (x) a degr 3 et Q(x) a degr 2, le polynme Q(x)P (x) a degr 3, donc le polynme R(x) quon a mis enfacteur a degr 0 (i.e. R(x) est une constante).Si on na pas remarqu a, on peut tout de mme faire tous les calculs : dans ce cas n = 2 donc on aQ(x)= y0 (xx1)(xx2)(x0x1)(x0x2)+ y1 (xx0)(xx2)(x1x0)(x1x2)+ y2 (xx0)(xx1)(x2x0)(x2x1)= x(x1) (x+1)(x1)+ (x+1)x= x2+1.AinsiQ(x)P (x)= y0 (xx1)(xx2)(x0x1)(x0x2)[1 xx3x0x3]+ y1 (xx0)(xx2)(x1x0)(x1x2)[1 xx3x1x3]+ y2 (xx0)(xx1)(x2x0)(x2x1)[1 xx3x2x3] y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)=y0 (xx0)(xx1)(xx2)(x0x1)(x0x2)(x0x3) y1 (xx0)(xx1)(xx2)(x1x0)(x1x2)(x1x3) y2 (xx0)(xx1)(xx2)(x2x0)(x2x1)(x2x3) y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)=[y0(x0x1)(x0x2)(x0x3)+ y1(x1x0)(x1x2)(x1x3)+ y2(x2x0)(x2x1)(x2x3)+ y3(x3x0)(x3x1)(x3x2)](xx0)(xx1)(xx2)= (x+1)x(x1)3 G. Faccanoni 612. Interpolation Jeudi 31 janvier 2013et = 13 . Sinon directementQ(x)P (x)= x2+1+ 13x3x2+ 13x1= 13x3+ 13x = (x+1)x(x1)3=x(x+1)(x1)avec = 13 .P (x)Q(x)xy12x00x112x223x3Exercice 2.41. Construire le polynme de Lagrange P qui interpole les trois points (1,e), (0,1) et (1,e).2. Sans faire de calculs, donner lexpression du polynme de Lagrange Q qui interpole les trois points (1,1), (0,0)et (1,1).3. Trouver le polynme de lespace vectoriel Vec{1, x, x2} qui interpole les trois points (1,1), (0,0) et (1,1).CORRECTION.1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .Ici n = 2 donc on aP (x)= y0 (xx1)(xx2)(x0x1)(x0x2)+ y1 (xx0)(xx2)(x1x0)(x1x2)+ y2 (xx0)(xx1)(x2x0)(x2x1)== e x(x1)2 (x+1)(x1)+e (x+1)x2== (e1)x2+1.P (x)xy1e112.62 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationIl suffit de changer les coefficients yi dans lexpressionprcdente :Q(x)=x(x1)2 (x+1)x2=x2.Q(x)xy1 0 13. Il sagit de trouver un polynme p(x) qui soit combinaison linaire des deux polynmes assigns (i.e. p(x)=+x+x2) et qui interpole les trois points (1,1), (0,0) et (1,1) :p(1)= 1,p(0)= 0,p(1)=1,+=1,= 0,++=1,do = 0, = 0 et =1. Le polynme cherch est donc le polynme p(x)=x2. En fait, il suffisait de remarquerque le polynme Q Vec{1, x, x2} pour conclure que le polynme cherch est Q.Exercice 2.51. Construire le polynme de Lagrange P qui interpole les points (1,1), (0,1), (1,2) et (2,3).2. Soit Q le polynme de Lagrange qui interpole les points (1,1), (0,1), (1,2). Montrer quil existe un rel tel que :Q(x)P (x)=(x+1)x(x1).CORRECTION. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .1. Ici n = 3 donc on aP (x)= y0 (xx1)(xx2)(xx3)(x0x1)(x0x2)(x0x3)+ y1 (xx0)(xx2)(xx3)(x1x0)(x1x2)(x1x3)+ y2 (xx0)(xx1)(xx3)(x2x0)(x2x1)(x2x3)+ y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)= x(x1)(x2)6 +(x+1)(x1)(x2)2 (x+1)x(x2)+ (x+1)x(x1)2==16x3+ 12x2+ 23x+1.2. Par constructionQ(1)= P (1),Q(0)= P (0),Q(1)= P (1),donc le polynme Q(x)P (x) sannule en 1, en 0 et en 1, ceci signifie quil existe un polynme R(x) tel queQ(x)P (x)=R(x)(x+1)x(x1).Puisque P (x) a degr 3 et Q(x) a degr 2, le polynme Q(x)P (x) a degr 3, donc le polynme R(x) quon a mis enfacteur a degr 0 (i.e. R(x) est une constante).Si on na pas remarqu a, on peut tout de mme faire tous les calculs : dans ce cas n = 2 donc on aQ(x)= y0 (xx1)(xx2)(x0x1)(x0x2)+ y1 (xx0)(xx2)(x1x0)(x1x2)+ y2 (xx0)(xx1)(x2x0)(x2x1) G. Faccanoni 632. Interpolation Jeudi 31 janvier 2013= x(x1)2 (x+1)(x1)+ (x+1)x= 12x2+ 12x+1.AinsiQ(x)P (x)= y0 (xx1)(xx2)(x0x1)(x0x2)[1 xx3x0x3]+ y1 (xx0)(xx2)(x1x0)(x1x2)[1 xx3x1x3]+ y2 (xx0)(xx1)(x2x0)(x2x1)[1 xx3x2x3] y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)=y0 (xx0)(xx1)(xx2)(x0x1)(x0x2)(x0x3) y1 (xx0)(xx1)(xx2)(x1x0)(x1x2)(x1x3) y2 (xx0)(xx1)(xx2)(x2x0)(x2x1)(x2x3) y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)=[y0(x0x1)(x0x2)(x0x3)+ y1(x1x0)(x1x2)(x1x3)+ y2(x2x0)(x2x1)(x2x3)+ y3(x3x0)(x3x1)(x3x2)](xx0)(xx1)(xx2)= (x+1)x(x1)6et = 16 . Sinon directementQ(x)P (x)= 12x2+ 12x+1+ 16x3 12x2 23x1= 16x3 16x = 16x(x21)=x(x+1)(x1)avec = 16 .P (x)Q(x)xy11x00x112x223x3Exercice 2.61. Construire le polynme de Lagrange P qui interpole les trois points (1,), (0,) et (1,) o et sont des rels.2. Si =, donner le degr de P .3. Montrer que P est pair. Peut-on avoir P de degr 1 ?CORRECTION.1. Construire le polynme de Lagrange P qui interpole les trois points (1,), (0,) et (1,) o et sont des rels.Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .64 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationIci n = 2 donc on aP (x)= y0 (xx1)(xx2)(x0x1)(x0x2)+ y1 (xx0)(xx2)(x1x0)(x1x2)+ y2 (xx0)(xx1)(x2x0)(x2x1)+=x(x1)2+ (x+1)(x1)1 +(x+1)x2== 2x(x1)(x+1)(x1)+ 2x(x+1)= ()x2+.2. Si =, P = qui est un polynme de degr 0.3. P (x)= P (x) donc P est pair. Donc P ne peut pas tre de degr 1 car un polynme de degr 1 est de la forme a0+a1xqui ne peut pas tre pair.Exercice 2.7Vrifier que le polynme dinterpolation dHERMITE dune fonction f en un point concide avec le polynme de TAYLORdordre 1 de f en ce point.CORRECTION. Le polynme dinterpolation dHERMITE en un point (x0, f (x0), f (x0)) est lunique polynme q R1[x] quivrifie q(x0)= f (x0) et q (x0)= f (x0). On cherche alors a0 et a1 tels que q(x)= a0+a1x :{q(x0)= f (x0),q (x0)= f (x0),{a0+a1x0 = f (x0),a1 = f (x0),{a0 = f (x0)x0 f (x0),a1 = f (x0),donc q(x)= f (x0)+ (xx0) f (x0).Exercice 2.8Soit f une fonction de classeC 1 et x0 D f . Soit ` le polynme dinterpolation de LAGRANGE de f en x0 et h le polynmedinterpolation dHERMITE en x0. Calculer h(x)`(x).CORRECTION. Le polynme dinterpolation de LAGRANGE de f en x0 est lunique polynme ` R0[x] qui vrifie `(x0) =f (x0), donc `(x) = f (x0). Le polynme dinterpolation dHERMITE de f en x0 est lunique polynme h R1[x] qui vrifieh(x0)= f (x0) et h(x0)= f (x0). On cherche alors a0 et a1 tels que h(x)= a0+a1x :{h(x0)= f (x0),h(x0)= f (x0),{a0+a1x0 = f (x0),a1 = f (x0),{a0 = f (x0)x0 f (x0),a1 = f (x0),donc h(x)= f (x0)+ (xx0) f (x0) et h(x)`(x)= f (x0)+ (xx0) f (x0) f (x0)= (xx0) f (x0).Exercice 2.9Soit f : RR une fonction de classeC 1(R) qui sannule au moins une fois et dont la drive ne sannule pas. Soit x0 D fdonn. Pour i N construisons la suite (xi )i comme suit : xi+1 est la racine du polynme interpolateur dHERMITE de fen xi . Quelle mthode reconnait-on ? Justifier la rponse.CORRECTION. Le polynme dHERMITE dune fonction f en xi a quation q(x)= f (xi )+(xxi ) f (xi ) : il sagit de la droitetangente au graphe de f en xi . On cherche xi+1 tel que f (xi )+ (x xi ) f (xi ) = 0, do xi+1 = xi f (xi )f (xi ) . On a alors la suitedfinie par rcurrence {x0 donne,xi+1 = xi f (xi )f (xi ) ,qui correspond la mthode de NEWTON pour lapproximation de la racine de f .Exercice 2.10Soit f une fonction de classe C 1([1,1]) et p le polynme interpolateur dHermite (de degr 3) de f vrifiantp(1)= f (1), p (1)= f (1), p(1)= f (1), p (1)= f (1). G. Faccanoni 652. Interpolation Jeudi 31 janvier 2013crire le polynme p.CORRECTION. On a deux points dinterpolation (n = 1), on cherche alors un polynme de R3[x]. On a deux mthodespour calculer le polynme interpolateur dHERMITE :Premire mthode : le polynme interpolateur dHermite scritp(x)=ni=0[yi (12(xxi )ci )+ y i (xxi )] nj=0j 6=i(xx j )2(xi x j )2 o ci =nj=0j 6=i1xi x j.Pour n = 1 on a alorsp(x)= y0(12(xx0)(1x0x1))((xx1)(x0x1))2+ y 0(xx0)((xx1)(x0x1))2+ y1(12(xx1)(1x1x0))((xx0)(x1x0))2+ y 1(xx1)((xx0)(x1x0))2.Dans notre cas x0 =1, x1 = 1, y0 = f (1), y1 = f (1), y 0 = f (1), y 1 = f (1) doncp(x)= 14[f (1)(x+2)(x1)2+ f (1)(x+1)(x1)2+ f (1)(2x)(x+1)2+ f (1)(x1)(x+1)2]= 14[f (1)(x33x+2)+ f (1)(x3x2x+1)+ f (1)(x3+3x+2)+ f (1)(x3+x2x1)]= 2 f (1)+ f(1)+2 f (1) f (1)4+ 3 f (1)3 f (1) f(1) f (1)4x+ f(1) f (1)4x2+ f (1)+ f(1) f (1)+ f (1)4x3.Le polynme interpolateur dHermite est donc le polynmep(x)=+x+x2+x3o= 2 f (1)+2 f (1)+ f(1) f (1)4, = 3 f (1)+3 f (1) f(1) f (1)4,= f(1)+ f (1)4, = f (1) f (1)+ f(1)+ f (1)4.Deuxime mthode : le polynme interpolateur dHermite est un polynme de degr 2n+1. On cherche donc un poly-nmep(x)=+x+x2+x3tel quep(1)= f (1), p (1)= f (1), p(1)= f (1), p (1)= f (1),cest--dire tel que += f (1),+++= f (1),2+3= f (1),+2+3= f (1).En utilisant la mthode dlimination de Gauss on obtient :[A|b]=1 1 1 1 f (1)1 1 1 1 f (1)0 1 2 3 f (1)0 1 2 3 f (1) L2L2L11 1 1 1 f (1)0 2 0 2 f (1) f (1)0 1 2 3 f (1)0 1 2 3 f (1)L3L3 12 L2L4L4 12 L31 1 1 1 f (1)0 2 0 2 f (1) f (1)0 0 2 2 f (1) f (1) f (1)20 0 2 2 f (1) f (1) f (1)2 L4L4+L31 1 1 1 f (1)0 2 0 2 f (1) f (1)0 0 2 2 f (1) f (1) f (1)20 0 0 4 f (1)+ f (1) f (1)+ f (1)66 G. FaccanoniJeudi 31 janvier 2013 2. Interpolationainsi= 2 f (1)+2 f (1)+ f(1) f (1)4, = 3 f (1)+3 f (1) f(1) f (1)4,= f(1)+ f (1)4, = f (1) f (1)+ f(1)+ f (1)4.Exercice 2.111. Construire le polynme de Lagrange p qui interpole les points (1,0), (0,0), (1,0) et (2,0).2. Construire lensemble des polynmes de degr 4 qui interpolent les points (1,0), (0,0), (1,0) et (2,0).3. Construire le polynme dHermite Q qui interpole les points (1,0,1) et (2,0,1).CORRECTION.1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .Ici n = 3 et yi = 0 pour i = 0,1,2,3 donc p3(x)= 0.2. Comme les points donns appartiennent tous la droite dquation y = 0, il sagit de construire les polynmes dedegr 4 qui ont 4 racines relles distinctes { x1, x2, x3, x4 }. Ils sont tous de la forme ra(x)= a(xx1)(xx2)(xx3)(xx4) ; ici donc ra(x)= a(x+1)x(x1)(x2)= a(x42x3x2+2x).3. tant donn n+1 points distincts x0, . . . , xn et n+1 couples correspondantes (y0, y 0), . . . , (yn , y n), le polynme dHERMITEQ de degr N = 2n+1 tel que Q(xi )= yi et Q (xi )= y i , pour i = 0, . . .n scritQ(x)=ni=0yi Ai (x)+ y i Bi (x) RN [x] oLi (x)=nj=0j 6=ixx jxix j ,ci =nj=0j 6=i1xix j ,Ai (x)= (12(xxi )ci )(Li (x))2,Bi (x)= (xxi )(Li (x))2.Ici n = 1 et le polynme de Hermite scritQ(x)= y0 A0+ y 0B0+ y1 A1+ y 0B1 =B0B1= (xx0)(xx1x0x1)2 (xx1)(xx0x1x0)2= (x+1)(x23)2 (x2)(x+13)2= (x2)2(x+1) (x2)(x+1)29= 3(x2)(x+1)9= x2+x+23.Si on a oubli la formule, il suffit de remarquer quon cherche un polynme de degr 3 qui a comme racines 1 et 2et donc qui scrit Q(x)= (x+1)(x2)(ax+b)= ax3+ (a+b)x2+ (b2a)x2b ; de plus on sait que Q (1)= 1 etQ (2)=1, on trouve alors a et b en rsolvant le systme linaire{3a(1)2+2(a+b)(1)+ (b2a)= 1,3a(2)2+2(a+b)(2)+ (b2a)=1, {3a+2a2bb2a = 1,12a4a+4bb2a =1, {a = 0,b =1/3.On obtient le polynme Q(x)= (x+1)(x2)3 .Une autre ide pour calculer le polynme Q sans utiliser la formule ni la remarque prcdente est de calculer directe-ment le polynme selon la dfinition : on cherche un polynme de degr 3, donc de la forme Q(x)= a0+a1x+a2x2+a3x3, qui vrifie Q(1)= 0, Q(2)= 0, Q (1)= 1 et Q (2)=1. On doit alors rsoudre le systme linairea0 a1 +a2 a3x3 = 0a0+2a1+4a2 +8a3x3 = 0a12a2 +3a3x3 = 1a1+4a2+12a3x3=1 G. Faccanoni 672. Interpolation Jeudi 31 janvier 2013quon peut rcrire sous la formeAa= b avecA=1 1 1 11 2 4 80 1 2 30 1 4 12 , a=a0a1a2a3 et b=0011On utilise la mthode dlimination de Gauss :(A|b)=1 1 1 1 01 2 4 8 00 1 2 3 10 1 4 12 1 L2L2L11 1 1 1 00 3 2 9 00 1 2 3 10 1 4 12 1L3L3L2/3L4L4L3/31 1 1 1 00 3 2 9 00 0 3 0 10 0 3 9 1 L4L4+L31 1 1 1 00 3 2 9 00 0 3 0 10 0 0 9 0et finalement on obtienta3 = 0, a2 =13, a1 = 13, a0 = 23,do Q(x)= x2+x+23.P (x)ra(x)Q(x)y = x+1y =x+2xy1 0 1 2Exercice 2.12Lesprance de vie dans un pays a volue dans le temps selon le tableau suivant :Anne 1975 1980 1985 1990Esprance 72,8 74,2 75,2 76,4Utiliser linterpolation de Lagrange pour estimer lesprance de vie en 1977, 1983 et 1988. La comparer avec une inter-polation linaire par morceaux.CORRECTION. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(xi , yi )}ni=0 scritpn(x)=ni=0yi nj=0j 6=ixx jxi x j .Ici n = 3 et si on choisit de poser x0 = 0 pour lanne 1975, x1 = 5 pour lanne 1980 etc., on aP (x)= y0 (xx1)(xx2)(xx3)(x0x1)(x0x2)(x0x3)+ y1 (xx0)(xx2)(xx3)(x1x0)(x1x2)(x1x3)+ y2 (xx0)(xx1)(xx3)(x2x0)(x2x1)(x2x3)+ y3 (xx0)(xx1)(xx2)(x3x0)(x3x1)(x3x2)== 72,8 (x5)(x10)(x15)(05)(010)(015) +74,2(x0)(x10)(x15)(50)(510)(515)+75,2 (x0)(x5)(x15)(100)(105)(1015) +76,4(x0)(x5)(x10)(150)(155)(1510) == 72,8(x5)(x10)(x15)+374,2x(x10)(x15)375,2x(x5)(x15)+76,4x(x5)(x10)750On a alors que68 G. FaccanoniJeudi 31 janvier 2013 2. Interpolation? lesprance de vie en 1977 correspond P (2)= 73,45,? lesprance de vie en 1983 correspond P (8)= 74,81,? lesprance de vie en 1988 correspond P (13)= 75,86.Si on considre une interpolation linaire par morceaux (splines de degr 1) ; on obtient que lesprance de vie est sous-estim en 1977 et sur-estim en 1988 par rapport linterpolation prcdente car? lesprance de vie en 1977 correspond 74,272,850 2+72,8= 73,36< P (2),? lesprance de vie en 1983 correspond 75,274,2105 8+73,2= 74,8 P (8),? lesprance de vie en 1988 correspond 76,474,21510 13+72,8= 75,92> P (13).P (x)xy197572,8198074,2198575,2199076,4197773,45198374,81198875,86Exercice 2.13Pour calculer le zro dune fonction y = f (x) inversible sur un intervalle [a;b] on peut utiliser linterpolation : aprs avoirvalu f sur une discrtisation xi de [a;b], on interpole lensemble{(yi , xi )}ni=0 et on obtient un polynme x = p(y) telquef (x)= 0 x = p(0).Utiliser cette mthode pour valuer lunique racine de la fonction f (x)= ex 2 dans lintervalle [0;1] avec trois pointsdinterpolation.Comparer ensuite le rsultat obtenu avec lapproximation du zro de f obtenue par la mthode de Newton en 3 itrations partir de x0 = 0.CORRECTION. Calculons dabord les valeurs interpoleri xi yi0 0 11 12pe22 1 e2Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(yi , xi )}ni=0 scritpn(y)=ni=0xi nj=0j 6=iy y jyi y j .Ici n = 2 donc on ap(y)= x0 (y y1)(y y2)(y0 y1)(y0 y2)+x1 (y y0)(y y2)(y1 y0)(y1 y2)+x2 (y y0)(y y1)(y2 y0)(y2 y1)= 12(y +1)(y e+2)(pe2+1)(pe2e+2) +(y +1)(y pe+2)(e2+1)(e2pe+2) .Par consquent une approximation de la racine de f est p(0)= 12 e+2(pe2+1)(pe2e+2) +pe+2(e2+1)(e2pe+2) 0.7087486785.La mthode de Newton scrit {x0 = 0,xk+1 = xk exk2exk = xk 1+ 2exk , G. Faccanoni 692. Interpolation Jeudi 31 janvier 2013on obtient ainsi la suitek xk0 01 12 2e 0.73575888253 2ee 2e 2e 0.6940422999Remarque : comme il ny a que trois points dinterpolation, on pourrait calculer directement le polynme interpolateurde f plutt que de sa fonction rciproque et chercher les zros de ce polynme directement car il sagit dun polynme dedegr 2. Cependant cette ide ne peu pas tre gnralise au cas de plus de trois points dinterpolation car on ne connaitpas de formule gnrale pour le calcul des zros dun polynme de degr n 3.Exercice 2.14Soit f une fonction continue dont on connait les valeurs uniquement pour t entier, cest--dire on suppose connues lesvaleurs f () pour tout Z. Si t R \Z, on dfinit une approximation p(t ) de f (t ) en interpolant la fonction f par unpolynme de degr 3 aux quatre points entiers les plus proches de t . Calculer p(t ) et crire un algorithme qui fournitp(t ).CORRECTION. Soit ` = E [t ] la partie entire 2 de t . Alors t [`;`+1] et il sagit de dfinir le polynme p interpolant lespoints(1, f (1)), (, f ()), (+1, f (+1)), (+2, f (+2)),ce qui donneP (t )=3i=0 f (1+ i ) 3j=0j 6=it (1+ j )(1+ i ) (1+ j )= 3i=0 f (1+ i ) 3j=0j 6=it +1 ji j= f (1)6(t )(t 1)(t 2)+ f ()2(t +1)(t 1)(t 2) f (+1)2(t +1)(t )(t 2)+ f (+2)6(t +1)(t )(t 1)Require: f : ZR, t E [t ]x0 1x1 x2 +1x3 +2y 0for i = 0 to 3 doL 1for j = 0 to 3 doif j 6= i thenL t x jxi x jLend ifend fory y + f (xi )Lend forreturn y2. Pour tout nombre rel x, la partie entire note E(x) est le plus grand entier relatif infrieur ou gal x. Par exemple, E(2.3) = 2, E(2) = 2 etE(2.3)=3. La fonction partie entire est aussi note [x] (ou bxc par les anglo-saxons). On a toujours E(x) x < E(x)+1 avec galit si et seulement si xest un entier relatif. Pour tout entier relatif k et et pour tout nombre rel x, on a E(x+k)= E(x)+k. Larrondi lentier le plus proche dun rel x peut treexprim par E(x+0.5).70 G. FaccanoniJeudi 31 janvier 2013 2. InterpolationExercice 2.151. Calculer le polynme p de LAGRANGE qui interpole la fonction f (x) = 4x aux points dabscisse x0 = 1, x1 = 2 etx2 = 4. Esquisser les graphes de f et de p pour x [1,4].2. Vrifier que lerreur (x) f (x)p(x) prend sa valeur maximale en un unique point x dans lintervalle [2,4]. Cal-culer ensuite x 101 prs (on pourra utiliser la mthode de dichotomie).3. Comparer la fonction avec lestimation thorique de lerreur.CORRECTION.1. f est une hyperbole et p est la parabole qui passe par les points (1,4), (2,2) et (4,1) : p(x)= 12 x2 72 x+7fp412214yx2. On a (x) f (x)p(x)= 4x 7+ 72 x 12 x2. Comme (x)= 72 x 4x2 , il sagit de trouver x tel que (x)= 0. Une simplecomparaison des graphes des fonctions u : x 7 72 x et v : x 7 4x2 montre que (x) = 0 admet une solution danslintervalle [1,2] et une solution dans lintervalle [2,4] (en effet, (1) = u(1) v(1) = 2.54 < 0, (2) = u(2) v(2) =1.51> 0 et (4)= u(4)v(4)< 0). On a (x)=1+8/x3 : lerreur tant convexe pour x < 2 et concave pour x > 2, onconclut quelle prend sa valeur maximale pour x = x [2,4]. On cherche alors x [2,4] tel que (x)= 0 par la mthodede dichotomie. Pour que lerreur soit infrieur 101, il faut E(log2(42101))+1= E (2log2(2)+ log2(5))+1= 5 tapes :k 0 1 2 3 4 5[ak ,bk ] [2,4] [3,4][3, 72] [3, 134] [3, 258] [ 4916 ,258]`k 37213425849169932bk ak 2> 101 1> 101 0.5> 101 0.25> 101 0.125> 101 0.0625< 101Lerreur prend sa valeur maximale pour x 9932 = 3.09375 et vaut (x) 0.01166653913.3. Comparons ce rsultat avec lestimation thorique de lerreur. n = 2 et f est de classe C([1,4]), donc pour toutx [1,2] il existe x [1,4] tel que(x)= f(x )3!(x1)(x2)(x4)= 34x(x37x2+14x8).Comme (x)= 4x 7+ 72 x 12 x2, on obtient x = 4p6x. G. Faccanoni 713. QuadratureCalculer ba f (x) dx o f est une fonction donneDans les mthodes dintgration, lintgrale dune fonction continue sur un intervalle born [a,b] est remplace par unesomme finie. Le choix de la subdivision de lintervalle dintgration et celui des coefficients qui interviennent dans lasomme approchant lintgrale sont des critres essentiels pour minimiser lerreur. Ces mthodes se rpartissent en deuxgrandes catgories : les mthodes composes dans lesquelles la fonction est remplace par un polynme dinterpolationsur chaque intervalle lmentaire [xi , xi+1] de la subdivision de [a,b] (i.e. [a,b] = i [xi , xi+1]) et les mthodes de Gaussfondes sur les polynmes orthogonaux pour lesquelles les points de la subdivision sont imposs.3.1. Principes gnrauxSoit f une fonction relle intgrable sur lintervalle [a;b]. Le calcul explicite de lintgrale dfinie I ( f )= ba f (x)dx peuttre difficile, voire impossible. On appelle formule de quadrature ou formule dintgration numrique toute formule per-mettant de calculer une approximation de I ( f ). Une possibilit consiste remplacer f par une approximation fn , o n estun entier positif, et calculer I ( fn) au lieu de I ( f ). En posant In( f )= I ( fn) (la dpendance par rapports aux extrmits a et bsous-entendue), on aIn( f )= bafn(x)dx, n 0.Si f est de classe C 0 sur [a;b], lerreur de quadrature En( f )= |In( f ) I ( f )| satisfaitEn( f ) ba| f (x) fn(x)|dx (ba) f fn.Lapproximation fn doit tre facilement intgrable, ce qui est le cas si, par exemple, fn est un polynme. En effet, si fn =ni=0 i xi Rn[x], alorsI ( f ) In( f )= bafn(x)dx = ba(ni=0i xi)dx =ni=0i( baxi dx)=ni=0ii +1[xi+1]ba=ni=0bi+1ai+1i +1 i .Une approche naturelle consiste prendre fn =n f =ni=0 f (xi )Li (x), le polynme dinterpolation de LAGRANGE de fsur un ensemble de n+1 nuds distincts {xi }i=ni=0 . Ainsi on dduitIn( f )=ni=0(f (xi ) baLi (x)dx)o Li (x)=nj=0j 6=ixx jxi x j.Il sagit dun cas particulier de la formule de quadrature suivanteIn( f )=ni=0i f (xi )qui est une somme pondre des valeurs de f aux points xi : on dit que ces points sont les nuds de la formule de qua-drature et que les nombres i R sont les coefficients ou encore les poids. La formule de quadrature de LAGRANGE peuttre gnralise au cas o on connat les valeurs de la drive de f : ceci conduit la formule de quadrature dHERMITE.Les formules de Lagrange et dHERMITE sont toutes les deux des formules de quadrature interpolatoires, car la fonction fest remplace par son polynme dinterpolation.Dfinition Degr dexactitudeOn dfinit le degr dexactitude dune formule de quadrature comme le plus grand entier r 0 pour lequel In(q)= I (q)pour tout polynme q Rr [x].733. Quadrature Jeudi 31 janvier 2013AstuceSi q est un polynme de Rr [x], il existe 0,1, . . . ,r tels que q(x) = rk=0k xk . Alors I (q) = ba q(x) dx =rk=0(k( ba xk dx))=rk=0 (k I (xk )). Pour vrifier quune formule de quadrature In a degr dexactitude r il suffit alorsde vrifier que In(xk )= I (xk ) pour tout k = 0. . .r .ThormeToute formule de quadrature interpolatoire utilisant n+1 nuds distincts a un degr dexactitude au moins gale n.En effet, si f Rn[x], alors le polynme dinterpolation concide avec f .La rciproque aussi est vraie : une formule de quadrature utilisant n+1 nuds distincts et ayant un degr dexactitude aumoins gale n est ncessairement de type interpolatoire.Le degr dexactitude peut mme atteindre 2n+1 dans le cas des formules de quadrature de Gauss.Dfinition StabilitUne formule de quadrature In( f )=ni=0i f (xi ) est dite stable sil existe M R+ tel queni=0|i | M .ThormeUne mthode de quadrature de type interpolation est convergente sur C [a;b] ssi les formules sont stables.Dfinition Formule de quadrature compositeOn dcompose lintervalle dintgration [a;b] en m sous-intervalles T j = [y j ; y j+1] tels que y j = a+ j H o H = bam pourj = 0,1, . . . ,m. On utilise alors sur chaque sous-intervalle une formule interpolatoire de nuds{x( j )k}nk=0 et de poids{( j )k}nk=0. PuisqueI ( f )= baf (x)dx =m1j=0 y j+1y jf (x)dx,une formule de quadrature interpolatoire composite est obtenue en remplaant I ( f ) parIn,m( f )=m1j=0nk=0( j )k f (x( j )k ).Astuce Changement de variable affineSouvent on dfinit dabord une formule de quadrature sur lintervalle [0;1] ou sur lintervalle [1;1] et puis on la gnra-lise lintervalle [xi ; xi+1] par un changement de variable affine.Soit x [a;b] et soit y [c;d ], on cherche une transformation y = g (x) qui envoie lintervalle [a;b] dans lintervalle [c;d ]ainsi dcg (y)dy = baf (g (x))g (x)dx.Si g (x) est une constante, i.e. si g est une transformation affine g (x)=mx+q , alors dcg (y)dy =m baf (mx+q)dx.Pour dterminer cette transformation affine, on doit rsoudre le systme linaire{c =ma+q,d =mb+q.On obtientm = d cba , q =cbadba .Par consquent y = d cba x+cbadba do dcf (y)dy = d cba baf(d cba x+cbadba)dx.74 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureExempleTransformer lintervalle [0;1] dans lintervalle [xi ; xi+1] par un changement de variable affine.On a y = (xi+1xi )x+xi et xi+1xif (y)dy = (xi+1xi ) 10f ((xi+1xi )x+xi )dx.On voit que lorsque x = 0 alors y = xi , lorsque x = 1 alors y = xi+1, ou encore lorsque x = 1/2 alors y = xi+xi+12 etc.ExempleTransformer lintervalle [1;1] dans lintervalle [xi ; xi+1] par un changement de variable affine.On a y = xi+1xi2 x+xi+1xi2 , quon peut rcrire y = xi + (1+x)xi+1xi2 et xi+1xif (y)dy = xi+1xi2 11f(xi + (1+x)xi+1xi2)dx.3.2. Exemples de formules de quadrature interpolatoiresDfinition Formule du rectangle gaucheLa formule du rectangle gauche est obtenue en remplaant f par une constante gale la valeur de f en la bornegauche de lintervalle [a;b] (polynme de degr 0), ce qui donneI0( f )= (ba) f (a).Si f C 1([a;b]) alors lerreur de quadrature estE0( f )= h22| f ()|, h = ba, ]a;b[.Le degr dexactitude de la formule du rectangle gauche est 0.Remarque Formule compositeOn dcompose maintenant lintervalle dintgration [a;b] en m sous-intervalles de largeur H = bam avec m 1 En in-troduisant les nuds de quadrature xk = a+kH pour k = 0,1, . . . ,m1 on obtient la formule composite du rectangle gaucheI0,m( f )=Hm1k=0f (xk )=Hm1k=0f (a+kH).Si f C 1([a;b]) alors lerreur de quadrature estE0,m( f )= ba2H | f ()|, ]a;b[.Dfinition Formule du rectangle droiteLa formule du rectangle droite est obtenue en remplaant f par une constante gale la valeur de f en la borne droitede lintervalle [a;b] (polynme de degr 0), ce qui donneI0( f )= (ba) f (b).Si f C 1([a;b]) alors lerreur de quadrature estE0( f )= h22| f ()|, h = ba, ]a;b[.Le degr dexactitude de la formule du rectangle droite est 0. G. Faccanoni 753. Quadrature Jeudi 31 janvier 2013Remarque Formule compositeOn dcompose maintenant lintervalle dintgration [a;b] en m sous-intervalles de largeur H = bam avec m 1 En intro-duisant les nuds de quadrature xk = a+ (k+1)H pour k = 0,1, . . . ,m1 on obtient la formule composite du rectangle droiteI0,m( f )=Hm1k=0f (xk )=Hm1k=0f (a+ (k+1)H).Si f C 1([a;b]) alors lerreur de quadrature estE0,m( f )= ba2H | f ()|, ]a;b[.Dfinition Formule du rectangle ou du point milieuLa formule du rectangle ou du point milieu est obtenue en remplaant f par une constante gale la valeur de f aumilieu de [a;b] (polynme de degr 0), ce qui donneI0( f )= (ba) f(a+b2).Si f C 2([a;b]) alors lerreur de quadrature estE0( f )= h33| f ()|, h = ba2, ]a;b[.Le degr dexactitude de la formule du point milieu est 1.Remarque Formule compositeOn dcompose maintenant lintervalle dintgration [a;b] en m sous-intervalles de largeur H = bam avec m 1 En in-troduisant les nuds de quadrature xk = a + 2k+12 H pour k = 0,1, . . . ,m 1 on obtient la formule composite du pointmilieuIo,m( f )=Hm1k=0f(a+ 2k+12H).Si f C 2([a;b]) alors lerreur de quadrature estE0,m( f )= ba24H 2| f ()|, ]a;b[.Dfinition Formule du trapzeLa formule du trapze est obtenue en remplaant f par le segment qui relie (a, f (a)) (b, f (b)) (polynme de Lagrangede degr 1), ce qui donneI1( f )= ba2(f (a)+ f (b)) .Si f C 2([a;b]) alors lerreur de quadrature estE1( f )= h312| f ()|, h = ba, ]a;b[.Le degr dexactitude de la formule du point milieu est 1, comme celle du point milieu.Remarque Formule compositePour obtenir la formule du trapze composite, on dcompose lintervalle dintgration [a;b] en m sous-intervalles delargeur H = bam avec m 1. En introduisant les nuds de quadrature xk = a+kH pour k = 0,1, . . . ,m1 on obtientI1,m( f )= H2m1k=0(f (xk )+ f (xk+1))=H (12f (a)+m1k=1f (a+kH)+ 12f (b)).76 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureSi f C 2([a;b]) alors lerreur de quadrature estE0,m( f )= ba12H 2| f ()|, ]a;b[.Dfinition Formule de Cavalieri-SimpsonLa formule de Cavalieri-Simpson est obtenue en remplaant f par la parabole qui interpole (a, f (a)), (b, f (b)) et(a+b2 , f(a+b2))(polynme de Lagrange de degr 2), ce qui donneI2( f )= ba6(f (a)+4 f(a+b2)+ f (b)).Si f C 4([a;b]) alors lerreur de quadrature estE2( f )= h590| f (4)()|, h = ba2, ]a;b[.Le degr dexactitude de la formule du point milieu est 3.Remarque Formule compositePour obtenir la formule composite, on dcompose lintervalle dintgration [a;b] en m sous-intervalles de largeur H =ba2m avec m 1. En introduisant les nuds de quadrature xk = a+kH pour k = 0,1, . . . ,m on obtientI2,m( f )= H3(f (a)+2m1r=1f (x2r )+4s1s=0f (x2s+1)+ f (b))= H3(f (a)+2m1r=1f (a+ r H)+4m1s=0f(a+ 2s+12H)+ f (b)).Si f C 4([a;b]) alors lerreur de quadrature estE2,m( f )= ba180(H4)4| f (4)()|, ]a;b[. G. Faccanoni 773. Quadrature Jeudi 31 janvier 2013a b x(a) Formule du rectangle gauche.x0 = a x1 x2 x3 x4 = b x(b) Formule du rectangle gauche composite.a b x(c) Formule du rectangle droite.x0 = a x1 x2 x3 x4 = b x(d) Formule du rectangle droite composite.a ba+b2x(e) Formule du point milieu.x0 = a x1 x2 x3 x4 = bx0+x12x1+x22x2+x32x3+x42x(f) Formule du point milieu composite.a b x(g) Formule du trapze.x0 = a x1 x2 x3 x4 = b x(h) Formule du trapze composite.a ba+b2x(i) Formule de Cavalieri-Simpson.x0 = a x1 x2 x3 x4 = b x(j) Formule de Cavalieri-Simpson composite.FIGURE 3.1.: Formules de quadrature pour n = 0,1,2.78 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureAlgorithmesMTHODE DU RECTANGLE GAUCHERequire: f , a, b > a, n > 0h bans 0for i = 0 to n1 dos s+ f (a+ i h)end forreturn I hsMTHODE DU RECTANGLE DROITERequire: f , a, b > a, n > 0h bans 0for i = 0 to n1 dos s+ f (a+ (i +1)h)end forreturn I hsMTHODE DU POINT MILIEURequire: f , a, b > a, n > 0h bans 0for i = 0 to n1 dos s+ f (a+ (i + 12 )h)end forreturn I hsMTHODE DES TRAPZESRequire: f , a, b > a, n > 0h bans f (a)+ f (b)2for i = 1 to n1 dos s+ f (a+ i h)end forreturn I hsMTHODE DE SIMPSONRequire: f , a, b > a, n > 0h ba2ns1 0s2 f (a+h)for i = 1 to n1 dos1 s1+ f (a+2i h)s2 s2+ f (a+ (2i +1)h)end forreturn I h3(f (a)+ f (b)+2s1+4s2), , , , , , , , , , , , , , Conclusion , , , , , , , , , , , , ,1. Une formule de quadrature est une formule permettant dapprocher lintgrale de fonctions continues sur un inter-valle [a,b] ;2. elle sexprime gnralement comme une combinaison linaire des valeurs de la fonction en des points prdfinis(appels noeuds) et avec des coefficients appels poids ;3. le degr dexactitude dune formule de quadrature est le degr maximal des polynmes pouvant tre intgrs exacte-ment. Le degr dexactitude vaut 1 pour les formules du point milieu et du trapze, 3 pour les formules de SIMPSON ;4. lordre de prcision dune formule de quadrature composite est exprim par rapport la taille H des sous-intervalles.Il vaut 2 pour les formules du point milieu et du trapze.Ce quon na pas dit1. Les formules du point milieu, du trapze et de SIMPSON sont des cas particuliers dune classe de mthodes de qua-drature appeles formules de NEWTON-COTES. De mme, il existe des formules de quadrature trs utilises dite deGauss-Legendre et de Gauss-Legendre-Lobatto.2. Le degr dexactitude vaut 3 pour les formules de GAUSS, 2n+1 pour les formules de GAUSS-LEGENDRE avec n+1points de quadrature, et 2n1 pour celles de GAUSS-LEGENDRE-LOBATTO avec n+1 points de quadratures ; G. Faccanoni 793. Quadrature Jeudi 31 janvier 2013TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTVoici cinq function python qui renvoient la valeur approche dune intgrale par les mthodes (composites n inter-valles quirpartis) du rectangle gauche, du rectangle droite, du point de milieu, du trapze et de SIMPSON. En para-mtre elles reoivent f, la fonction (mathmatique) intgrer, a et b sont les extrmits de lintervalle dintgration et nest le nombre de sous-intervalles de lintervalle [a,b] (chaque sous-intervalle a largeur (ba)/n). Elles renvoient la valeurapproche de ba f (x) dx.Mthodes numriques.1 #!/usr/bin/python2 #-*- coding: Utf-8 -*-34 import math, sys56 def rectangle_gauche_composite(f,a,b,n):7 h = (b-a)/n8 s = 0.9 for i in range(n):10 s += f(a+i*h)11 return h*s1213 def rectangle_droite_composite(f,a,b,n):14 h = (b-a)/n15 s = 0.16 for i in range(n):17 s += f(a+(i+1)*h)18 return h*s1920 def milieu_composite(f,a,b,n):21 h = (b-a)/n22 s = 0.23 for i in range(n):24 s += f(a+(i+0.5)*h)25 return h*s2627 def trapeze_composite(f,a,b,n):28 h = (b-a)/n29 s = (f(a)+f(b))*0.530 for i in range(1,n):31 s += f(a+i*h)32 return h*s3334 def simpson_composite(f,a,b,n):35 h = (b-a)/(2.*n)36 s1 = 0.37 s2 = f(a+h)38 for i in range(1,n):39 s1 += f(a+2*i*h)40 s2 += f(a+(2*i+1)*h)41 return (f(a)+f(b)+2.*s1+4.*s2)*h/3.et voici quelques exemples dutilisation de ces mthodes42 # CHOIX DU CAS TEST43 exemple = 14445 # DEFINITION DU CAS TEST46 if exemple==1:47 n = 10048 a = 0.049 b = 1.050 def f(x):51 return x**352 def primitive(x):53 return x**4/4.54 elif exemple==2:80 G. FaccanoniJeudi 31 janvier 2013 3. Quadrature55 n = 10056 a = 0.057 b = 1.058 def f(x):59 return x**360 def primitive(x):61 return x**4/4.62 elif exemple==3:63 n = 1064 a = -10.065 b = 10.066 def f(x):67 return math.exp(-x**2)68 def primitive(x):69 return 0. # on ne connait pas la primitive70 else:71 print "Cas test non defini"72 sys.exit(0)737475 print "** Exacte : ", primitive(b)-primitive(a)76 print "A) Formule du point milieu composite : ", milieu_composite(f,a,b,n)77 print "B) Formule des trapezes composite : ", trapeze_composite(f,a,b,n)78 print "C) Formule de Simpson composite : ", simpson_composite(f,a,b,n)7980 # Dans python il existe un module qui implement deja ces methodes, comparons nos resultats avec ceux dumodule:81 from scipy import integrate82 results = integrate.quad(f,a,b)83 print "Avec scipy.integrate lintegrale est approchee par ", results[0], "avec une erreure de ", results[1] G. Faccanoni 813. Quadrature Jeudi 31 janvier 2013.............. Exercices .............Exercice 3.1Estimer 5/20 f (x) dx partir des donnesx 0 1/2 1 3/2 2 5/2f (x) 3/2 2 2 1.6364 1.2500 0.9565en utilisant la mthode des trapzes composite.CORRECTION. La mthode des trapzes composite m+1 points pour calculer lintgrale dune fonction f sur lintervalle[a,b] scrit baf (t )d t ' h(12f (a)+m1i=1f (a+ i h)+ 12f (b))avec h = bam.Ici on a a = 0, b = 5/2, h = 1/2 donc 5/20f (x) dx ' 12(34+2+2+1.6364+1.2500+ 0.95652)= 4.057325Exercice 3.2Estimer pi0 sin(x) dx en utilisant la mthode des trapzes composite avec 8 et puis 16 sous-intervalles en prenant encompte lerreur.CORRECTION. La mthode des trapzes composite m+1 points pour calculer lintgrale dune fonction f sur lintervalle[a,b] scrit baf (t )d t ' h(12f (a)+m1i=1f (a+ i h)+ 12f (b))avec h = bamet lerreur est donn parE =ba12h2 f ()avec a < < b.Ici on a a = 0, b =pi. Avec 8 sous-intervalles on a h =pi/8 donc pi0sin(x) dx ' pi8(sin(0)2+7i=1sin(ipi/8)+ sin(pi)2) 1.97423et lerreur estE = pi3768sin()pour ]0;pi[. Comme on ne connait pas la valeur de , on ne peut pas connaitre E mais on peut en dterminer les bornes :Emin = pi3768sin(0)= 0 Emax = pi3768sin(pi/2)= pi3768' 0.04037ainsi(1.974230) pi0sin(x) dx (1.97423+0.04037)= 2.01460La valeur exacte est bien videmment 2.Avec 16 sous-intervalles on a h = pi/16 et les nouveaux noeuds se trouvent au milieux des sous-intervalles prcdents :x j =pi/16+ jpi/8= (1+2 j )pi/16 pour j = 0,1, . . . ,7, ainsi pi0sin(x) dx ' 1.974232+ pi167j=0sin((1+2 j )pi/16) 1.99358et le limites de lerreur deviennent (observons que E est divis par 4 lorsque h est divis par 2) :Emin = 0 Emax ' 0.040374= 0.01009ainsi1.99358 pi0sin(x) dx (1.99358+0.01009)= 2.00367.82 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureExercice 3.3On considre lintgraleI = 211xdx.1. Calculer la valeur exacte de I .2. valuer numriquement cette intgrale par la mthode des trapzes avec m = 3 sous-intervalles.3. Pourquoi la valeur numrique obtenue la question prcdente est-elle suprieure ln(2) ? Est-ce vrai quelquesoit m ? Justifier la rponse. (On pourra saider par un dessin.)4. Quel nombre de sous-intervalles m faut-il choisir pour avoir une erreur infrieure 104 ? On rappelle que lerreurde quadrature associe scrit, si f C 2([a;b]),|Em | = (ba)412m2 f () , ]a;b[.CORRECTION.1. Une primitive de 1x est F (x)= ln(x). La valeur exacte est alors I =[ln(x)]x=2x=1 = ln(2).2. La mthode des trapzes composite m + 1 points pour calculer lintgrale dune fonction f sur lintervalle [a,b]scrit baf (t )d t ' h(12f (a)+m1i=1f (a+ i h)+ 12f (b))avec h = bam.Ici on a f (x)= 1x , a = 1, b = 2, m = 3 do h = 13 et on obtientI ' 13(12f (1)+ f (1+1/3)+ f (1+2/3)+ 12f (2))= 13(12+ 34+ 35+ 14)= 2130= 0,7.3. La valeur numrique obtenue la question prcdente est suprieure ln(2) car la fonction f (x)= 1x est convexe. Onpeut se convaincre laide dun dessin que les trapzes sont au-dessus de la courbe y = 1/x, laire sous les trapzessera donc suprieure laire sous la courbe. Pour bien visualiser la construction considrons m = 1 :0.5 1 1.5 200.510.5 1 1.5 200.51Cela reste vrai quelque soit le pas h choisi car la fonction est convexe ce qui signifie quune corde dfinie par deuxpoints de la courbe y = 1/x sera toujours au-dessus de la courbe et par le raisonnement prcdant laire sous lestrapzes sera suprieure laire exacte.4. Lerreur est majore par|E | (ba)412m2sup]a;b[| f ()|.Donc ici on a f (x)= 1/x, f (x)=1/x2 et f (x)= 2/x3, ainsi|E | 112m2max]1;2[23= 16m2.Pour que |E | < 104 il suffit que 16m2< 104, i.e. m > 102/p6 40,8. partir de 41 sous-intervalles, lerreur de quadra-ture est infrieure 104.Exercice 3.4On considre lintgraleI = 21ln(x)dx.1. valuer numriquement cette intgrale par la mthode des trapzes composite avec m = 4 sous-intervalles et G. Faccanoni 833. Quadrature Jeudi 31 janvier 2013comparer le rsultat ainsi obtenu avec la valeur exacte. Pourquoi la valeur numrique est-elle infrieure la valeurexacte ? Est-ce vrai quel que soit m ? (Justifier la rponse.)2. Quel nombre de sous-intervalles m faut-il choisir pour avoir une erreur Em infrieure 102 ? On rappelle que,pour une fonction f de classe C 2, lerreur de quadrature Em associe la mthode des trapzes composite avecune discrtisation uniforme de pas h = (ba)/m de lintervalle [a,b] en m sous-intervalles vrifie|Em | = (ba)12 h2 f () , ]a;b[.CORRECTION.1. La mthode des trapzes composite m+1 points (m sous-intervalles) pour calculer lintgrale dune fonction f surlintervalle [a,b] scrit baf (t )d t ' h(12f (a)+m1i=1f (a+ i h)+ 12f (b))avec h = bam.Ici on a f (x)= ln(x), a = 1, b = 2, m = 4 do h = 14 et on obtientI ' 14(12f (1)+ f(54)+ f(32)+ f(74)+ 12f (2))= 14(ln(54)+ ln(32)+ ln(74)+ 12ln(2)) 0.3836995094.Une primitive de ln(x) est F (x)= x(ln(x)1). La valeur exacte est alors I = [x(ln(x)1)]x=2x=1 = 2ln(2)1 0.386294361.La valeur numrique obtenue est infrieure celle exacte quelque soit le pas h choisi car la fonction f est concave, cequi signifie quune corde dfinie par deux points de la courbe y = ln(x) sera toujours en-dessous de la courbe, donclaire sous les trapzes sera infrieure laire exacte. Pour bien visualiser la construction considrons m = 2 :xy0.5 1 1.5 200.51xy0.5 1 1.5 200.512. Lerreur est majore par|Em | (ba)12h2 sup]a;b[| f ()| = (ba)312m2sup]a;b[| f ()|.On a f (x)= ln(x), f (x)= 1/x et f (x)=1/x2, ainsi|Em | 112m2max]1;2[12= 112m2.Pour que |Em | < 102 il suffit que 112m2 < 102, i.e. m > 10/p12 2.886. partir de 3 sous-intervalles, lerreur dequadrature est infrieure 102.Exercice 3.5 Intgrationtant donne lgalitpi= 4( +0ex2dx)2= 4( 100ex2dx+)2,avec 0< < 1044, utiliser la mthode des trapzes composite 10 intervalles pour estimer la valeur de pi.CORRECTION. La mthode des trapzes composite m intervalles pour calculer lintgrale dune fonction f sur linter-valle [a,b] scrit baf (t )d t ' h(12f (a)+m1i=1f (a+ i h)+ 12f (b))avec h = bam.Ici on a f (x)= ex2 , a = 0, b = 10, m = 10 do h = 1 et on obtientI ' 12+10i=1ei2 + 12e100= 12+ 1e+ 1e4+ 1e9+ 1e16+ 1e25+ 1e36+ 1e49+ 1e64+ 1e81+ 12e100 3.1422.84 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureExercice 3.6Soit f une fonction C(R,R).1. On considre lapproximation 11f (x) dx 23(2 f( 12 ) f (0)+2 f ( 12 )).Quel est le degr dexactitude de cette formule de quadrature ?2. On se donne les points {xi }i=ni=0 de subdivision de lintervalle [a;b] : xi = a+ i h avec h = ban . laide dun change-ment de variable affine, en dduire une formule de quadrature pour lintgrale xi+1xif (x)dx.En tirer une formule de quadrature composite pour lintgrale ba f (x)dx.3. crire lalgorithme pour approcher ba f (x)dx.CORRECTION.1. On ak pk (x)= xk 11 pk (x)dx23 (2pk (1/2)pk (0)+2pk (1/2)) Degr dexactitude0 1 2 2 au moins 01 x 0 0 au moins 12 x2 2/3 2/3 au moins 23 x3 0 0 au moins 34 x4 2/5 1/6 3La formule est donc exacte de degr 3.2. Soit x =mt +q , alors xi+1xif (x)dx =m 11f (mt +q)dt avec{xi =m+q,xi+1 =m+q,do le changement de variable x = xi + (t +1) xi+1xi2 . On dduit la formule de quadrature (exacte sur lespace despolynme de degr au plus 3) xi+1xif (x)dx = xi+1xi2 11f(xi + (t +1) xi+1xi2)dt xi+1xi3[2 f(xi + xi+1+xi22) f(xi+1+xi2)+2 f( xi+1+xi2 +xi+12)].Soit h = xi+1xi = ban . La formule prcdente se rcrit xi+1xif (x)dx h3[2 f(xi + h4) f(xi + h2)+2 f(xi + 3h4)].et la formule de quadrature composite dduite de cette approximation est baf (x)dx =n1i=0 xi+1xif (x)dx h3n1i=0[2 f(xi + h4) f(xi + h2)+2 f(xi + 3h4)].3. Algorithme dapproximation de ba f (x)dxRequire: f , a, b > a, n > 0h bans 0for i = 0 to n1 dox a+ i hs s+2 f (x+ h4 ) f (x+ h2 )+2 f (x+ 3h4 )end forreturn I h3 s G. Faccanoni 853. Quadrature Jeudi 31 janvier 2013Exercice 3.7Soit f une fonctionC(R,R). On se donne les points {xi }i=ni=0 de subdivision de lintervalle [a;b] : xi = a+i h avec h = ban .Le but de lexercice est de trouver une formule de quadrature 2n points pour approcher lintgrale baf (x)dx. (3.1)On propose dans un premier temps (question 1 4) de construire la formule de quadrature deux points suivantes : 11g (x)dx g ()+ g (), (3.2)o 0 a, n > 0h ban1 a+(113)h2 a+(1+13)hfor i = 0 to n1 dos s+ f (1+ i h)+ f (2+ i h)end forreturn I h2 s86 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureExercice 3.8 Interpolation et Intgration1. Soit f une fonction de classe C 1([1,1]) et p le polynme de Lagrange qui interpole f aux points 1, 0 et 1. crirele polynme p.2. En dduire une mthode de quadrature pour approcher lintgrale 11f (t )dt .3. tudier le degr dexactitude de la formule de quadrature ainsi trouve.4. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale x2i+2x2if (x)dx.5. Soit h = ba2n et xi = a+ i h pour i = 0, . . . ,2n. On subdivise lintervalle [a;b] en n intervalles [x2i ; x2i+2] de largeur2h.a bx0 x2i x2i+1 x2i+2 x2nh hEn dduire la formule de quadrature composite pour le calcul approch de baf (x)dx.6. crire lalgorithme associ cette formule de quadrature.CORRECTION.1. On a trois points, donc le polynme interpolateur de Lagrange est un polynme de R2[x]. On cherche alors les coef-ficients , et du polynme p(x)=+x+x2 tels quef (1)=+, (3.3a)f (0)=, (3.3b)f (1)=++. (3.3c)Lquation (3.3b) donne = f (0), la somme (3.3c)+(3.3a) donne = f (1) f (1)2 et enfin la soustraction (3.3c)(3.3a)donne = f (1) f (1)2 .2. On en dduit la mthode de quadrature 11f (t )dt 11p(t )dt = 2(+/3)= f (1)+4 f (0)+ f (1)3.3. Par construction, cette formule de quadrature a degr dexactitude au moins 2. De plusk pk (x)= xk 11 pk (x)dxpk (1)+4pk (0)+pk (1)3 Degr dexactitude3 x3 0 0 au moins 34 x4 2/5 2/3 3La formule est exacte pour les polynmes de degr au plus 3.4. Soit x =mt +q , alors x2i+2x2if (x)dx =m 11f (mt +q)dt avec{x2i =m+q,x2i+2 =m+q,do le changement de variable x = x2i + (t +1) x2i+2x2i2 . On dduit la formule de quadrature (exacte sur lespace despolynme de degr au plus 3) x2i+2x2if (x)dx = x2i+2x2i2 11f(x2i + (t +1) x2i+2x2i2)dt x2i+2x2i6[f (x2i )+4 f (x2i+1)+ f (x2i+2)]. G. Faccanoni 873. Quadrature Jeudi 31 janvier 20135. h = ba2n = xi+1xi2 pour i = 0, . . . ,2n. On subdivise lintervalle [a;b] en n intervalles [x2i ; x2i+2] de largeur 2h. On trouveainsi la formule de quadrature composite baf (x)dx =n1i=0 x2i+2x2if (x)dx n1i=0x2i+2x2i6[f (x2i )+4 f (x2i+1)+ f (x2i+2)]= h3n1i=0[f (x2i )+4 f (x2i+1)+ f (x2i+2)]= h3[f (a)+ f (b)+2n1i=1f (x2i )+4n1i=0f (x2i +h)]= h3[f (a)+ f (b)+2n1i=1f (a+2i h)+4n1i=0f (a+ (2i +1)h)].6. Algorithme du calcul associ cette formule de quadratureRequire: f , a, b > a, n > 0h ba2ns1 0s2 s2+ f (a+h)for i = 1 to n1 dos1 s1+ f (a+2i h)s2 s2+ f (a+ (2i +1)h)end forreturn h3[f (a)+ f (b)+2s1+4s2]Exercice 3.9Soit f une fonctionC(R,R). On se donne les points {xi }i=2ni=0 de subdivision de lintervalle [a;b] : xi = a+i h avec h = ba2n .Le but de lexercice est de trouver une formule de quadrature 2n + 1 points base sur la formule de SIMPSON pourapprocher baf (x)dx. (3.4)On propose dans un premier temps (question 1 3) de construire la formule de quadrature 3 points de Simpson : 11g (x)dx g (1)+g (0)+g (1), (3.5)o les rels et sont dterminer.1. Dterminer et pour que la formule de quadrature (3.5) ait degr dexactitude maximale.2. laide dun changement de variable affine, en dduire une formule de quadrature exacte sur lespace des poly-nme de degr au plus 3 pour lintgrale suivante : x2i+2x2if (x)dx.3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.4). Cette formule dequadrature est-elle stable ?4. crire lalgorithme du calcul de F .5. Soit x un lment de [xi ; xi+1]. crire une formule de Taylor f (x)= Pi (x)+Ri (x) lordre 3 pour f en x, avec Pi P3. Majorer Ri sur [xi ; xi+1] en fonction de h.6. En dduire une estimation derreur entre (3.4) et F .CORRECTION.88 G. FaccanoniJeudi 31 janvier 2013 3. Quadrature1. On ak pk (x)= xk 11 pk (x)dx pk (1)+pk (0)+pk (1) Degr dexactitude0 1 2 2+ mme pas 0 si 6= 2(1), au moins 0 si = 2(1)Soit = 2(1)1 x 0 0 au moins 12 x2 2/3 2 1 si 6= 1/3, au moins 2 si = 1/3Soit = 1/33 x3 0 0 au moins 34 x4 2/5 2/3 3Si 6= 2(1) la formule de quadrature nest mme pas exacte pour une constante, si = 2(1) mais 6= 1/3, elleest exacte pour les polynmes de degr au plus 1, si = 1/3 et = 4/3 la formule est exacte pour les polynmes dedegr au plus 3.2. Soit x =mt +q , alors x2i+2x2if (x)dx =m 11f (mt +q)dt avec{x2i =m+q,x2i+2 =m+q,do le changement de variable x = x2i + (t +1) x2i+2x2i2 . On dduit la formule de quadrature (exacte sur lespace despolynme de degr au plus 3) x2i+2x2if (x)dx = x2i+2x2i2 11f(x2i + (t +1) x2i+2x2i2)dt x2i+2x2i6[f (x2i )+4 f (x2i+1)+ f (x2i+2)].3. On trouve ainsi la formule de quadrature composite (i.e. sur n sous-intervalles) baf (x)dx =n1i=0 x2i+2x2if (x)dx n1i=0x2i+2x2i6[f (x2i )+4 f (x2i+1)+ f (x2i+2)].Si h = xi+1xi2 = ba2n (i.e. si on considre une subdivision de lintervalle [a;b] quirpartie) alors on a baf (x)dx h3n1i=0[f (x2i )+4 f (x2i+1)+ f (x2i+2)]= h3[f (a)+ f (b)+2n1i=1f (x2i )+4n1i=0f (x2i +h)]= h3[f (a)+ f (b)+2n1i=1f (a+2i h)+4n1i=0f (a+ (2i +1)h)].Cette formule de quadrature est stable puisque tous les coefficients sont positifs et on ah3[1+1+2n1i=11+4n1i=01]= ba6n[2+2(n1)+4n]= ba6n6n = (ba).4. Algorithme du calcul de F :Require: f : [a,b]R, a, b > a, n > 0H bans1 0s2 s2+ f (a+H/2)for i = 1 to n1 dos1 s1+ f (a+ i H)s2 s2+ f (a+ (i +1)H/2)end forreturn I H6[f (a)+ f (b)+2s1+4s2]5. Soit x un lment de [x2i ; x2i+2]. Une formule de TAYLOR lordre 3 pour f en x scritf (x)= Pi (x)+Ri (x),avecPi (x)= f (x2i )+ (xx2i ) f (x2i )+ (xx2i )2 f(x2i )2+ (xx2i )3 f(x2i )6P3et le reste de LAGRANGERi (x)= (xx2i )4 fIV ()24avec ]x2i ; x2i+2[. G. Faccanoni 893. Quadrature Jeudi 31 janvier 2013On peut majorer Ri sur [x2i ; x2i+2] en fonction de H = x2i+2x2i :|Ri (x)| H424max | f IV ()| = banH 324max | f IV ()|.6. On en dduit lestimation derreur entre (3.4) et F suivante 1 baf (x)dxFn1i=0 x2i+2x2iPi (x)dxF+n1i=0 x2i+2x2iRi (x)dx nH |Ri (x2i+2)|+n1i=0 x2i+2x2iRi (x)dx nH banH 324max | f IV ()|+nH banH 324max | f IV ()|= (ba) H412sup | f IV ()|.Exercice 3.10Soit f une fonctionC(R,R). On se donne les points {xi }i=ni=0 de subdivision de lintervalle [a;b] : xi = a+i h avec h = ban .Le but de lexercice est de trouver une formule de quadrature 3n points pour approcher lintgrale baf (x)dx. (3.6)On propose dans un premier temps de construire la formule de quadrature trois points suivantes : 11g (x)dx 23(g ()+ g (0)+ g ()) , (3.7)o le rel 0Jeudi 31 janvier 2013 3. Quadrature3. Si H = xi+1xi = ban (i.e. si on considre une subdivision de lintervalle [a;b] quirpartie) alors on trouve la formulede quadrature composite (i.e. sur n sous-intervalles et 3n points) baf (x)dx H3n1i=0[f(xi +H(1 1p2))+ f (xi + H2 )+ f (xi +H (1+ 1p2 ))]= H3n1i=0[f(a+H(i +1 1p2))+ f (xi + H2 )+ f (a+H (i +1+ 1p2 ))] .Cette formule de quadrature est stable puisque tous les coefficients sont positifs.Exercice 3.11Soit f une fonctionC(R,R). On se donne les points {xi }i=ni=0 de subdivision de lintervalle [a;b] : xi = a+i h avec h = ban .Le but de lexercice est de trouver une formule de quadrature n points pour approcher lintgrale dfinie baf (x)dx. (3.8)On propose dans un premier temps (question 1 2) de construire la formule de quadrature deux points : 11g (x)dx 43g (w/2)+ 23g (w), (3.9)o 0 1 et donner la plus grande valeur de m.2. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale suivante : xi+1xif (x)dx.3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.8). Cette formule dequadrature est-elle stable ?4. crire lalgorithme du calcul de F .CORRECTION.1. On ak pk (x)= xk 11 pk (x)dx23 (2pk (w/2)+pk (w)) Degr dexactitude0 1 2 2 au moins 01 x 0 0 au moins 12 x2 2/3 w2 1 si w 6= p2/3, au moins 2 si w =p2/3Soit w =p2/33 x3 0 w3/2 2Si w 6= p2/3 la formule de quadrature est exacte pour les polynmes de degr au plus 1, si w =p2/3 la formule estexacte pour les polynmes de degr au plus 2.2. Par le changement de variable y = xi + (x+1) xi+1xi2 on dduit la formule de quadrature xi+1xif (y)dy = xi+1xi2 11f(xi + (x+1) xi+1xi2)dx xi+1xi3[f(xi + (1+23 )xi+1xi2)+2 f(xi + (116 )xi+1xi2)].3. Si H = xi+1xi = ban (i.e. si on considre une subdivision de lintervalle [a;b] quirpartie) alors on trouve la formulede quadrature composite (i.e. sur n sous-intervalles et 2n points) baf (x)dx H3n1i=0[f(xi +H(1+23))+2 f(xi +H(116))]= H3n1i=0[f(a+H(i +1+23))+2 f(a+H(i +116))].Cette formule de quadrature est stable puisque tous les coefficients sont positifs. G. Faccanoni 913. Quadrature Jeudi 31 janvier 20134. Algorithme du calcul de F :Require: f , a, b > a, n > 0H ban1 a+H(1+p2/3)2 a+H(1p1/6)for i = 0 to n1 dos s+ f (1+ i H)+2 f (2+ i H)end forreturn I H3 sExercice 3.121. Soit 0Jeudi 31 janvier 2013 3. Quadraturedo le changement de variable x = xi + (t +1) xi+1xi2 . On dduit la formule de quadrature (exacte sur lespace despolynme de degr au plus 5) xi+1xif (x)dx = xi+1xi2 11f(xi + (t +1) xi+1xi2)dt xi+1xi18[5 f(xi +(135)xi+1xi2)+8 f(xi+1+xi2)+5 f(xi +(1+35)xi+1xi2)].3. h = ban = xi+1 xi pour i = 0, . . . ,n. On subdivise lintervalle [a;b] en n intervalles [xi ; xi+1] de largeur h. On trouveainsi la formule de quadrature composite baf (x)dx =n1i=0 xi+1xif (x)dx n1i=0xi+1xi18[5 f(xi +(135)xi+1xi2)+8 f(xi+1+xi2)+5 f(xi +(1+35)xi+1xi2)]= h18n1i=0[5 f(xi +(135)h)+8 f(xi + h2)+5 f(xi +(1+35)h)]= h18n1i=0[5 f(a+(i +135)h)+8 f(a+(i + 12)h)+5 f(a+(i +1+35)h)].4. Algorithme du calcul associ cette formule de quadratureRequire: f , a, b > a, n > 0h banc1 a+(1p3/5)hc2 a+ 12 hc3 a+(1+p3/5)hs 0for i = 0 to n1 dos s+5 f (c1+ i h)+8 f (c2+ i h)+5 f (c3+ i h)end forreturn h18 sExercice 3.13 Interpolation et quadraturesSoit f une fonction C(R,R). On se donne les points {xi }i=ni=0 de subdivision uniforme de lintervalle [a;b] dfinis parxi = a + i h avec h = ban . Le but de lexercice est de trouver une formule de quadrature composite pour approcherlintgrale baf (x)dx.1. Soit p le polynme de LAGRANGE qui interpole f aux points 1 et 1. crire le polynme p, en dduire une formulede quadrature base sur lapproximation 11f (x)dx 11p(x)dxet tudier le degr dexactitude de cette formule de quadrature.2. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale xi+1xif (x)dx.3. En utilisant le rsultat au point prcdent, proposer une formule de quadrature composite pour le calcul approchde lintgrale baf (x)dx.Quelle mthode de quadrature reconnait-on ?CORRECTION. G. Faccanoni 933. Quadrature Jeudi 31 janvier 20131. On a deux points dinterpolation, donc le polynme interpolateur de LAGRANGE est un polynme de R1[x]. Oncherche alors les coefficients et du polynme p(x)=+x tels que{f (1)= p(1)=, (3.10a)f (1)= p(1)=+. (3.10b)La somme des quations (3.10b)+(3.10a) donne= f (1)+ f (1)2 et la soustraction des quations (3.10b)(3.10a) donne= f (1) f (1)2 . On en dduit la mthode de quadrature 11f (t )dt 11p(t )dt = 11+t dt = 2= f (1)+ f (1).Par construction, cette formule de quadrature a degr dexactitude au moins 1. Soit f (x)= x2, alors 11 f (x)dx = 2/3tandis que f (1)+ f (1)= 2 : la formule est exacte pour les polynmes de degr au plus 1.2. Soit x =mt +q , alors xi+1xif (x)dx =m 11f (mt +q)dt avec{xi =m+q,xi+1 =m+q,do le changement de variable x = xi + (t +1) xi+1xi2 . On en dduit la formule de quadrature (exacte sur lespace despolynme de degr au plus 1) xi+1xif (x)dx = xi+1xi2 11f(xi + (t +1) xi+1xi2)dt xi+1xi2[f (xi )+ f (xi+1)].3. On subdivise lintervalle [a;b] en n intervalles [xi ; xi+1] de largeur h = ban = xi+1xi2 pour i = 0, . . . ,n. On trouve ainsila formule de quadrature composite baf (x)dx =n1i=0 xi+1xif (x)dx n1i=0xi+1xi2[f (xi )+ f (xi+1)]= h2n1i=0[f (xi )+ f (xi+1)]= h2[f (a)+ f (b)+2n1i=1f (xi )]= h2[f (a)+ f (b)+2n1i=1f (a+ i h)].Il sagit de la mthode des trapzes composite.Exercice 3.14Soit f une fonction de classe C 1([1,1]) et p le polynme interpolateur dHERMITE (de degr 3) de f vrifiantp(1)= f (1), p (1)= f (1), p(1)= f (1), p (1)= f (1).1. crire le polynme p.2. En dduire la mthode dintgration numrique lmentaire 11f (s)ds f (1)+ f (1)+ 13(f (1) f (1)) .3. Connaissant la formule sur [1;1], en dduire la formule de quadrature des trapzes-HERMITE sur lintervalle [a;b]par exemple grce au changement de variable y = a+ (x+1) ba2 .CORRECTION.1. On a deux mthodes pour calculer le polynme interpolateur dHERMITE :Premire mthode : le polynme interpolateur dHERMITE scritp(x)=ni=0yi Ai (x)+ y i Bi (x)oAi (x)= (12(xxi )ci )(Li (x))2,Bi (x)= (xxi )(Li (x))2,94 G. FaccanoniJeudi 31 janvier 2013 3. QuadratureLi (x)=nj=0j 6=ixx jxi x j,ci =nj=0j 6=i1xi x j.Pour n = 1 on a alorsp(x)= y0(12(xx0)(1x0x1))((xx1)(x0x1))2+ y 0(xx0)((xx1)(x0x1))2+ y1(12(xx1)(1x1x0))((xx0)(x1x0))2+ y 1(xx1)((xx0)(x1x0))2.Dans notre cas x0 =1, x1 = 1, y0 = f (1), y1 = f (1), y 0 = f (1), y 1 = f (1) doncp(x)= 14[f (1)(x+2)(x1)2+ f (1)(x+1)(x1)2+ f (1)(2x)(x+1)2+ f (1)(x1)(x+1)2]= 14[f (1)(x33x+2)+ f (1)(x3x2x+1)+ f (1)(x3+3x+2)+ f (1)(x3+x2x1)]= 2 f (1)+ f(1)+2 f (1) f (1)4+ 3 f (1)3 f (1) f(1) f (1)4x+ f(1) f (1)4x2+ f (1)+ f(1) f (1)+ f (1)4x3.Le polynme interpolateur dHERMITE est donc le polynmep(x)=+x+x2+x3o= 2 f (1)+2 f (1)+ f(1) f (1)4, = 3 f (1)+3 f (1) f(1) f (1)4,= f(1)+ f (1)4, = f (1) f (1)+ f(1)+ f (1)4.Deuxime mthode : le polynme interpolateur dHERMITE est un polynme de degr 2n+1. On cherche donc unpolynmep(x)=+x+x2+x3tel quep(1)= f (1), p (1)= f (1), p(1)= f (1), p (1)= f (1),cest--dire tel que += f (1),+++= f (1),2+3= f (1),+2+3= f (1).On obtient= 2 f (1)+2 f (1)+ f(1) f (1)4, = 3 f (1)+3 f (1) f(1) f (1)4,= f(1)+ f (1)4, = f (1) f (1)+ f(1)+ f (1)4.2. En intgrant le polynme ainsi trouv on en dduit 11p(x)dx =[x+ 2x2+ 3x3+ 4x4]11= 2+ 23= 2 f (1)+2 f (1)+ f(1) f (1)2+ f(1)+ f (1)6= 6 f (1)+6 f (1)+3 f(1)3 f (1) f (1)+ f (1)6 G. Faccanoni 953. Quadrature Jeudi 31 janvier 2013= f (1)+ f (1)+ 13( f (1) f (1)).Remarque : la formule est au moins exacte de degr 3 par construction. Elle nest pas exacte de degr suprieure 3car si f (x)= x4 alors 11f (x)dx =[15x5]11= 25= 6156=f (1)+ f (1)+ 13( f (1) f (1))= 1+1+ 13(4+4)= 143= 70153. Connaissant la formule sur [1;1], on en dduit la formule sur un intervalle [a;b] quelconque par le changement devariable y = a+ (x+1) ba2 qui donne 2 baf (y)dy = ba2 11f(a+ (x+1) ba2)dx= ba2[f (a)+ f (b)+ ba6( f (a) f (b))]= ba2( f (a)+ f (b))+ (ba)212( f (a) f (b)).Exercice 3.15Soit f une fonction C([0;1],R). On se donne les points {xi }i=ni=0 de subdivision de lintervalle [0;1] : xi = i h avec h = 1n .Le but de lexercice est de trouver une formule de quadrature pour approcher 10f (x)dx. (3.11)1. Soit i un entier fix (1 i n1). Trouver mi un point du segment [xi ; xi+1] et a, b et c trois coefficients rels telsque la formule de quadrature suivante, sur lintervalle [xi ; xi+1], soit exacte pour p un polynme de degr le plushaut possible : xi+1xip(x) dx = ap(xi )+bp(mi )+ cp(xi+1).2. En dduire en fonction de a, b et c la formule de quadrature Q( f )Q( f )=ni=0i f (xi )+n1i=0i f (mi )pour le calcul approch de 3.11 construite sur la formule de quadrature prcdente pour chaque intervalle du type[xi ; xi+1]. Cette formule de quadrature est-elle stable ?3. On rappelle que si p interpole f en k points y1 < y2 < < yk , on a lestimation derreurx [y1; yk ], | f (x)p(x)| sup[y1;yk ]| f (k)()|k !kj=1(x y j ).En dduire une estimation de lerreur de quadrature entre (3.11) et QE(h)= 10f (x) dxQ( f ).La dpendance en h dans cette estimation derreur est-elle optimale ?4. crire lalgorithme qui calcule Q( f ).CORRECTION.1. Pour simplifier le calcul, on se ramne lintervalle [0;1]. Soit x un lment de lintervalle [xi ; xi+1] et y un lment delintervalle [0;1]. On transforme lintervalle [xi ; xi+1] dans lintervalle [0;1] par le changement de variable affine y =1xi+1xi xxixi+1xi . On note h = xi+1 xi . Alors y =xxih et on a 10 f (y) dy = 1h xi+1xif ( xxih )d x. Comme xi+1xif (t ) dt 2. Rappel : si y = a+ (x+1) ba2 alors dy = ba2 dx et f (y)= ba2 f (x).96 G. FaccanoniJeudi 31 janvier 2013 3. Quadraturea f (xi )+b f (mi )+c f (xi+1), alors 10 f (y) dy = 1h xi+1xif ( xxih ) dx 1h(a f (0)+b f ( mixih )+ c f (1)). On note alors A = ah ,B = bh , C = ch , M = mixih do mi = (1M)xi +M xi+1. Rechercher a, b, c et mi revient chercher A, B , C et M avecmi = (1M)xi +M xi+1,a = Ah,b =Bh,c =C htels que 10p(x) dx = Ap(0)+B p(M)+C p(1),o p(x) est un polynme. Si p P3 (i.e. si p(x)= d0+d1x+d2x2+d3x3) on a10p(x)dx = Ap(0)+B p(M)+C p(1) [d0x+ d12 x2+ d23 x3+ d34 x4]10Ad0+Bd0+C d0 d0+ d12 + d23 + d34 (A+B +C )d0+ (B M +C )d1+ (B M 2+C )d2+ (B M 3+C )d3Par consquent, pour que la formule soit exacte de degr au moins 3 il faut queA+B +C = 1B M +C = 12B M 2+C = 13B M 3+C = 14A+B +C = 1B M = 12 C( 12 C )M = 13 C( 13 C )M = 14 CA = 16 ,B = 23 ,C = 16 ,M = 12 .La mthode 10f (x) dx = 16f (0)+ 23f(12)+ 16f (1),est exacte pour tout polynme de degr au moins 3.Soit maintenant f (x)= x4. On a 10f (x)dx =[x55]10= 15mais16f (0)+ 23f(12)+ 16f (1)= 16+ 23(12)4+ 16= 524,donc la formule de quadrature est exacte de degr 3.Si on revient aux variables initiales, on trouve mi = 12 xi + 12 xi+1,a = 16 h,b = 23 h,c = 16 h2. Lintgrale 10f (x)dx =n1i=0 xi+1xif (x) dxpeut tre calcule numriquement en utilisant la formule prcdente pour approcher chaque intgrale xi+1xif (x) dx h6[f (xi )+4 f(xi +xi+12)+ f (xi+1)].On obtient ainsi 10f (x)dx =n1i=0 xi+1xif (x) dx G. Faccanoni 973. Quadrature Jeudi 31 janvier 2013n1i=0h6[f (xi )+4 f(xi +xi+12)+ f (xi+1)]= h6[n1i=0f (xi )+n1i=0f (xi+1)+4n1i=0f(xi +xi+12)]= h6[f (a)+ f (b)+2n1i=1f (xi )+4n1i=0f(xi +xi+12)]=ni=0i f (xi )+n1i=0i f (mi )=Q( f ) avec i = 2h3, i ={h3 si i = 1, . . . ,n1,h6 sinon.Cette formule de quadrature est stable puisque tous les coefficients i et i sont positifs et on ani=0i +n1i=0i = h6+n1i=1h3+ h6+n1i=02h3= 1n(16+ 13n1i=11+ 16+ 23n1i=01)= 1.3. On reconnait la formule de Cavalieri-Simpson : remarquons alors que Q( f )=n1i=0 xi+1xi p(x)dx avec p le polynmequi interpole (xi , f (xi )), (mi , f (mi )) et (xi+1, f (xi+1)). Par consquent lerreur de quadrature entre (3.11) et Q est|E(h)| = 10f (x) dxQ( f )=n1i=0 xi+1xif (x) dxn1i=0 xi+1xip(x)dxn1i=0 xi+1xi f (x)p(x)dxn1i=0 xi+1xisup[xi ;xi+1]| f()|6(xxi )(xmi )(xxi+1)dxDh4.4. AlgorithmeRequire: x 7 fRequire: n > 0a 16nb 23nc 16nI a f (0)for i = 1 to n1 doI I + (a+ c) f ( in )+b f ( i 12n )end forreturn I I + c f (1)+b f(n 12n)98 G. Faccanoni4. quations diffrentielles ordinairesCalculer la fonction t 7 y(t ) qui vrifie lEDO y (t )= f (t , y(t )) et la condition y(t0)= y0Les quations diffrentielles dcrivent lvolution de nombreux phnomnes dans des domaines varis. Une quationdiffrentielle est une quation impliquant une ou plusieurs drives dune fonction inconnue. Si toutes les drives sontprises par rapport une seule variable, on parle dquation diffrentielle ordinaire. Une quation mettant en jeu des dri-ves partielles est appele quation aux drives partielles. On dit quune quation diffrentielle (ordinaire ou aux drivespartielles) est dordre p si elle implique des drives dordre au plus p. Dans le prsent chapitre, nous considrons desquations diffrentielles ordinaires dordre un.Dfinition quations diffrentiellesUne quation diffrentielle (EDO) est une quation, dont linconnue est une fonction y , exprime sous la forme dunerelation F (y, y , y , . . . , y (n))= g (t ) dans laquelle cohabitent la fois y = y(t ) et ses drives y , y , . . . (n est appel lordrede lquation). Si la fonction g , appele second membre de lquation, est nulle, on dit que lquation en question esthomogne.Nous pouvons nous limiter aux quations diffrentielles du premier ordre, car une quation dordre p > 1 peut toujoursse ramener un systme de p quations dordre 1. Une quation diffrentielle ordinaire admet gnralement une infinitde solutions. Pour en slectionner une, on doit imposer une condition supplmentaire qui correspond la valeur prise parla solution en un point de lintervalle dintgration. On considrera par consquent des problmes, dits de CAUCHY ainsidfini :Dfinition Problme de CAUCHYSoit f : I RR une fonction donne et y la drive de y par rapport t . On appelle problme de CAUCHY le problmetrouver y : I RR tel que {y (t )= f (t , y(t )), t I ,y(t0)= y0,avec t0 un point de I et y0 une valeur appele donne initiale.ExempleOn se donne f (t , y(t ))= 3t 3y(t ) et y0 = (un nombre quelconque). On cherche une fonction y : t R+ 7 y(t ) R qui satisfait{y (t )= 3t 3y(t ), t > 0,y(0)=.Sa solution est donne par y(t )= (1/3)e3t + t +1/3.Exemple Non unicit de la solution dun problme de CAUCHYOn se donne f (t , y(t ))= 3y(t ) et y0 = 0. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait{y (t )= 3y(t ), t > 0,y(0)= 0.On vrifie que les fonctions y1(t )= 0 et y2,3(t )=8t 3/27, pour tout t 0, sont toutes trois solutions du problme de CAUCHY donn.Cest exemple montre quun problme de CAUCHY nas pas ncessairement de solution unique.Exemple Non existence sur R de la solution dun problme de CAUCHYOn se donne f (t , y(t ))= (y(t ))3 et y0 = 1. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait{y (t )= (y(t ))3, t > 0,y(0)= 1.994. quations diffrentielles ordinaires Jeudi 31 janvier 2013On vrifie que la solution y est donne par y(t ) = 1/p12t qui nest dfinie que pour t [0;1/2[. Cest exemple montre quun pro-blme de CAUCHY nas pas toujours une solution pour tout t [0;+[ puisquici la solution explose lorsque t tend vars la valeur 1/2(en effet, nous avons limt(1/2) y(t )=+).Les trois exemples ci-dessus montrent que ltude mathmatique de lexistence et de lunicit de solutions dun pro-blme de CAUCHY peut tre une affaire dlicate. Dans ce chapitre, nous nous contentons de rappeler un rsultat dexistenceet dunicit global, au sens o on peut intgrer le problme de CAUCHY jusqu t = :Proposition Thorme de CAUCHY-LipschitzSoit un problme de CAUCHY. Si la fonction f (t , y) est1. continue par rapport ses deux variables ;2. lipschitzienne par rapport sa deuxime variable, cest--dire quil existe une constante positive L (appeleconstante de Lipschitz) telle que| f (t , y1) f (t , y2)| L|y1 y2|, t I , y1, y2 R,alors la solution y = y(t ) du problme de CAUCHY existe, est unique et appartient C 1(I ).Cas particulierSoient a et g deux fonctions continues dun intervalle I dans R, si f (t , y(t )) = a(t )y(t )+ g (t ) et si (t0, y0) I R, alors ilexiste une unique solution y de lquation diffrentielle telle que y(t0)= y0.RemarqueGraphiquement, ce thorme signifie que par tout point du plan dont labscisse est dans I , il passe une courbe intgraleet une seule, autrement dit deux trajectoires ne peuvent pas se croiser. En particulier, si une quation diffrentielle admetcomme solution la solution nulle, alors toute autre solution est soit toujours positive soit toujours ngative.ExempleOn se donne f (t , y(t ))= |y(t )|+ sin(y(t ))+et 2/2 et y0 = 1. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait{y (t )= (y(t ))3, t > 0,y(0)= 1.On vrifie facilement que f (t , y1(t )) f (t , y2(t ))= |y1(t )|+ sin(y1(t ))|y2(t )| sin(y2(t ))=|y1(t )| |y2(t )|+ y1y2sin()d |y1(t )| |y2(t )|+ |y1(t ) y2(t )| y1(t ) y2(t )Par le thorme de CAUCHY-Lipschitz, le problme de CAUCHY a une solution globale unique y(t ). Cependant, il nest pas possible dedonner une expression explicite de la solution.En pratique, on ne peut expliciter les solutions que pour des quations diffrentielles ordinaires trs particulires. Danscertains cas, on ne peut exprimer la solution que sous forme implicite. Dans dautres cas, on ne parvient mme pas reprsenter la solution sous forme implicite. Pour ces raisons, on cherche des mthodes numriques capables dapprocherla solution de toutes les quations diffrentielles qui admettent une solution.Attention Problme de CAUCHY numriquement mal posUne fois calcule la solution numrique { un }Nhn=1, il est lgitime de chercher savoir dans quelle mesure lerreur |y(tn)un | est petite ou non pour n = 1,2, . . . . Nous essayons de rpondre cette question en reprenant le premier exemple duchapitre. On se donne f (t , y(t )) = 3t 3y(t ) et y0 = (un nombre quelconque). On cherche une fonction y : t R+ 7y(t ) R qui satisfait {y (t )= 3t 3y(t ), t > 0,y(0)=.Nous avons vu que sa solution est donne par y(t ) = ( 1/3)e3t + t + 1/3. Si nous cherchons rsoudre le problmede CAUCHY jusqu t = 10 avec = 1/3, nous obtenons y(10) = 10+ 1/3 = 31/3. Par contre, si nous faisons le calculavec lapproximation = 0.333333 au lieu de 1/3, nous avons y(10) = (0.333333 1/3)e30 + 10+ 1/3 = e30/3000000+31/3 ce qui reprsente une diffrence avec la prcdente valeur de e30/3000000 107/3. Cet exemple nous apprend100 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesquune petite erreur sur la condition initiale (erreur relative dordre 106) peut provoquer une trs grande erreur sury(10) (erreur relative dordre 106). Ainsi, si le calculateur mis notre disposition ne calcul quavec 6 chiffres significatifs(en virgule flottante), alors = 1/3 devient = 0.333333 et il est inutile dessayer dinventer une mthode numriquepour calculer y(10). En effet, la seule erreur sur la condition initiale provoque dj une erreur inadmissible sur la solution.Nous sommes en prsence ici dun problme numriquement mal pos, appel aussi problme mal conditionn.4.1. Schmas numriquesConsidrons le problme de CAUCHY et supposons que lon ait montr lexistence dune solution y .Le principe de toutes ces mthodes est de subdiviser lintervalle I = [t0,T ], avec T 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013? Si on utilise la formule du trapze, i.e. tn+1tnf (t , y(t ))d t h2(f (tn , y(tn))+ f (tn+1, y(tn+1)))on obtient le schma du trapze ou de CRANCK-NICHOLSON{u0 = y(y0)= y0,un+1h f (tn+1,un+1)= un +h f (tn ,un) n = 0,1,2, . . .Il sagit nouveau dun schma implicite car il ne permet pas dexpliciter directement un+1 en fonction de un lorsquela fonction f nest pas triviale. En fait, ce schma fait la moyenne des schmas dEULER progressif et rtrograde.? Pour viter le calcul implicite de un+1 dans le schma du trapze, nous pouvons utiliser une prdiction dEULER pro-gressive et remplacer le un+1 dans le terme f (tn+1,un+1) par un+1 = un +h f (tn ,un). Nous avons construit ainsi unnouveau schma appel schma de HEUN. Plus prcisment, la mthode de HEUN scritu0 = y(y0)= y0,un+1 = un +h f (tn ,un),un+1 = un +h(f (tn ,un)+ f (tn+1, un+1))n = 0,1,2, . . .RemarqueConsidrons le schma dEULER rtrograde. Si nous voulons calculer un+1, nous dfinissons la fonctiong (x)= xh f (tn+1, x)unet nous cherchons un zro de g (x) en prenant par exemple la mthode de NEWTON. Ainsi nous pouvons poser x0 = u0 etxm+1 = xm g (xm)/g (xm), m = 0,1, . . . . Puisque g (x)= 1hx f (tn+1, x), nous obtenons donc dans ce cas le schma{x0 = un ,xm+1 = xm xmh f (tn+1,x)un1hx f (tn+1,x) m = 0,1,2, . . .et un+1 = limm xm pour autant que f soit suffisamment rgulire et que x0 soit suffisamment proche de un+1, ce quiest le cas si le pas h est suffisamment petit.4.2. StabilitDans la section prcdente, on a considr la rsolution du problme de CAUCHY sur des intervalles borns. Dans cecadre, le nombre Nh de sous-intervalles ne tend vers linfini que quand h tend vers zro. Il existe cependant de nombreusessituations dans lesquelles le problme de CAUCHY doit tre intgr sur des intervalles en temps trs grands ou mme infini.Dans ce cas, mme pour h fix, Nh tend vers linfini. On sintresse donc des mthodes capables dapprocher la solutionpour des intervalles en temps arbitrairement grands, mme pour des pas de temps h assez grands.A premire vue, il semble que le schma dEULER progressif soit prfrable au schma dEULER rtrograde puisque cedernier nest pas explicite. Cependant, nous verrons sur un exemple que le schma progressif peut engendrer des difficultsque le schma rtrograde nengendre pas.Considrons le problme de CAUCHY dans le cas particulier o f (t , y(t ))=y(t ) avec un nombre rel positif donn.Sa solution est trivialement y(t ) = y0et . Puisque est positif, ce problme est numriquement bien pos : y(t ) dcrotexponentiellement lorsque t tend vers linfini. Pour discrtiser la demi-droite t 0, nous choisissons un nombre rel h > 0et nous posons tn = nh avec n = 0,1,2, . . . Nous allons tudier dans ce cadre les deux schmas dEULER, savoir le schmadEULER progressif et le schma dEULER rtrograde.? Le schma dEULER progressif devientun+1 = (1h)un , n = 0,1,2, . . .et par suiteun+1 = (1h)nu0, n = 0,1,2, . . .Bien que la solution y(t ) tend vers zro lorsque t tend vers linfini, nous voyons que si u0 6= 0 et 1h < 1 alors untend vers linfini en alternant de signe lorsque t tend vers linfini. Nous dirons dans ce cas que le schma dEULER102 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesprogressif est instable. Pour viter de phnomne, il convient donc dimposer 1 1h, ce qui aura pour effet delimiter h h 2.Cette condition est appele condition de stabilit : elle limite le pas h davance en t lorsquon utilise le schma dEULERprogressif.? Le schma dEULER rtrograde devient dans le cadre de notre exemple(1+h)un+1 = un , n = 0,1,2, . . .et par suiteun+1 = 1(1h)n+1 u0, n = 0,1,2, . . .Dans ce cas nous voyons que pour tout h > 0 nous avons limnun = 0, le schma dEULER rtrograde est donctoujours stable, sans limitations sur h.DfinitionLa propritlimn+un = 0est appele stabilit absolue. Les mthodes qui sont inconditionnellement absolument stables pour tout complexe departie relle ngative sont dites A-stables.Les mthodes dEULER implicite et de CRANK-NICOLSON sont donc A-stables. Cest aussi le cas de nombreuses autresmthodes implicites. Cette proprit rend les mthodes implicites attractives, bien quelles soient plus coteuses que lesmthodes explicites. G. Faccanoni 1034. quations diffrentielles ordinaires Jeudi 31 janvier 2013TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTVoici les function python des mthodes illustres dans ce chapitre1 #!/usr/bin/python2 #-*- coding: Utf-8 -*-34 import math5 import sys6 import matplotlib.pyplot as plt78 def euler_progressif(f,tt,N):9 yy = [y0]10 for i in range(N):11 yy.append(yy[i]+h*f(tt[i],yy[i]))12 return yy1314 def euler_modifie(f,tt,N):15 yy = [y0]16 for i in range(N):17 yy.append(yy[i]+h*f(tt[i]+h*0.5,yy[i]+h*0.5*f(tt[i],yy[i])))18 return yy1920 def heun(f,tt,N):21 yy = [y0]22 for i in range(N):23 yy.append(yy[i]+h*(f(tt[i],yy[i])+f(tt[i+1],yy[i]+h*f(tt[i],yy[i]))))24 return yyet voici un exemple25 # INITIALISATION26 N = 327 exemple = 42829 if exemple==1 :30 t0 = 0.31 y0 = 1.32 tfinal = 3.33 def f(t,y):34 return y35 def sol_exacte(t):36 return math.exp(t)37 elif exemple==2 :38 t0 = 0.39 y0 = 1.40 tfinal = 3.41 def f(t,y):42 return t43 def sol_exacte(t):44 return 1.+0.5*t**245 elif exemple==3 :46 t0 = 0.47 y0 = 0.48 tfinal = 1.49 def f(t,y):50 return math.cos(2*y)51 def sol_exacte(t):52 return 0.5*math.asin((math.exp(4.*t)-1.)/(math.exp(4.*t)+1.))53 else :54 print "Exemple non defini"55 sys.exit(0)5657 # CALCUL58 h = (tfinal-t0)/N59 tt = [ t0+i*h for i in range(N+1) ]60 yy_exacte = [sol_exacte(t) for t in tt]61 yy_euler_progressif = euler_progressif(f,tt,N)104 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinaires62 yy_euler_modifie = euler_modifie(f,tt,N)63 yy_heun = euler_modifie(f,tt,N)6465 # AFFICHAGE66 plt.axis([t0, tfinal, min(yy_euler_progressif), max(yy_euler_progressif)])67 plt.plot(tt,yy_exacte,m,tt,yy_euler_progressif,go,tt,yy_euler_modifie,cs,tt,yy_heun,r^)68 plt.show() G. Faccanoni 1054. quations diffrentielles ordinaires Jeudi 31 janvier 2013.............. Exercices .............Exercice 4.1 Stabilit de la mthode dEULER explicite en fonction du pasOn considre le problme de CAUCHY {y (t )=y(t ),y(0)= 1,sur lintervalle [0;10].1. Calculer la solution exacte du problme de CAUCHY.2. Soit t le pas temporel. crire la mthode dEULER explicite pour cette quation diffrentielle ordinaire (EDO).3. En dduire une forme du typeyk+1 = g (t ,k)avec g (t ,k) prciser (autrement dit, litre en tk ne dpend que de t et k et ne dpend pas de yk ).4. Utiliser la formulation ainsi obtenue pour tracer les solutions? exacte,? obtenue avec la mthode dEULER avec t = 2.5,? obtenue avec la mthode dEULER avec t = 1.5,? obtenue avec la mthode dEULER avec t = 0.5.5. Que peut-on en dduire sur la stabilit de la mthode ?CORRECTION.1. Il sagit dune EDO variables sparables. Lunique solution constante de lEDO est la fonction y(t ) 0, toutes lesautres solutions sont du type y(t )=Cet . Donc lunique solution du problme de CAUCHY est la fonction y(t )= etdfinie pour tout t R.2. La mthode dEULER est une mthode dintgration numrique dEDO du premier ordre de la forme y (t )= F (t , y(t ))Cest une mthode itrative : la valeur y linstant t+t se dduisant de la valeur de y linstant t par lapproximationlinairey(t +t ) y(t )+ y (t )t = y(t )+F (t , y(t ))t .En choisissant un pas de discrtisationt , nous obtenons une suite de valeurs (tk , yk ) qui peuvent tre une excellenteapproximation de la fonction y(t ) avec {tk = t0+kt ,yk = yk1+F (tk1, yk1)t .La mthode dEULER explicite pour cette EDO scrit doncyk+1 = (1t )yk .3. En procdant par rcurrence sur k, on obtientyk+1 = (1t )k+1.4. On a donc? si t = 2.5 alors yk =(32)k,? si t = 1.5 alors yk =(12)k,? si t = 0.5 alors yk =(12)k.Ci-dessous sont traces sur lintervalle [0;10], les courbes reprsentatives de la solution exacte et de la solution cal-cule par la mthode dEULER explicite. En faisant varier le pas t nous pouvons constater que si t = 2.5 lerreurcommise entre la solution exacte et la solution calcule est amplifie dun pas lautre.106 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesty1 2 3 4 5 6 7 8 93210123Exactet = 0.5t = 1.5t = 2.5NB : les trois premires itres ont la mme pente (se rappeler de la construction gomtrique de la mthode dEULER).5. De la formule yk+1 = (1t )k+1 on dduit que? si 0 1 ou q =1,? est stationnaire si q = 1,? converge vers 0 |q | < 1.Exercice 4.2Lvolution de la concentration de certaines ractions chimiques au cours du temps peut tre dcrite par lquationdiffrentielley (t )= 11+ t 2 y(t ).Sachant qu linstant t = 0 la concentration est y(0) = 5, dterminer la concentration t = 2 laide de la mthodedEULER implicite avec un pas h = 0.5.CORRECTION. La mthode dEULER implicite est une mthode dintgration numrique dEDO du premier ordre de laforme y (t )= F (t , y(t )). Cest une mthode itrative : en choisissant un pas de discrtisation h, la valeur y linstant t +hse dduit de la valeur de y linstant t par lapproximation linairey(t +h) y(t )+hy (t +h)= y(t )+hF (t +h, y(t +h)).On pose alors tk = t0+kh, k N. En rsolvant lquation non-linaireyk+1 = yk +hF (tk+1, yk+1),on obtient une suite (yk )kN qui approche les valeurs de la fonction y en tk . Dans notre cas, lquation non-linaire scrityk+1 = yk h1+ t 2k+1yk+1.Elle peut tre rsolue algbriquement et cela donne la suiteyk+1 =yk1+ h1+t 2k+1. G. Faccanoni 1074. quations diffrentielles ordinaires Jeudi 31 janvier 2013Si linstant t = 0 la concentration est y(0)= 5, et si h = 1/2, alors tk = k/2 etyk+1 =4+ (k+1)26+ (k+1)2 yk .On obtient donck tk yk0 0 51 0.5 4+126+12 5= 57 5= 257 3.572 1.0 4+226+22257 = 810 257 = 207 2.863 1.5 4+326+32207 = 1315 207 = 5221 2.484 2.0 4+426+425221 = 2022 5221 = 520231 2.25La concentration t = 2 est denviron 2.25. Comparons avec le calcul exact : y(2)= 5earctan(2) 1.652499838.ty1 2 312345ExacteEULER impliciteExercice 4.3Soit > 0 un nombre rel positif et considrons le problme de CAUCHY{y (t )=y(t ), pour t > 0,y(0)= y0,(4.1)o y0 est une valeur donne. Soit h > 0 un pas de temps donn, ti = i h pour i N et yi une approximation de y(ti ).1. crire le schma du trapze (appel aussi de CRANCK-NICHOLSON) permettant de calculer yi+1 partir de yi . Sousquelle condition sur h le schma du trapze est-il A-stable ? Autrement dit, pour quelles valeurs de h la relationlimi+yi = 0 a-t-elle lieu ?2. partir du schma du trapze, en dduire le schma de HEUN. Sous quelle condition sur h le schma de HEUNest-il A-stable ?CORRECTION. Le problme (4.1) est un problme du typetrouver y : I R+R tel que {y (t )= f (t , y(t )), t I ,y(t0)= y0.Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur h et, pour chaquenud ti = t0+i h (i N ), on cherche la valeur inconnue yi qui approche y(ti ). Lensemble de valeurs{y0, y1, . . .}reprsentela solution numrique. Les schmas numriques permettent de calculer yi+1 partir de yi et il est donc possible de calculersuccessivement y1, y2,. . . en partant de y0.1. Si nous intgrons lEDO y (t )= f (t , y(t )) entre ti et ti+1 nous obtenonsy(ti+1) y(ti )= ti+1tif (t , y(t )) dt .108 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesSoit yi une approximation de y(ti ) et yi+1 une approximation de y(ti+1). Si on utilise la formule du trapze, i.e. ti+1tif (t , y(t )) dt h2(f (ti , y(ti ))+ f (ti+1, y(ti+1)))on obtient le schma du trapze ou de CRANCK-NICHOLSON{y0 = y(t0),yi+1 h2 f (ti+1, yi+1)= yi + h2 f (ti , yi ), pour i = 0,1,2, . . .Il sagit dun schma implicite car il ne permet pas dcrire directement yi+1 en fonction de yi lorsque la fonctionf nest pas triviale. En appliquant le schma du trapze au problme (4.1) on obtient la suite dfinie par rcurrencesuivante {y0 = y(t0),(1+ h2)yi+1 =(1 h2)yi .Par induction on obtientyi =(2h2+h)iy0.Par consquent, limi+yi = 0 si et seulement si 2h2+h< 1.Notons x le produit h > 0 et q la fonction q(x) = 2x2+x = 1 2 x2+x . Nous avons 0 < x2+x < 1 pour tout x R+, donc|q(x)| < 1 pour tout x R+. La relation limi+yi = 0 est donc satisfaite pour tout h > 0.2. Pour viter le calcul implicite de yi+1 dans le schma du trapze, nous pouvons utiliser une prdiction dEULERprogressive et remplacer le yi+1 dans le terme f (ti+1, yi+1) par yi+1 = yi +h f (ti , yi ). Nous avons construit ainsi leschma de HEUN. Plus prcisment, cette mthode scrit{y0 = y(t0),yi+1 = yi + h2(f (ti , yi )+ f(ti+1, yi +h f (ti , yi)), pour i = 0,1,2, . . .En appliquant le schma de HEUN au problme (4.1) on obtient la suite dfinie par rcurrence suivante{y0 = y(t0),yi+1 =(1h+ (h)22)yi .Par induction on obtientyi =(1h+ (h)22)iy0.Par consquent, limi+yi = 0 si et seulement si 1h+2 (h)22< 1.Notons x le produit h et q le polynme q(x)= 12 x2x+1 dont le graphe est reprsent en figure.x =hq0 21Nous avons |q(x)| < 1 si et seulement si 0< x < 2. La relation limi+yi = 0 est donc satisfaite si et seulement sih < 2. G. Faccanoni 1094. quations diffrentielles ordinaires Jeudi 31 janvier 2013Exercice 4.4On considre le problme de CAUCHY {y (t )=(y(t ))m +cos(t ), pour t > 0,y(0)= 0, (4.2)o m est un entier impair.1. Montrer que le problme (4.2) possde une solution unique globale.2. Soit t > 0 un pas de temps donn, soit ti = it pour i N et yi une approximation de y(ti ). crire le schmadEULER rtrograde permettant de calculer yi+1 partir de yi .3. partir du schma obtenu au point prcdent, crire un seul pas de la mthode de NEWTON pour calculer unenouvelle approximation de yi+1. En dduire ainsi un nouveau schma explicite.CORRECTION.1. Le problme (4.2) est un problme du typetrouver y : I R+R tel que {y (t )= f (t , y(t )), t I ,y(t0)= y0,Si la fonction f (t , y) est1.1. continue par rapport ses deux variables ;1.2. lipschitzienne par rapport sa deuxime variable, cest--dire quil existe une constante positive L (appeleconstante de Lipschitz) telle que| f (t , y1) f (t , y2)| L|y1 y2|, t I , y1, y2 R,alors la solution y = y(t ) du problme de CAUCHY existe, est unique et appartient C 1(I ).Dans notre cas, f (t , y(t )) = (y(t ))m + cos(t ) et y0 = 0. Puisque m est impair et t f (y, y(t )) = m(y(t ))m1 0, lafonction f est dcroissante et satisfait donc(f (t1, y(t1)) f (t2, y(t2)))(t1 t2) 0 t1, t2 R.Par consquent, le problme (4.2) possde une solution unique globale.2. Le problme (4.1) est un problme du typetrouver y : I R+R tel que {y (t )= f (t , y(t )), t I ,y(t0)= y0.Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueurt et, pourchaque nud tn = t0 + it (i 0 ), on cherche la valeur inconnue yi qui approche y(ti ). Lensemble de valeurs{y0, y1, . . .}reprsente la solution numrique. Le schma de EULER rtrograde tablit une relation entre yi et yi+1 etil est donc possible de calculer successivement y1, y2,. . ., en partant de y0.Si nous intgrons lEDO y (t )= f (t , y(t )) entre ti et ti+1 nous obtenonsy(ti+1) y(ti )= ti+1tif (t , y(t )) dt .Soit yi une approximation de y(ti ) et yi+1 une approximation de y(ti+1). Si on utilise la formule du rectangle droite,i.e. ti+1tif (t , y(t )) dt t f (ti+1, y(ti+1))on obtient le schma dEULER rtrograde :{y0 = 0,yi+1 = yi +t((yi+1)m +cos(ti+1)) .Ce schma est implicite car il ne permet pas de calculer yi+1 directement partir de yi .110 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinaires3. Il sagit de trouver yi+1 tel queyi+1 = yi +t(ymi+1+cos(ti+1)) .Pour dterminer yi+1 nous devons chercher le zro de la fonction g dfinie parg (x)= x+t xm (t cos(ti+1)+ yi ) .La mthode de NEWTON pour approcher le zro de g scritxk+1 = xk g (xk )g (xk )= xk xk +t xmk (t cos(ti+1)+ yi)1+mt xm1k.Le premier pas de la mthode de NEWTON scrit doncx1 = x0x0+t xm0 (t cos(ti+1)+ yi)1+mt xm10.Choisissons x0 = yi comme valeur de dpart. Nous pouvons utiliser x1 comme approximation de yi+1 et on obtientle schma y0 = 0,yi+1 =yi +t ymi (t cos(ti+1)+ yi)1+mt ym1i.Exercice 4.5Soit le problme de CAUCHY : {u(t )+10u(t )= 0, t R,u(0)= u0 > 0.(4.3)1. Montrer quil existe une unique solution globale u C(R,R) que vous prciserez explicitement.2. Soit le schma numrique de Cranck-Nicholson dfini par la suite (un)nN vrifiantun+1unt+5(un+1+un)= 0, n N,pour t > 0 fix.Montrer que la suite (un)nN est une suite gomtrique dont vous prciserez la raison.3. Montrer que la raison r de la suite vrifie |r | < 1 pour tout t > 0. Ce schma est-il inconditionnellement A-stable ?4. Sous quelle condition sur t > 0 le schma gnre-t-il une suite positive ?5. Donner lexpression de un en fonction de n.6. Soit T > 0 fix, soit n = n(t ) tel que T t < nt T . Montrer quelimt0un = u0e10T .7. Soit (vn)nN la suite dfinissant le schma dEULER explicite pour lquation diffrentielle (4.3). Montrer quelimt0vn = u0e10T .Montrer que la suite (un ) converge plus vite que (vn ) lorsque t 0.CORRECTION. Cest un problme de CAUCHY du type{u(t )= f (t ,u(t )), t R,u(0)= u0 > 0,(4.4)avec f (t ,u(t ))= g (u(t ))=10u(t ).1. Comme g C 1(R,R), daprs CAUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1([T,T ],R). Par rcur-rence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur u ainsi u C([T,T ],R). La fonctionnenulle est solution de lquation diffrentielle f (t ,0) = 0, par lunicit de la solution du problme de CAUCHY, pourtout t [T,T ], u(t )> 0 si u0 > 0 et u(t )< 0 si u0 > 0 (autrement dit, deux trajectoires ne peuvent pas se croiser). De G. Faccanoni 1114. quations diffrentielles ordinaires Jeudi 31 janvier 2013plus, u est dcroissante si u0 > 0 et croissante si u0 < 0. On en dduit par le thorme des extrmits que la solutionu admet un prolongement sur R solution de lEDO.Pour en calculer la solution, on remarque quil sagit dune EDO variables sparables. Lunique solution constanteest u(t ) 0, toutes les autres solutions sont du type u(t ) = Ce10t . En prenant en compte la condition initiale onconclut que lunique solution du problme de CAUCHY est u(t )= u0e10t dfinie pour tout t R.ty1 132101232. Soit le schma numrique de Cranck-Nicholson dfini par la suite (un)nN vrifiantun+1unt+5(un+1+un)= 0, n N,pour t > 0 fix. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire :un+1 =5tun+15tun +undoun+1 = 15t1+5t un .Il sagit dune suite gomtrique de raisonr = 15t1+5t .3. Pour tout t > 0 on ar = 15t1+5t = 110t1+5tet1< 1 10t1+5t < 1.Ce schma est donc inconditionnellement A-stable car |un+1| = |r n+1u0| |u0|.4. Le schma gnre une suite positive ssi1 10t1+5t > 0i.e. ssit < 15.5. Par rcurrence on obtientun =(15t1+5t)nu0.6. Soit T > 0 fix et considrons n = n(t ) tel que T t < nt T . En se rappelant quelimx0ln(1+x)x= 1et en observant que ( 15t1+5t) Tt 1 ( 15t1+5t )n ( 15t1+5t ) Tt e(Tt )ln(15t )ln(1+5t )t eTln(15t )ln(1+5t )t e(Tt )5ln(15t )5ln(1+5t )5t eT5ln(15t )5ln(1+5t )5t e10T e10T112 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinaireson conclut quelimt0un = u0 limt0(15t1+5t)n= u0e10T .7. La suite dfinissant le schma dEULER explicite pour lEDO assigne scritvn+1 vnt= f (tn ,un) = vn+1 = vn 10t vn = (110t )vn = (110t )n+1v0.Il sagit nouveau dune suite gomtrique de raisonre = 110tqui converge si et seulement si |re | < 1, i.e. si et seulement si t < 0,2 (le schma dEULER pour cette EDO est condi-tionnellement stable).Soit T > 0 fix et considrons n = n(t ) tel que T t < nt T . Alors(110t ) Tt 1 (110t )n (110t ) Tt e(Tt )ln(110t )t eTln(110t )t e10(Tt )ln(110t )10t e10Tln(110t )10t e10T e10Tdolimt0vn = u0 limt0(110t ) Tt = u0e10T .De plus, on sait (cf. cours) que la suite {un}nN converge lordre 2 tandis que la suite {vn}nN converge lordre 1.Exercice 4.6Soit le problme de CAUCHY : {u(t )+u5(t )= 0, t R+,u(0)= u0 > 0.(4.5)1. Montrer quil existe une unique solution globale u C(R+,R+).2. Soit le schma numrique dfini par la suite (un)nN suivanteun+1unt+un+1u4n = 0, n N,pour t > 0 fix. Expliciter lexpression de un+1 en fonction de un .3. Montrer que la suite (un)nN est une suite dcroissante et convergente vers 0. Ce schma est-il inconditionnelle-ment A-stable ?CORRECTION.Cest un problme de CAUCHY du type {u(t )= f (t ,u(t )), t R,u(0)= u0 > 0,(4.6)avec f (t ,u(t ))= g (u(t ))=u5(t ).1. Comme g C 1(R+,R+), daprs CAUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1([0,T ],R+). Par r-currence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur u et u C([0,T ],R+).La fonctionne nulle est solution de lquation diffrentielle g (0) = 0. Comme u0 > 0, par lunicit de la solution duproblme de CAUCHY on a u(t )> 0 pour tout t [0,T ] (car deux trajectoires ne peuvent pas se croiser). De plus, u estdcroissante, ainsi la solution est borne (u(t ) ]0,u0[). On en dduit par le thorme des extrmits que la solutionu admet un prolongement sur R+ solution de lEDO.2. Pour t > 0 fix on obtient une formule de rcurrence rendue explicite par un calcul lmentaire :un+1 = un1+u4nt, n N. G. Faccanoni 1134. quations diffrentielles ordinaires Jeudi 31 janvier 20133. On tudie la suite {u0 > 0,un+1 = un1+u4nt , n N,pour t > 0 fix.Par rcurrence on montre que si u0 > 0 alors un > 0 pour tout n N. De plus, un+1un =11+u4nt < 1 pour tout n N : lasuite est monotone dcroissante. On a alors une suite dcroissante et borne par zro, donc elle converge. Soit ` lalimite de cette suite, alors ` 0 et `= `1+`4t donc `= 0. Ce schma est donc inconditionnellement A-stable.Exercice 4.7Soit le problme de CAUCHY : {u(t )+ sin(u(t ))= 0, t R,u(0)= u0 > 0.(4.7)1. Montrer quil existe une unique solution globale u C(R,R).2. crire le schma le schma dEULER explicite pour ce problme de CAUCHY en explicitant vos notations.3. Montrer que la suite (un)nN construite par ce schma vrifie|un+1| |un |+t , n N,o t > 0 est le pas de la suite.4. En dduire que|un | |u0|+nt , n N.CORRECTION.Cest un problme de CAUCHY du type {u(t )= f (t ,u(t )), t R,u(0)= u0 > 0,(4.8)avec f (t ,u(t ))= g (u(t ))=sin(u(t )).1. Comme g C 1(R,R), daprs CAUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1([T,T ],R). Par rcur-rence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur u et u C([T,T ],R).Toutes les fonctions constante u(t ) = kpi pour k Z sont solutions de lquation diffrentielle car g (kpi) = 0. Pouru0 donn, soit k Z tel que u0 [kpi; (k + 1)pi] ; par lunicit de la solution du problme de CAUCHY on a u(t ) [kpi; (k +1)pi] pour tout t [T,T ] (car deux trajectoires ne peuvent pas se croiser), i.e. la solution est borne. On endduit par le thorme des extrmits que la solution u admet un prolongement sur R solution de lEDO.2. Soit t > 0 fix et tn = nt pour tout n Z. Le schma dEULER explicite pour lEDO donne construit la suiteun+1 = un t sin(un), n N.3. Comme |a+b| |a|+ |b| et comme | sin(x)| 1 pour tout x R, on conclut que|un+1| = |un t sin(un)| |un |+ |t sin(un)| |un |+tpour t > 0 fix.4. Par rcurrence : |un+1| |un |+t |un1|+2t |u0|+ (n+1)t .Exercice 4.8 Loi de NEWTONKConsidrons une tasse de caf la temprature de 75C dans une salle 25C. On suppose que la temprature du cafsuit la loi de Newton, cest--dire que la vitesse de refroidissement du caf est proportionnelle la diffrence des temp-ratures. En formule cela signifie quil existe une constante K < 0 telle que la temprature vrifie lquation diffrentielleordinaire (EDO) du premier ordre.T (t )=K (T (t )25).La condition initiale (CI) est donc simplementT (0)= 75.114 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesPour calculer la temprature chaque instant on a besoin de connatre la constante K . Cette valeur peut tre dduite enconstatant quaprs 5 minutes le caf est 50C, cest--direT (5)= 50.Calculer la solution exacte de ce problme de CAUCHY et la comparer avec la solution approche obtenue par la mthodedEULER explicite.CORRECTION.Solution exacte 1. On commence par calculer toutes les solutions de lEDO. tant une quation diffrentielle du pre-mier ordre, la famille de solutions dpendra dune constante quon fixera en utilisant la CI. Il sagit dune EDO variables sparables donc formellement on aT (t )=K (T (t )25) = T(t )(T (t )25) =K =dT(T 25) =K d t =1(T 25) dT =Kd t = ln(T 25)=K t + c = T 25=DeK t = T (t ) = 25+DeK t2. La valeur numrique de la constante dintgration D est obtenue grce la CI :75= T (0)= 25+DeK 0 = D = 50 = T (t )= 25+50eK t3. Il ne reste qu tablir la valeur numrique de la constante de refroidissement K grce lindice :50= T (5)= 25+50eK t = K = ln(2)50.14 = T (t )= 25+50e ln(2)5 tOn peut donc conclure que la temprature du caf volue selon la fonctionT (t )= 25+50e ln(2)5 t .tT5 10 150255075Solution approche par la mthode dEuler progressive Supposons de connatre K mais de ne pas vouloir/pouvoircalculer la fonction T (t ). Grce la mthode dEULER on peut estimer la temprature diffrentes instantes ti enfaisant une discrtisation temporelle du futur (i.e. on construit une suite de valeurs {ti = 0+ it }i ) et en construisantune suite de valeurs {Ti }i o chaque Ti est une approximation de T (ti ). Si on utilise la mthode dEULER, cette suitede temprature est ainsi construite : {Ti+1 = Ti ln(2)5 t (Ti 25),T0 = 75,quon peut rcrire comme {Ti+1 = (1 ln(2)5 t )Ti +5ln(2)t ,T0 = 75.1. Exemple avec t = 5 : G. Faccanoni 1154. quations diffrentielles ordinaires Jeudi 31 janvier 2013tT5 10 150255075ti T (ti ) Ti T (ti )Ti0.000000 75.000000 75.000000 0.0000005.000000 50.000000 40.342641 9.65735910.000000 37.500000 29.707933 7.79206715.000000 31.250000 26.444642 4.8053582. Exemple avec t = 1 :tT5 10 150255075ti T (ti ) Ti T (ti )Ti0.000000 75.000000 75.000000 0.0000001.000000 68.527528 68.068528 0.4590002.000000 62.892914 62.097962 0.7949523.000000 57.987698 56.955093 1.0326054.000000 53.717459 52.525176 1.1922835.000000 50.000000 48.709377 1.2906236.000000 46.763764 45.422559 1.3412057.000000 43.946457 42.591391 1.3550668.000000 41.493849 40.152707 1.3411429.000000 39.358729 38.052095 1.30663410.000000 37.500000 36.242691 1.25730911.000000 35.881882 34.684123 1.19775912.000000 34.473229 33.341618 1.13161013.000000 33.246924 32.185225 1.06170014.000000 32.179365 31.189141 0.99022415.000000 31.250000 30.331144 0.918856116 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinairesExercice 4.9 Les experts - ToulonLa loi de Newton affirme que la vitesse de refroidissement dun corps est proportionnelle la diffrence entre la tem-prature du corps et la temprature externe, autrement dit quil existe une constante K < 0 telle que la temprature ducorps suit lquation diffrentielle {T (t )=K (T (t )Text),T (0)= T0.1. Soit t le pas temporel. crire le schma dEULER implicite pour approcher la solution de cette quation diffren-tielle.2. Soit Text = 0C. En dduire une forme du typeTn+1 = g (t ,n,T0)avec g (t ,n,T0) prciser (autrement dit, litr en tn ne dpend que det , de n et de T0). Que peut-on en dduiresur la convergence de la mthode ?3. Problme. Un homicide a t commis. On veut tablir lheure du crime sachant que? pour un corps humaine on peut approcher K 0.007438118376 (lchelle du temps est en minutes et latemprature en Celsius),? le corps de la victime a t trouv sur le lieu du crime 2H20 du matin,? lheure du dcs la temprature du corps tait de 37C,? lheure de la dcouverte la temprature du corps est de 20C,? la temprature externe est Text = 0C.Approcher lheure de lhomicide en utilisant le schma dEULER implicite avec t = 10 minutes.4. Pour cette quation diffrentielle, il est possible de calculer analytiquement ses solutions. Comparer alors la solu-tion exacte avec la solution approche obtenue au point prcdent.CORRECTION.1. La mthode dEULER implicite (ou rgressive) est une mthode dintgration numrique dEDO du premier ordre dela forme T (t )= F (t ,T (t )). En choisissant un pas de discrtisation t , nous obtenons une suite de valeurs (tn ,Tn) quipeuvent tre une excellente approximation de la fonction T (t ) avec{tn = t0+nt ,Tn+1 = Tn +F (tn+1,Tn+1)t .La mthode dEULER implicite pour cette EDO scrit doncTn+1 = Tn +Kt (Tn+1Text).2. Si Text = 0C, en procdant par rcurrence sur n on obtientTn+1 = g (t ,n)= 11Kt Tn =1(1Kt )n+1 T0,autrement dit, litre en tn ne dpend que de t et de n mais ne dpend pas de Tn . Comme 0< 11Kt < 1 pour toutt > 0, la suite est positive dcroissante ce qui assure que la solution numrique est stable et convergente.3. On cherche combien de minutes se sont couls entre le crime et la dcouverte du corps, autrement dit on cherchen tel que20= 1(1Kt )n+1 37 = (1Kt )n+1 = 3720= n+1= log(1Kt )(3720)= ln( 3720)ln(1Kt ) = n 8.Comme tn = t0+nt , si tn = 2H20 alors t0 = tn nt = 2H201H20= 01H00.4. Calcule analytique de toutes les solutions de lquation diffrentielle :? On cherche dabord les solutions constantes, i.e. les solutions du type T (t ) c R quelque soit t . On a0=K (cText)do lunique solution constante T (t ) Text.? Soit T (t ) 6= Text quelque soit t . Puisquil sagit dune EDO variables sparables on peut calculer la solution commesuit :T (t )=K (T (t )Text) = T(t )T (t )Text=K = dTT Text=K dt =1T TextdT =Kdt = ln(T Text)=K t + c = T Text =DeK t = T (t )= Text+DeK t . G. Faccanoni 1174. quations diffrentielles ordinaires Jeudi 31 janvier 2013La valeur numrique de la constante dintgration D est obtenue grce la CI :T0 = T (0)=DeK 0 = D =T0 = T (t )= T0eK tIci T0 = 37C donc la temprature du cadavre suit la loiT (t )= 37eK t .Pour dterminer lheure du meurtre il faut alors rsoudre lquation20= 37eK tdo t = 1K ln 2037 82,70715903 minutes, cest--dire 83 minutes avant 2H20 : le crime a t commit 00H57.tT [C]1H001H101H201H301H401H502H002H102H20123Exercice 4.10Un modle pour la diffusion dune pidmie se base sur lhypothse que sa vitesse de propagation est proportionnelleau nombre dindividus infects et au nombre dindividus sains.Si on note I (t ) 0 le nombre dindividus infects linstant t 0 et A > 0 le nombre dindividus total, il existe uneconstante k R+ telle que I (t )= kI (t )(A I (t )).1. Montrer quil existe T > 0 et une unique solution I C([0,T ]) au problme de CAUCHY :{I (t )= kI (t )(A I (t )),I (0)= I0 > 0.2. Montrer que si 0< I0 < A alors 0< I (t )< A pour tout t > 0.3. Montrer que si 0< I0 < A alors I (t ) est croissante sur R+.4. Soit 0< I0 < A. On considre le schma semi-impliciteIn+1 Int= kIn(A In+1).Montrer que ce schma est inconditionnellement A-stable.CORRECTION. Cest un problme de CAUCHY du type{I (t )= f (t , I (t )), t R+,I (0)= I0 > 0,(4.9)avec f (t , I (t ))= g (I (t ))= kI (t )(A I (t )).1. Comme g C 1(R,R), daprs CAUCHY-Lipschitz, il existe T > 0 et une unique I C 1([0,T ],R) solution du problmede CAUCHY. Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur I et I C([0,T ],R).2. Puisque la fonction nulle et la fonction constante I (t ) = A sont solutions de lquation diffrentielle, si 0 < I0 < Aalors 0 < I (t ) < A pour tout t [0,T ] (car, par lunicit de la solution du problme de CAUCHY, deux trajectoires nepeuvent pas se croiser).3. Puisque I (t ) = kI (t )(A I (t )), si 0 < I0 < A alors I est croissante pour tout t [0,T ]. On en dduit par le thormedes extrmits que la solution I admet un prolongement sur R+ solution de lEDO et que I est croissante pour tout t R+.118 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinaires4. Soit 0< I0 < A. On considre le schma semi-impliciteIn+1 Int= kIn(A In+1)pour t > 0 fix. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire :In+1 = 1+k At1+kIntIn .Si 0< I0 < A alors? In > 0 quelque soit n ;? In est majore par A carIn+1 A (1+k At )In (1+kInt )A In Adonc par rcurrence In+1 A quelque soit n ;? In est une suite monotone croissante (encore par rcurrence on montre que |In+1| |In | |I0|) ;donc ce schma est inconditionnellement A-stable.Calcul analytique de toutes les solutions :On a dj observ quil y a deux solutions constantes de lEDO : la fonction I (t ) 0 et la fonction I (t ) A.Pour chercher toutes les solutions non constantes on remarque quil sagit dune EDO variables sparables donc on aI (t )= ADeAkt +1La valeur numrique de la constante dintgration D est obtenue grce la CI :D = A I0I0Exemple avec A = 5000, I0 = 160, k = ln(363/38)35000 et t = 1 :tIExacteI0AApproche avec t = 1Exercice 4.11Considrons une population de bactries. Soit p(t ) le nombre dindividus ( 0) linstant t 0. Un modle qui dcritlvolution de cette population est lquation de la logistique : soit k et h deux constantes positives, alors p(t ) vrifielquation diffrentielle ordinaire (EDO) du premier ordrep (t )= kp(t )hp2(t ).On veut calculer p(t ) partir dun nombre initiale dindividus donnp(0)= p0 0.CORRECTION.Solution exacte G. Faccanoni 1194. quations diffrentielles ordinaires Jeudi 31 janvier 20131. On commence par calculer toutes les solutions de lEDO. tant une quation diffrentielle du premier ordre,la famille de solutions dpendra dune constante quon fixera en utilisant la CI. Il sagit dune EDO variablessparables.On cherche dabord les solutions constantes, cest--dire les solutions du type p(t ) c pour tout t R+ :0= kchc2.On a donc deux solutions constantes :p(t ) 0 et p(t ) kh.tant donn que deux solutions dune EDO ne sintersectent jamais, dornavant on supposera p(t ) 6= 0 et p(t ) 6=kh pour tout t R+, ainsip (t )kp(t )hp2(t ) = 1.Formellement on adpkphp2 = 1dt =1p(khp) dp =1dt =1k1pdp 1k hkhp dp =1dt = 1kln(p) 1kln(khp)= t + c =ln(pkhp)= kt +kc = pkhp =Dekt =p(t )= k1Dekt+h .2. La valeur numrique de la constante dintgration D est obtenue grce la CI :p0 = p(0)= kD1+hDe0k = D =p0khp0.On peut donc conclure que la population volue selon la fonctionp(t )=0 si p0 = 0,kh si p0 = kh ,kkhp0p0ekt +hsinon.Une simple tude de la fonction p montre que? si p0 ]0;k/h[ alors p (t )> 0 et limt+ p(t )= k/h,? si p0 ]k/h;+[ alors p (t )< 0 et limt+ p(t )= k/h.tp1 2 3012345Exemple avec k = 3, h = 1et diffrentes valeurs dep0.Solution approche Supposons de ne pas vouloir/pouvoir calculer la fonction p(t ). Grce la mthode dEULER onpeut estimer le nombre dindivus diffrentes instantes ti en faisant une discrtisation temporelle du futur (i.e.120 G. FaccanoniJeudi 31 janvier 2013 4. quations diffrentielles ordinaireson construit une suite de valeurs {ti = 0+ it }i ) et en construisant une suite de valeurs {pi }i o chaque pi est uneapproximation de p(ti ). Si on utilise la mthode dEULER, cette suite est ainsi construite :{pi+1 = pi +t pi (khpi ),p0 donn,quon peut rcrire comme {pi+1 = (1+kt ht pi )pi ,p0 donn.On veut appliquer cette mthode au cas de la figure prcdente, i.e. avec k = 3, h = 1 et les valeurs initiales p0 = 5 etp0 = 2. Si on choisit comme pas temporelle t = 0,15, on obtient les figures suivantes :ti p(ti ) pi p(ti )pi0.00 5.000000 5.000000 0.0000000.15 4.027123 3.500000 0.5271230.30 3.582637 3.237500 0.3451370.45 3.347079 3.122164 0.2249150.60 3.212403 3.064952 0.1474510.75 3.132046 3.035091 0.0969560.90 3.082874 3.019115 0.0637591.05 3.052319 3.010459 0.0418611.20 3.033151 3.005736 0.0274151.35 3.021054 3.003150 0.0179041.50 3.013390 3.001731 0.0116591.65 3.008524 3.000952 0.0075731.80 3.005430 3.000523 0.004907tp1 2 3012345ti p(ti ) pi p(ti )pi0.00 2.000000 2.000000 0.0000000.15 2.274771 2.300000 0.0252290.30 2.493175 2.541500 0.0483250.45 2.655760 2.716292 0.0605320.60 2.770980 2.831887 0.0609070.75 2.849816 2.903298 0.0534830.90 2.902469 2.945411 0.0429421.05 2.937070 2.969529 0.0324591.20 2.959567 2.983102 0.0235351.35 2.974092 2.990663 0.0165711.50 2.983429 2.994852 0.0114231.65 2.989412 2.997164 0.0077521.80 2.993240 2.998439 0.005199 tp1 2 3012345Exercice 4.12 Mthode de TaylorLa mthode de Taylor est bas sur la relationy(x+h)' y(x)+ y (x)h+ 12!y (x)h2+ 13!y (x)h3+ + 1m!y (m)(x)hmCette relation prdit y(x+h) partir de y(x), ainsi elle permet dcrire une formule dintgration numrique. Le dernierterme indique lordre de la mthode et lerreur de troncature, due aux termes omis, estE = 1(m+1)! y(m+1)()hm+1 pour x < < x+h,que lon peut approcher parE ' hm(m+1)!(y (m)(x+h) y (m)(x)) .Considrons le problme de CAUCHY {y (x)+4y(x)= x2,y(0)= 1.Estimer y(0.1) par la mthode de Taylor dordre 4 avec un seul pas dintgration. G. Faccanoni 1214. quations diffrentielles ordinaires Jeudi 31 janvier 2013CORRECTION. Le dveloppement de Taylor en 0 jusqu lordre 4 esty(h)' y(0)+ y (0)h+ 12!y (0)h2+ 13!y (0)h3+ 14!y IV (0)h4.En drivant lEDO on trouvey(0)= 1,y (x)=4y(x)+x2, y (0)=4,y (x)=4y (x)+2x, y (0)= 16,y (x)=4y (x)+2, y (0)=62,y IV (x)=4y (x), y IV (0)= 248.donc, pour x = 0 et h = 0.1, on obtienty(0.1)' 1+ 410+ 16200+ 626000+ 248240000= 0.6707et commey IV (x+h)=4y (x)=4(4y (x)+2)= (4(4y (x)+2x)+2)= (4(4(4y(x)+x2)+2x)+2)alors y IV (0.1)' (4(4(40.6707+ (0.1)2)+0.2)+2)= 166.259 et on obtient lestimation de lerreurE ' 248960000(y IV (0.1) y IV (0))= 248960000(166.259248)=0.000068.122 G. Faccanoni5. Meilleur approximation au sens des moindrescarrs.Dterminer une fonction f : x 7 f (x) qui minimise lcart entre un ensemble de points expri-mentaux{(xi , yi )}ni=0 et lensemble de points{(xi , f (xi ))}ni=0.Nous avons dj vu au chapitre sur linterpolation quaugmenter le degr dun polynme dinterpolation de Lagrangenamliore pas toujours lapproximation dune fonction donne. Ce problme peut tre rsolu avec linterpolation com-posite (avec des fonctions linaires par morceau ou des splines). Nanmoins, aucune des deux mthodes nest adapte lextrapolation dinformations partir des donnes disponibles, cest--dire, la gnration de nouvelles valeurs en despoints situs lextrieur de lintervalle contenant les nuds dinterpolation. Un autre cas o ni linterpolation de LA-GRANGE ni linterpolation composite nest daucune aide est le cas o les donnes sont bruites. Lorsquun chercheur metau point une exprience (parce quil a quelques raisons de croire que les deux grandeurs x et y sont lies par une fonctionf ), il rcolte des donnes sous la forme de points{(xi , yi )}ni=0 mais en gnrale ces donnes sont affectes par des erreursde mesure. Lorsquon en fait une reprsentation graphique il cherche f pour quelle sajuste le mieux possible aux pointsobservs. Soit di = yi f (xi ) lcart vertical du point (xi , yi ) par rapport la fonction f . La mthode des moindres carrsest celle qui choisit f de sorte que la somme des carrs de ces dviations soit minimale.5.1. Fitting par une relation affineOn considre un ensemble de points exprimentaux{(xi , yi )}ni=0 et on suppose que les deux grandeurs x et y sont liespar une relation affine, cest--dire de la forme y =mx+q pour certaines valeurs de m et q , au moins approximativement(autrement dit, lorsquon affiche ces points dans un plan cartsien, les points ne sont pas exactement aligns mais celasemble tre d des erreurs de mesure). On souhaite alors trouver les constantes m et q pour que la droite dquationy = mx + q sajuste le mieux possible aux points observs. Soit di = yi (mxi + q) lcart vertical du point (xi , yi ) parrapport la droite. La mthode des moindres carrs est celle qui choisit m et q de sorte que la somme des carrs de cesdviations soit minimale.Pour cela, on doit minimiser la fonction E : R2 R+ dfinie parE (m, q)=ni=1d 2i =ni=0(yi mxi q)2.Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrifient Em = Eq = 0. PuisqueEm(m, q)=2(ni=0(yi (mxi +q))xi),Eq(m, q)=2(ni=0(yi (mxi +q))),1235. Meilleur approximation au sens des moindres carrs. Jeudi 31 janvier 2013alors{Em (m, q)= 0Eq (m, q)= 0{ni=0(yi mxi q)xi = 0ni=0(yi mxi q)= 0{ni=0 yi xi mni=1 x2i +qni=0 xi = 0ni=0 yi mni=1 xi + (n+1)q = 0m =(ni=0 xi)(ni=0 yi) (n+1)(ni=0(xi yi ))(ni=0 xi)2 (n+1)(ni=0 x2i )q =(ni=0 xi)(ni=0 xi yi) (ni=0 yi )(ni=0 x2i )(ni=0 xi)2 (n+1)(ni=0 x2i )Si on notex = 1n+1ni=0xi , x2 = 1n+1ni=0x2i , x y =1n+1ni=0xi yi , y = 1n+1ni=0yi .alorsm = x y x y(x)2x2, q = y x2x x yx2 (x)2.La droite dquationy =mx+qsappelle droite de rgression de y par rapport x et passe par le point moyen (x, y).RemarqueCette criture est susceptible de gnrer des erreurs de roundoff (les deux termes dans chaque numrateur ainsi quaudnominateur sont presque gaux). Il est alors mieux calculer m et q comme suit (ce qui est quivalent) :m =ni=0 yi (xi x)ni=0 xi (xi x)q = y mx.RemarqueNotons 2x = x2 (x)2 la variance des abscisseset c = x y x y le coefficient de corrlation. La droite de rgression de ypar rapport x a alors quationy = cx(xx) y .ExempleSi on a le points suivantesx 1 2 3 4 5y 0.9 1.5 3.5 4.2 4.9on trouve m = 1.07 et q =0.21 :x0 1 2 3 4 5y12345Remarque Fitting par une exponentielleSoit a > 0 et considrons la fonction f (x) = aekx : elle est non-linaire mais si on prend son logarithme on obtientln( f (x))= kx+ ln(a) qui est linaire en k et a la forme mx+q avec m = k et q = ln(a). On peut alors faire une rgressionlinaire sur lensemble{(xi , ln(yi ))}ni=0 et obtenir ainsi k et ln(a). Cependant ceci nest pas quivalent faire un fittingsur lensemble initial{(xi , yi )}ni=0. En effet, si on note di = yi aekxi et Di = ln(yi ) (kxi + ln(a)), lorsquon fait unergression linaire sur lensemble{(xi , ln(yi ))}ni=0 on minimise Di et non di .124 G. FaccanoniJeudi 31 janvier 2013 5. Meilleur approximation au sens des moindres carrs.5.2. Fitting par un polynmeOn considre un ensemble de points exprimentaux{(xi , yi )}ni=0 et on suppose que les deux grandeurs x et y sontlies, au moins approximativement, par une relation polynomiale, cest--dire de la forme y = mj=0 a j x j pour certainesvaleurs de a j . On souhaite alors trouver les m+1 constantes a j pour que le polynme dquation y =mj=0 a j x j sajuste lemieux possible aux points observs. Soit di = yi (mj=0 a j xji)lcart vertical du point (xi , yi ) par rapport au polynme. Lamthode des moindres carrs est celle qui choisit les a j de sorte que la somme des carrs de ces dviations soit minimale.Pour cela, on doit minimiser la fonction E : Rm+1 R+ dfinie parE (a0, a1, . . . , am)=ni=1d 2i =ni=0(yi mj=0a j xji)2.Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrifient Ea j = 0 pour j = 0, . . . ,m. PuisqueEa0(a0, a1, . . . , am)=2ni=0(x0i(yi mj=0a j xji)),Ea1(a0, a1, . . . , am)=2ni=0(x1i(yi mj=0a j xji)),...Eam(a0, a1, . . . , am)=2ni=0(xmi(yi mj=0a j xji)),on obtient alors le systme linaire de (m+1) quations en les (m+1) inconnues a0, a1, . . . , am suivantEa0(a0, a1, . . . , am)= 0Ea1(a0, a1, . . . , am)= 0...Eam(a0, a1, . . . , am)= 0a0(n+1)+a1ni=0 xi + +amni=0 xmi =ni=0 yia0ni=0 xi +a1ni=0 x2i + +amni=0 xm+1i =ni=0 yi xi...a0ni=0 xmi +a1ni=0 xm+1i + +amni=0 x2mi =ni=0 yi xmi(n+1) ni=0 xi . . . ni=0 xmini=0 xini=0 x2i . . .ni=0 xm+1i.........ni=0 xmini=0 xm+1i . . .ni=0 x2mia0a1...am=ni=0 yini=0 yi xi...ni=0 yi xmiExempleRemarqueQuand m = n, le polynme des moindres carrs concide avec le polynme dinterpolation de Lagrange. G. Faccanoni 1255. Meilleur approximation au sens des moindres carrs. Jeudi 31 janvier 2013.............. Exercices .............Exercice 5.1 partir des donnesx 1.0 2.5 3.5 4.0 1.1 1.8 2.2 3.7y 6.008 15.722 27.130 33.772 5.257 9.549 11.098 28.828calculer la droite et la parabole de rgression. Comparer ensuite les erreurs des chaque rgression.CORRECTION.1. La droite de rgression a quation y =mx+q avecm =6i=0 yi (xi x)7i=0 xi (xi x) 8.420042377, q = y mx 3.37833528,o x = 176i=0 xi = 2.0125 et y = 176i=0 yi = 13.567. Lerreur est6i=0(yi (mxi +q))2 = 39.59960820.2. La parabole de rgression a quation y = a0+a1x+a2x2 avec a0, a1, a2 solution du systme linaire 8 6i=0 xi 6i=0 x2i6i=0 xi6i=0 x2i6i=0 x3i6i=0 x2i6i=0 x3i6i=0 x4ia0a1a2= 6i=0 yi6i=0 yi xi6i=0 yi x2i i.e. 8 16.1 44.7916.1 44.79 141.31144.79 141.311 481.5123a0a1a2= 108.536322.74251067.97905et on obtient a0 = 0.744611871628180655,a1 = 2.14480468957977077,a2 = 1.51926210146774388.Lerreur est6i=0(yi (a0+a1xi +a2x2i ))2 = 5.715921703.xy1 2 3 410203040Exercice 5.2Le tableau ci-dessous donne la conductivit thermique k du sodium pour diffrentes valeurs de la temprature. Calculerla parabole de meilleur approximation.T (C) 79 190 357 524 690k 1.00 0.932 0.839 0.759 0.693126 G. FaccanoniJeudi 31 janvier 2013 5. Meilleur approximation au sens des moindres carrs.CORRECTION. La parabole de rgression a quation y = a0+a1x+a2x2 avec a0, a1, a2 solution du systme linaire 6 4i=0 xi 4i=0 x2i4i=0 xi4i=0 x2i4i=0 x3i4i=0 x2i4i=0 x3i4i=0 x4ia0a1a2= 4i=0 yi4i=0 yi xi4i=0 yi x2i i.e. 8 16.1 44.7916.1 44.79 141.31144.79 141.311 481.5123a0a1a2= 108.536322.74251067.97905et on obtient a0 = 0.744611871628180655,a1 = 2.14480468957977077,a2 = 1.51926210146774388.Lerreur est6i=0(yi (a0+a1xi +a2x2i ))2 = 5.715921703.Exercice 5.3La viscosit cinmatique de leau varie en fonction de la temprature comme dans le tableau suivant :T (C) 0 21.1 37.8 54.4 71.1 87.8 100 (103 m2 s1) 1.79 1.13 0.696 0.519 0.338 0.321 0.296Comparer les valeurs (10), (30), (60), (90) approches par linterpolation de LAGRANGE et par le polynme demeilleur approximation de degr 3.CORRECTION. On a la famille de points{(Ti ,i )}6i=0. Le polynme de LAGRANGE scrit`(T )=6i=0i 6j=0j 6=iT T jTi T jet on obtient`(T )=tandis que le polynme de meilleur approximation de degr 3 scritr (T )= a0+a1T +a2T 2+a3T 3o a0, a1, a2, a3 sont solution du systme linaire66i=0 Ti6i=0 T2i6i=0 T3i6i=0 Ti6i=0 T2i6i=0 T3i6i=0 T4i6i=0 T2i6i=0 T3i6i=0 T4i6i=0 T5i6i=0 T3i6i=0 T4i6i=0 T5i6i=0 T6ia0a1a2a3=6i=0i6i=0i Ti6i=0i T2i6i=0i T3iet on obtient a0 = 0.914534618675843625,a1 = 0.914534618675843625,a2 =0.000620138768106035594,a3 =0.000620138768106035594.On a alors`(10)= `(30) `(60) `(90)r (10)= 1.004300740 r (30)= 0.9114735501 r (60)= 0.9114735501 r (90)= 0.249145396Exercice 5.4 Courbe de meilleure approximationOn considre un ensemble de points exprimentaux{(xi , yi )}ni=0 et on suppose que les deux grandeurs x et y sontlies, au moins approximativement, par une relation de la forme y = a sin(pi2 x)+b cos(pi2 x). On souhaite alors trouver lesconstantes a et b pour que la courbe dquation y = a sin(pi2 x)+b cos(pi2 x) sajuste le mieux possible aux points observs G. Faccanoni 1275. Meilleur approximation au sens des moindres carrs. Jeudi 31 janvier 2013(on parle de courbe de meilleure approximation).Soit di = yi (a sin(pi2 xi )+b cos(pi2 xi )) lcart vertical du point (xi , yi ) par rapport la courbe. La mthode de rgression(ou des moindres carrs) est celle qui choisit a et b de sorte que la somme des carrs de ces dviations soit minimale.Pour cela, on doit minimiser la fonction E dfinie parE : R2 R+(a,b) 7 E (a,b)=ni=0d 2i .crire le systme linaire qui permet de calculer a et b.CORRECTION. Pour minimiser E on cherche ses points stationnaires. PuisqueEa(a,b)=2(ni=0(yi (a sin(pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )),Eb(a,b)=2(ni=0(yi (a sin(pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )),on obtient{Ea (a,b)= 0Eb (a,b)= 0{ni=0(yi (a sin(pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )= 0ni=0(yi (a sin(pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )= 0{ni=0((a sin(pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )=ni=0 yi sin(pi2 xi )ni=0((a sin(pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )=ni=0 yi cos(pi2 xi )[ ni=0 sin2(pi2 xi) ni=0 sin(pi2 xi)cos(pi2 xi)ni=0 sin(pi2 xi)cos(pi2 xi) ni=0 cos2(pi2 xi) ][ab]=[ni=0 yi sin(pi2 xi)ni=0 yi cos(pi2 xi)] .Si on noteU =ni=0sin2(pi2 xi), V =ni=0sin(pi2 xi)cos(pi2 xi), W =ni=0cos2(pi2 xi), P =ni=0yi sin(pi2 xi), Q =ni=0yi cos(pi2 xi),on doit rsoudre le systme linaire (U VV W)(ab)=(PQ)dont la solution esta = W P V QUW V 2 , b =UQV PUW V 2 .Exercice 5.5La mthode de rgression stend facilement des donnes qui dpendent de deux ou plusieurs variables. On considreun ensemble de points exprimentaux{(xi , yi , zi )}ni=0 et on suppose que les trois grandeurs x, y et z sont lies, au moinsapproximativement, par une relation affine de la forme z = a+bx+c y . On souhaite alors trouver les constantes a, b et cpour que le plan dquation z = a+bx+ c y sajuste le mieux possible aux points observs (on parle de plan de meilleureapproximation).Soit di = zi (a +bxi + c yi ) lcart vertical du point (xi , yi , zi ) par rapport au plan. La mthode de rgression (ou desmoindres carrs) est celle qui choisit a, b et c de sorte que la somme des carrs de ces dviations soit minimale. Pourcela, on doit minimiser la fonction E dfinie parE : R3 R+(a,b,c) 7 E (a,b,c)=ni=0d 2i .1. crire le systme linaire qui permet de calculer a, b et c128 G. FaccanoniJeudi 31 janvier 2013 5. Meilleur approximation au sens des moindres carrs.2. Calculer lquation du plan de meilleure approximation pour lensemble{(xi , yi , zi )}5i=0 oi 0 1 2 3 4 5xi 0 0 1 2 2 2yi 0 1 0 0 1 2zi32 212 012 1On utilisera la mthode du pivot de GAUSS pour la rsolution du systme linaire.CORRECTION.1. Pour minimiser E on cherche ses points stationnaires. PuisqueEa(a,b,c)=2(ni=0(zi (a+bxi + c yi ))),Eb(a,b,c)=2(ni=0(zi (a+bxi + c yi ))xi),Ec(a,b,c)=2(ni=0(zi (a+bxi + c yi ))yi),on obtientEa (a,b,c)= 0Eb (a,b,c)= 0Ec (a,b,c)= 0ni=0(zi (a+bxi + c yi ))= 0ni=0(zi (a+bxi + c yi ))xi = 0ni=0(zi (a+bxi + c yi ))yi = 0ni=0(a+bxi + c yi )=ni=0 zini=0(axi +bx2i + c yi xi )=ni=0 zi xini=0(ayi +bxi yi + c y2i )=ni=0 zi yi (n+1) ni=0 xi ni=0 yini=0 xini=0 x2ini=0 xi yini=0 yini=0 xi yini=0 y2iabc= ni=0 zini=0 zi xini=0 zi yi .2. Dans notre cas,ni=0xi = 7ni=0yi = 4ni=0zi = 112ni=0xi yi = 6ni=0xi zi = 72ni=0yi zi = 92n+1= 6ni=0x2i = 13ni=0y2i = 6donc on a le systme linaire 6 7 47 13 64 6 6abc=11/27/29/2quon peut rsoudre par la mthode de GAUSS 6 7 4 11/27 13 6 7/24 6 6 9/2 L2L276 L1L3L3 23 L1 6 7 4 11/20 29/6 4/3 35/120 4/3 10/3 5/6 L3L3 829 L2 6 7 4 11/20 29/6 4/3 35/120 0 86/29 95/58dont la solution est abc= 123/8665/8695/172 1.4302325570.75581395030.5523255766 . G. Faccanoni 1296. Systmes linairesRsoudre lensemble dquations linairesAx= bDfinition Dfinition : systme linaireSoit n, p, 1 des entiers. Un SYSTME LINAIRE np est un ensemble de n quations linaires p inconnues de la forme(S)a11x1 + . . . + a1p xp = b1,.........an1x1 + . . . + anp xp = bn .? Les COEFFICIENTS ai j et les SECONDES MEMBRES bi sont des lments donns de R. Les INCONNUES x1, x2, . . . , xp sont chercher dans R.? Le SYSTME HOMOGNE associ (S) est le systme obtenu en remplaant les bi par 0.? Une SOLUTION de (S) est un p-uplet (x1, x2, . . . , xp ) qui vrifie simultanment les n quations de (S). Rsoudre (S)signifie chercher toutes les solutions.? Un systme est IMPOSSIBLE, ou incompatible, sil nadmet pas de solution. Un systme est POSSIBLE, ou compatible,sil admet une ou plusieurs solutions.? Deux systmes sont QUIVALENTS sils admettent les mmes solutions.criture matricielleSi on notex=x1...xp b=b1...bn A=a11 . . . a1p... ...an1 . . . anple systme (S) est quivalent lcriture matricielleAx= b.Dans ce chapitre, nous ne traiterons que des systmes linaires carrs dordre n coefficients rels, autrement dit A =(ai , j ) Rnn et b = (bi ) Rn . Dans ce cas, on est assur de lexistence et de lunicit de la solution si une des conditionsquivalentes suivantes est remplie :1. A est inversible (i.e. det(A) 6= 0) ;2. le systme homogneAx= 0 admet seulement la solution nulle.La solution du systme peut alors tre calcule par la formule de CRAMER. Cependant cette formule est dune utilit pra-tique limite cause du calcul des dterminants qui est trs couteux. Pour cette raison, des mthodes numriques alter-natives aux formules de CRAMER ont t dveloppes. Elles sont dites directes si elles fournissent la solution du systmeen un nombre fini dtapes, itratives si elles ncessitent (thoriquement) un nombre infini dtapes. Notons ds prsentque le choix entre une mthode directe et une mthode itrative pour la rsolution dun systme dpend non seulementde lefficacit thorique des algorithmes, mais aussi du type de matrice, des capacits de stockage en mmoire et enfin delarchitecture de lordinateur.6.1. Systmes mal conditionnsConsidrons le systme de deux quations deux inconnues suivant :{3.218613x1+6.327917x2 = 10.546530,3.141592x1+4.712390x2 = 7.853982.Ce systme et non singulier et sa solution est donne par x1 = x2 = 1. Considrons maintenant un systme dquationsvoisin (le carr indique un changement de dcimale) :{3.21861 1 x1+6.327917x2 = 10.546530,3.14159 4 x1+4.712390x2 = 7.85398 0 .1316. Systmes linaires Jeudi 31 janvier 2013Ce systme et non singulier et sa solution est donne par x1 =5, x2 = 5.On voit donc que, bien que ces deux systmes soient voisins, leurs solutions sont trs diffrentes. On parle dans ce casde systmes mal conditionns. Rsoudre un systme mal conditionn avec un ordinateur peut tre une affaire dlicate silordinateur calcule avec trop peu de chiffres significatifs. Dans lexemple prcdent nous observons que, si lordinateur neretient que 6 chiffres significatifs, il compltement inespr dobtenir une solution raisonnablement proche de la solution.Dfinition Conditionnement dune matriceLe conditionnement dune matriceA Rnn non singulire est dfini parK (A)= AA1( 1),o est une norme matricielle subordonne. En gnral, K (A) dpend du choix de la norme ; ceci est signal en intro-duisant un indice dans la notation. Par exemple, on a les deux normes matricielles suivantes :A1 = maxj=1,...,nni=1|ai j |, A = maxi=1,...,nnj=1|ai j |.Remarque Cas particulierSiA est symtrique et dfinie positive a,K2(A)= A2A12 = maxmino max (resp. min) est la plus grande (resp. petite) valeur propre deA.a. A Rnn est? symtrique si ai j = a j i pour tout i , j = 1, . . . ,n,? dfinie positive si pour tout vecteurs x Rn avec x 6= 0, xTAx> 0.Considrons un systme non singulier Ax = b. Si b est une perturbation de b et si on rsout Ay = b+b, on obtientpar linarit y= x+x avec Ax= b. La question est de savoir sil est possible de majorer lerreur relative x/x sur lasolution du systme en fonction de lerreur relative b/b commise sur le second membre. Il est possible de dmontrerquexx K (A)bbo K (A) est le nombre de conditionnement de la matrice A. On voit alors que plus le conditionnement de la matrice estgrand, plus la solution du systme linaire est sensible aux perturbations des donnes. Cependant, le fait quun systmelinaire soit bien conditionn nimplique pas ncessairement que sa solution soit calcule avec prcision. Il faut en plusutiliser des algorithmes stables. Inversement, le fait davoir une matrice avec un grand conditionnement nempche pasncessairement le systme global dtre bien conditionn pour des choix particuliers du second membre.Si b/b est de lordre de la prcision relative = 10p du calculateur, alors x/x pourrait, au pire, tre gal K (A)= 10log10(K (A))10p = 0log10(K (A)p).Si on calcul la solution du systme linaire avec un ordinateur p chiffres significatifs en valeur dcimale, on ne pourra pasgarantir priori plus deE(p log10(K (A)))chiffre significatifs sur la solution. Si on applique cette rgle au systme linaire de lexemple, il est facile de vrifier queK (A)' 107, par consquent nous pouvons perdre jusqu 7 chiffres significatifs lors de sa rsolution. Il faut donc un ordi-nateur calculant avec 10 chiffres significatifs pour tre sr dobtenir les 3 premiers chiffres de la solution.ExempleUn exemple bien connu de matrice mal conditionne est la matrice de HILBERT dordre n dfinie par ai j = 1/(i+ j1) pour 1 i , j n.6.2. Mthode (directe) dlimination de Gauss et factorisation LUDfinition Matrices et systmes triangulairesOn dit quune matrice carre A = (ai j )1i , jn est TRIANGULAIRE SUPRIEURE (respectivement triangulaire INFRIEURE)si i > j = ai j = 0 (resp. si i < j = ai j = 0).132 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesSi la matrice est triangulaire suprieure (resp. triangulaire infrieure), on dira que le systme linaire est un systmetriangulaire suprieur (resp. triangulaire infrieur).Pour rsoudre le systme triangulaireAx= b,? si A est une matrice triangulaire infrieure, on a x1 = b1a11 et on dduit les inconnues x2, x3, . . . xn grce la relationxi = 1ai i(bi i1j=1ai j x j);? siA est une matrice triangulaire suprieure on a xn = bnann et on dduit les inconnues xn1, xn2, . . . x1 grce la relationxi = 1ai i(bi nj=i+1ai j x j).PropritLe dterminant dune matrice triangulaire est gal au produit des lments diagonaux.La mthode du pivot de Gauss transforme le systme Ax = b en un systme quivalent (cest--dire ayant la mmesolution) de la forme Ux = y, o U est une matrice triangulaire suprieure et y est un second membre convenablementmodifi. Enfin on rsout le systme triangulaire Ux= y.Dfinition Mthode du pivot de GaussSoitA= (ai j )1in1 jpla matrice des coefficients du systmeAx= b. En permutant ventuellement deux lignes du systme,on peut supposer ai i 6= 0 (appel pivot de ltape i ).tape j : pour i > k, les transformationsLi Li ai kakkLkliminent linconnue xk dans les lignes Li .En ritrant le procd pour i de 1 n, on aboutit un systme triangulaire suprieur.ExempleSoit le systme linaire x1 +2x2+3x3+4x4= 1,2x1+3x2+4x3+x4 = 2,3x1+4x2+x3 +2x4= 3,4x1+x2 +2x3+3x4= 4.1. Rsolution par la mthode du pivot de Gauss :x1+2x2+3x3+4x4= 12x1+3x2+4x3 +x4= 23x1+4x2 +x3+2x4= 34x1 +x2+2x3+3x4= 4L2L22L1L3L33L1L4L44L1x1+2x2 +3x3 +4x4= 1x2 2x3 7x4= 02x2 8x310x4= 07x210x313x4= 0L3L32L2L4L47L2x1+2x2+3x3 +4x4= 1x22x3 7x4= 04x3 +4x4= 04x3+36x4= 0L4L4+L3x1+2x2+3x3+4x4= 1x22x37x4= 04x3+4x4= 040x4= 0donc x4 = 0, x3 = 0, x2 = 0 et x1 = 1.2. Rsolution par la mthode du pivot de Gauss en criture matricielle :[A|b]=1 2 3 4 12 3 4 1 23 4 1 2 34 1 2 3 4L2L22L1L3L33L1L4L44L11 2 3 4 10 1 2 7 00 2 8 10 00 7 10 13 0L3L32L2L4L47L21 2 3 4 10 1 2 7 00 0 4 4 00 0 4 36 0 L4L4+L31 2 3 4 10 1 2 7 00 0 4 4 00 0 0 40 0donc x4 = 0, x3 = 0, x2 = 0 et x1 = 1.Si on a plusieurs systmes dont seul le second membre change, il peut tre utile de factoriser une fois pour toute lamatriceA et rsoudre ensuite des systmes triangulaires. G. Faccanoni 1336. Systmes linaires Jeudi 31 janvier 2013Algorithme de factorisation LU sans pivotSoit le systme linaireAx= b.1. On factorise la matrice A Rnn sous la forme dun produit de deux matrices A= LU. Les termes non nuls de U etles termes non nuls en-dessous de la diagonale principale de L sont mmoriss encore dans la matrice A et sontainsi calcules :for k = 1 to n1 dofor i = k+1 to n doai k ai kakkfor j = k+1 to n doai j ai j ai k ak jend forend forend for2. Rsoudre le systme linaire consiste simplement rsoudre successivement2.1. le systme triangulaire infrieur Ly = b : les lments non nuls de la matrice triangulaire infrieure L sontdonn par `i j = ai j pour i = 1, . . . ,n et j = 1, . . . , i 1 et `i i = 1 pour tout i = 1, . . . ,n, donc lalgorithmescrity1 b1for i = 2 to n dosi 0for j = 1 to i 1 dosi si +ai j x jend foryi bi siend for2.2. le systme triangulaire suprieure Ux= y : les lments non nuls de la matrice triangulaire suprieure U sontdonn par ui j = ai j pour i = 1, . . . ,n et j = i , . . . ,n, donc lalgorithme scritxn ynannfor i = n1 to 1 by 1 dosi 0for j = 1 to i 1 dosi si +ai j y jend forxi yi siai iend forAttentionPour une matrice quelconque A Rnn , la factorisation LU existe et est unique si et seulement si les sous-matricesprincipales Ai de A dordre i = 1, . . . ,n1 (celles que lon obtient en restreignant A ses i premires lignes et colonnes)ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matrices principales, sontnon nuls).On peut identifier des classes de matrices particulires pour lesquelles les hypothses de cette proposition sont satis-faites :PropositionSi la matriceA Rnn est symtrique et dfinie positive ou si est diagonale dominante a alors la factorisation LU existeet est unique.a. A Rnn est? symtrique si ai j = a j i pour tout i , j = 1, . . . ,n,? dfinie positive si pour tout vecteurs x Rn avec x 6= 0, xTAx> 0,? diagonale dominante par lignes si |ai i | nj=1j 6=i|ai j |, pour i = 1, . . . ,n ( diagonale dominante stricte par lignes si lingalit est stricte),? diagonale dominante par colonnes si |ai i | nj=1j 6=i|a j i |, pour i = 1, . . . ,n ( diagonale dominante stricte par colonnes si lingalit est stricte),Une technique qui permet deffectuer la factorisation LUpour toute matriceA inversible, mme quand les hypothses decette proposition ne sont pas vrifies, est la mthode du pivot par ligne : il suffit deffectuer une permutation convenabledes lignes de la matrice originaleA chaque tape k o un terme diagonal akk sannule.134 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesDfinition Algorithme de Gauss avec pivotDans la mthode dlimination de Gauss les pivot a(k)kk doivent tre diffrents de zro. Si la matrice est inversible mais unpivot est zro (ou numriquement proche de zro), on peut permuter deux lignes avant de poursuivre la factorisation.Lalgorithme modifi scrit alorsfor k = 1 to n1 dofor i = k+1 to n doChercher r tel que |a(k)r k | =maxr=k,...,n |a(k)r k | et changer la ligne k avec la ligne r`i k a(k)i ka(k)kkfor j = k+1 to n doa(k+1)i j a(k)i j `(k)i k a(k)k jend forend forend forUne fois calcules les matrices L et U et la matrice des permutations P (i.e. la matrice telle que PA = LU), rsoudrele systme linaire consiste simplement rsoudre successivement le systme triangulaire infrieur Ly = Pb puis lesystme triangulaire suprieure Ux= y.Proprit DterminantLa factorisation LU permet de calculer le dterminant deA en O(n3) car det(A)= det(L)det(U)=nk=1 ukk .Proprit Inverse dune matriceLe calcul explicite de linverse dune matrice peut tre effectu en utilisant la factorisation LU comme suit. En notant Xlinverse dune matrice rgulireA Rnn , les vecteurs colonnes de X sont les solutions des systmes linairesAxi = ei , pour i = 1, . . . ,n.En supposant que PA = LU, o P est la matrice de changement de pivot partiel, on doit rsoudre 2n systmes triangu-laires de la formeLyi =Pei , Uxi = yi , pour i = 1, . . . ,n.cest--dire une suite de systmes linaires ayant la mme matrice mais des seconds membres diffrents.ExempleSoit les systmes linaires 1 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=1234 et1 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=10101010 .1. Rsoudre les systmes linaires par la mthode du pivot de Gauss.2. Factoriser la matriceA (sans utiliser la technique du pivot) et rsoudre les systmes linaires.3. Calculer le dterminant deA.4. CalculerA1.1. Rsolution par la mthode du pivot de Gauss du premier systme[A|b]=1 2 3 4 12 3 4 1 23 4 1 2 34 1 2 3 4L2L22L1L3L33L1L4L44L11 2 3 4 10 1 2 7 00 2 8 10 00 7 10 13 0L3L32L2L4L47L21 2 3 4 10 1 2 7 00 0 4 4 00 0 4 36 0L4L4+L31 2 3 4 10 1 2 7 00 0 4 4 00 0 0 40 0doncx4 = 0, x3 = 0, x2 = 0, x1 = 1. G. Faccanoni 1356. Systmes linaires Jeudi 31 janvier 2013Rsolution par la mthode du pivot de Gauss du second systme(A|b)=1 2 3 4 102 3 4 1 103 4 1 2 104 1 2 3 10L2L22L1L3L33L1L4L44L11 2 3 4 100 1 2 7 100 2 8 10 200 7 10 13 30L3L32L2L4L47L21 2 3 4 100 1 2 7 100 0 4 4 00 0 4 36 40L4L4+L31 2 3 4 100 1 2 7 100 0 4 4 00 0 0 40 40donc x1+2x2+3x3+4x4 = 10x22x37x4 =104x3+4x4 = 040x4 = 40= x4 = 1, x3 = 1, x2 = 1, x1 = 1.2. Factorisation de la matriceA :1 2 3 42 3 4 13 4 1 24 1 2 3L2L22L1L3L33L1L4L44L11 2 3 42 1 2 73 2 8 104 7 10 13L3L32L2L4L47L21 2 3 42 1 2 73 2 4 44 7 4 36 L4L4+L31 2 3 42 1 2 73 2 4 44 7 1 40doncL=1 0 0 02 1 0 03 2 1 04 7 1 1 U=1 2 3 40 1 2 70 0 4 40 0 0 40Pour rsoudre le premier systme linaire on rsout les systmes triangulaires Ly= b1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=1234 = y1 = 1, y2 = 0, y3 = 0, y4 = 0et Ux= y1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=1000 = x4 = 0, x3 = 0, x2 = 0, x1 = 1.Pour rsoudre le second systme linaire on rsout les systmes triangulaires Ly= b1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=10101010 = y1 = 10, y2 =10, y3 = 0, y4 = 40et Ux= y1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=1010040 = x4 = 1, x3 = 1, x2 = 1, x1 = 1.3. Le dterminant deA est u11u22u33u44 = 1 (1) (4)40= 160.136 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaires4. Pour calculerA1 on rsout les quatre systmes linaires1 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=1000 i.e.1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=1000=12111 puis1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=12111=9/401/401/4011/401 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=0100 i.e.1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=0100=0129 puis1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=0129=1/401/4011/409/401 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=0010 i.e.1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=0010=0011 puis1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=0011 =1/4011/409/401/401 2 3 42 3 4 13 4 1 24 1 2 3x1x2x3x4=0001 i.e.1 0 0 02 1 0 03 2 1 04 7 1 1y1y2y3y4=0001=0001 puis1 2 3 40 1 2 70 0 4 40 0 0 40x1x2x3x4=0001 =11/409/401/401/40et finalementA1 =9/40 1/40 1/40 11/401/40 1/40 11/40 9/401/40 11/40 9/40 1/4011/40 9/40 1/40 1/40= 1409 1 1 111 1 11 911 11 9 111 9 1 1 .6.3. Mthodes itrativesUne mthode itrative pour le calcul de la solution dun systme linaire Ax = b avec A Rnn est une mthode quiconstruit une suite de vecteurs x(k) = (x(k)1 , x(k)2 , . . . , x(k)n )T Rn convergent vers le vecteur solution exacte x= (x1, x2, . . . , xn)Tpour tout vecteur initiale x(0) = (x(0)1 , x(0)2 , . . . , x(0)n )T Rn lorsque k tend vers +. Dans ces notes on ne verra que deuxmthodes itratives :? la mthode de JACOBI,? la mthode de GAUSS-SEIDEL.Dfinition Mthode de JACOBISoit x0 = (x01 , x02 , . . . , x0n) un vecteur donn. La mthode de JACOBI dfinit la composante xk+1i du vecteur xk+1 partir descomposantes xkj du vecteur xk pour j 6= i de la manire suivante :xk+1i =bi nj=1j 6=iai j xkjai i, i = 1, . . . ,nx(k) =x(k)1x(k)2...x(k)i1x(k)ix(k)i+1...x(k)nx(k+1) =x(k+1)1x(k+1)2...x(k+1)i1x(k+1)ix(k+1)i+1...x(k+1)nPropositionSi la matriceA est diagonale dominante stricte, la mthode de JACOBI converge. G. Faccanoni 1376. Systmes linaires Jeudi 31 janvier 2013La mthode de GAUSS-SIDEL est une amlioration de la mthode de JACOBI dans laquelle les valeurs calcules sontutilises au fur et mesure du calcul et non lissue dune itration comme dans la mthode de JACOBI.Dfinition Mthode de GAUSS-SIDELSoit x0 = (x01 , x02 , . . . , x0n) un vecteur donn. La mthode de GAUSS-SIDEL dfinit la composante xk+1i du vecteur xk+1 partir des composantes xk+1j du vecteur xk+1 pour j < i et des composantes xkj du vecteur xk pour j i de la maniresuivante :xk+1i =bi i1j=1ai j xk+1j nj=i+1ai j xkjai i, i = 1, . . . ,nx(k) =x(k)1x(k)2...x(k)i1x(k)ix(k)i+1...x(k)nx(k+1) =x(k+1)1x(k+1)2...x(k+1)i1x(k+1)ix(k+1)i+1...x(k+1)nPropositionSi la matriceA est diagonale dominante stricte ou si elle est symtrique et dfinie positive, la mthode de GAUSS-SEIDELconverge.AlgorithmesCes algorithmes tentent de rsoudre le systme dquations linaires Ax= b dinconnue x. La matrice A, de taille nn,doit tre inversible et le second membre b doit tre de longueur n. Les itrations sarrtent quand le rapport entre lanorme du k-me residu est infrieure ou gale TOLL, le nombre ditrations effectues est alors renvoy dans iter.MaxITER est le nombre maximum ditrations.JACOBIRequire: A= (ai j )1i , jn , b= (bi )1in , x, MaxITER, TOLLiter 0r bAxwhile (r >TOLL & iterTOLL & iterJeudi 31 janvier 2013 6. Systmes linairesde convergence, la mthode de GAUSS-SEIDEL est plus rapide que celle de JACOBI.ExempleConsidrons le systme linaire 4 2 11 2 02 1 4xyz=429mis sous la forme x = 1 y2 z4 ,y = 1+ x2 ,z = 94 x2 y4 .Soit x(0) = (0,0,0) le vecteur initial.? En calculant les itres avec la mthode de JACOBI on trouvex(1) =1 02 041+ 0294 02 04= 119/4 , x(2) =1 12 9/441+ 1294 12 14=1/163/23/2 , x(3) = 13/22 3/241+ 1/16294 1/162 3/24=1/81/3261/32 , x(4) = 11/322 61/3241+ 1/8294 1/82 1/324= 5/12815/16265/128 .La suite x(k) converge vers (0,1,2) la solution du systme.? En calculant les itres avec la mthode de GAUSS-SEIDEL on trouvex(1) = 102 041+ 1294 12 3/24= 13/211/8 , x(2) = 13/22 11/841+ 3/32294 3/322 61/644=3/3261/64527/256 , x(3) = 13/322 61/6441+ 9/1024294 9/10242 2047/20484= 9/10242047/204816349/8192 ,La suite x(k) converge vers (0,1,2) la solution du systme. G. Faccanoni 1396. Systmes linaires Jeudi 31 janvier 2013.............. Exercices .............Exercice 6.1Soit le systme linaire 6 1 12 4 01 2 6x1x2x3=1206 .1. Approcher la solution avec la mthode de JACOBI avec 3 itrations partir de x(0) = (2,2,2).2. Approcher la solution avec la mthode de GAUSS-SEIDEL avec 3 itrations partir de x(0) = (2,2,2).3. Rsoudre les systmes linaires par la mthode dlimination de Gauss.4. Factoriser la matriceA (sans utiliser la technique du pivot) et rsoudre les systmes linaires.CORRECTION.1. Mthode de JACOBI :x(0) =222 , x(1) =12(12+12)60(22+02)46(12+22)6= 4/310 , x(2) =12(1(1)+10)60(2 43+00)46(1 43+2(1))6= 13/62/310/9 , x(3) =12(1 23 +1 109 )60(2 136 +0 109 )46(1 136 +2 23 )6= 52/2713/1231/36ainsix 1.9261.0830.861 .2. Mthode de GAUSS-SEIDEL :x(0) =222 , x(1) =12(12+12)60(2 43+02)46(1 43+2 23 )6= 4/3 231 , x(2) =12(1 23 +11)60(2 3518+01)46(1 3518+2 3536 )6= 35/1835/361 , x(3) =12(1 3518+1 3536 )60(2 431216+01)46(1 431216+2 431432 )6= 431/216431/4321ainsix 1.9950.9951 .3. Mthode dlimination de Gauss :(A|b)= 6 1 1 122 4 0 01 2 6 6 L2L226 L1L3L3 16 L1 6 1 1 120 113 13 40 116356 4 L3L3116113L2 6 1 1 120 113 13 40 0 6 6donc 6x1+x2+x3 = 12,113 x2 13 x3 =46x3 = 6= x3 = 1, x2 =1, x1 = 2.4. Factorisation de la matriceA :6 1 12 4 01 2 6 L2L226 L1L3L3 16 L16 1 126113 1316116356 L3L3116113L26 1 126113 13161161136doncL=1 0 013 1 01612 1 U=6 1 10 113 130 0 6Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly= b1 0 013 1 01612 1y1y2y3=1206 = y1 = 12, y2 =4, y3 = 6140 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaireset Ux= y 6 1 10 113 130 0 6x1x2x3= 146 = x3 = 1, x2 =1, x1 = 2.Exercice 6.2SoitA une matrice,A Mn,n(R).1. Rappeler les conditions ncessaires et suffisantes pour lexistence dune factorisation LUde la matriceA et prciserles dfinitions de L et U.2. On suppose L et U construites (i.e. on dispose de tous les coefficients `i , j et ui , j de L et U), crire lalgorithme dersolution deAx= b, avec b Mn,1(R) donn.3. Soit la matriceA suivante : 3 1 11 3 11 1 3 .Construire la main les matrices L et U de la factorisation LU.CORRECTION.1. Pour une matrice quelconque A Mn,n(R), la factorisation LU (sans pivot) existe et est unique ssi les sous-matricesprincipales Ai de A dordre i = 1, . . . ,n 1 (celles que lon obtient en restreignant A ses i premires lignes et co-lonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matricesprincipales, sont non nuls). On peut identifier des classes de matrices particulires pour lesquelles les hypothsesde cette proposition sont satisfaites. Mentionnons par exemple : les matrices diagonale strictement dominante, lesmatrices relles symtriques dfinies positives. Une technique qui permet deffectuer la factorisation LU pour toutematriceA inversible, mme quand les hypothses de cette proposition ne sont pas vrifies, est la mthode du pivotpar ligne : il suffit deffectuer une permutation convenable des lignes de la matrice originale A chaque tape k oun terme diagonal akk sannule.2. Une fois calcules les matrices L et U, rsoudre le systme linaire Ax = b, avec b Mn,1(R) donn consiste simple-ment rsoudre successivement2.1. le systme triangulaire infrieur Ly= b par lalgorithmey1 = b1, yi = bi i1j=1`i j y j , i = 2, . . . ,n2.2. le systme triangulaire suprieure Ux= y par lalgorithmexn = ynunn, xi = 1ui i(yi nj=i+1ui j x j), j = n1, . . . ,13. Factorisation : 3 1 11 3 11 1 3 L2L213 L1L3L3 13 L13 1 10 8/3 4/30 4/3 8/3 L3L3 4/38/3 L23 1 10 8/3 4/30 0 2 .Par consquentL= 1 0 01/3 1 01/3 1/2 1 et U=3 1 10 8/3 4/30 0 2 .Exercice 6.3Calculer, lorsquil est possible, la factorisation LU des matrices suivantes :A=1 2 32 4 57 8 9 , B=1 2 37 8 92 4 5 .Comment peut-on modifier lalgorithme de factorisation pour pouvoir toujours aboutir une factorisation LU lorsquela matrice est inversible ? G. Faccanoni 1416. Systmes linaires Jeudi 31 janvier 2013CORRECTION. Pour une matrice quelconqueA Mn,n(R), la factorisation LU (sans pivot) existe et est unique ssi les sous-matrices principales Ai de A dordre i = 1, . . . ,n 1 (celles que lon obtient en restreignant A ses i premires lignes etcolonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matrices princi-pales, sont non nuls).Matrice A : comme det(A) 6= 0, la matrice A est bien inversible. Puisque det(A1) = a11 = 1 6= 0 mais det(A2) = a11a22a12a21 = 0, on ne peut pas factoriserA sans utiliser la technique du pivot. En effet,A=1 2 32 4 57 8 9 L2L221 L1L3L3 71 L11 2 30 0 10 6 12La factorisation LU ne peut pas tre calcule car la prochaine tape il faudrait effectuer le changement L3 L3 60 L2.Matrice B :A2 =1 2 37 8 92 4 5 L2L271 L1L3L3 21 L11 2 30 6 120 0 1La factorisation LU de la matrice B est doncL=1 0 07 1 02 0 1 , U=1 2 30 6 120 0 1 .Lorsquun pivot est nul, la mthode de GAUSS pour calculer la factorisation LU de la matrice A nest plus applicable. Deplus, si le pivot nest pas nul mais trs petit, lalgorithme conduit des erreurs darrondi importantes. Cest pourquoi desalgorithmes qui changent les lments de faon avoir le pivot le plus grand possible ont t dvelopps. Les programmesoptimiss intervertissent les lignes chaque tape de faon placer en pivot le terme de coefficient le plus lev : cest lamthode du pivot partiel. Pour la matriceA cela aurait donnA=1 2 32 4 57 8 9 L2L31 2 37 8 92 4 5 L2L271 L1L3L3 21 L11 2 30 6 120 0 1 .Bien videmment, il faut garder trace de cet change de lignes pour quil puisse tre rpercut sur le terme source et surlinconnue lors de la rsolution du systme linaire ; ceci est ralis en introduisant une nouvelle matrice P, dite matricepivotale, telle que PA = LU : la rsolution du systme linaire Ax = b est donc ramen la rsolution des deux systmestriangulaires Ly=Pb et Ux= y. Dans notre exemple cela donneP=1 0 00 0 10 1 0Exercice 6.4Aprs avoir utilis la mthode dlimination de Gauss, une matrice symtrique A a t transforme en la matrice trian-gulaire suprieureU=4 2 1 00 3 3/2 10 0 3 3/20 0 0 35/12 .Calculer la matriceA.142 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesCORRECTION. CommeA= LU, il suffit de calculer L. En divisant chaque ligne de U par son terme diagonal on trouveLT =1 1/2 1/4 00 1 1/2 1/30 0 1 1/20 0 0 1 .AlorsA= LU=1 0 0 01/2 1 0 01/4 1/2 1 00 1/3 1/2 14 2 1 00 3 3/2 10 0 3 3/20 0 0 35/12=4 2 1 02 4 2 11 2 4 20 1 2 4 .Exercice 6.5Soit un paramtre rel et soient les matricesA, P et le vecteur b dfinis parA =2 4 1 2 12 3 2 , P=1 0 00 0 10 1 0 , b= 03/21 .1. quelle condition sur , la matriceA est inversible ?2. quelle condition sur , la matriceA admet-elle une dcomposition LU (sans pivot) ?3. Soit =1. Calculer, si elle existe, la dcomposition LU de la matriceM=PA.4. Soit =1. Rsoudre le systme linaireAx= b en rsolvant le systme linaireMx=Pb.CORRECTION.1. La matriceA est inversible si et seulement si det(A) 6= 0. Commedet(A)= det2 4 1 2 12 3 2= (2 (2)2)+ (4 (1)2)+ (13) (2 (1)3) (42) (1 (2)2)= (8)+ (8)+ (3) (6) (8) (4)=65,la matriceA est inversible si et seulement si 6= 65 .2. Pour une matrice A carre dordre n quelconque, la factorisation de Gauss existe et est unique si et seulement si lessous-matrices principales Ai de A dordre i = 1, . . . ,n1 (celles que lon obtient en restreignant A ses i premireslignes et colonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matrices principales, sont non nuls).Pour la matriceA on a les sous-matrices principales suivantes :A1 =(2), det(A1)= 2;A2 =(2 4 2), det(A2)=4(1+).Par consquent, la matriceA admet une dcomposition LU (sans pivot) si et seulement si 6= 1.3. Si = 1 la matrice A nadmet pas de dcomposition LU sans pivot. La matrice P change les lignes 2 et 3 de lamatriceA et on obtient la matricePA1 =1 0 00 0 10 1 0 2 4 11 2 12 3 2= 2 4 12 3 21 2 1 .La matriceM admet une dcomposition LU (sans pivot) et lon a 2 4 12 3 21 2 1 L2L2L1L3L3 12 L12 4 10 1 10 0 12 G. Faccanoni 1436. Systmes linaires Jeudi 31 janvier 2013Par consquent, on obtient la dcomposition LU suivante de la matriceM :L= 1 0 01 1 0 12 0 1 , U=2 4 10 1 10 0 12 .4. Pour rsoudre le systme linaireMx=Pb il suffit de rsoudre les deux systmes triangulaires suivantes :? Ly=Pb :y1 = 0, y2 =1 y1 =1, y3 =32+ 12y1 =32;? Ux= y :x3 = 32(2)= 3, x2 = (1x3)/(1)= 4, x1 = (0x24x3)/2=192.Exercice 6.6Considrons les deux matrices carres dordre n > 3 :A= 0 0 0 . . . 0 0 0 0 . . . 0 0 0. . ....0. . .. . . . . . ....... . . 0 0 0 0 . . . B= 0 . . . . . . 0 0 0 0 0 0... 0. . . 0. . . . . ....... 0 0 0 0 0 0 0 . . . avec et rels non nuls.1. Vrifier que la factorisation LU de la matrice B ne peut pas tre calcule sans utiliser la technique du pivot.2. Calculer analytiquement le nombre doprations ncessaires pour calculer la factorisation LU de la matriceA.3. Exprimer le dterminant de la matrice A sous forme rcursive en fonction des coefficients de la matrice et de sadimension n.4. Sous quelles conditions sur et la matrice A est dfinie positive ? Dans ce cas, exprimer le conditionnement dela matrice en fonction des coefficients et de la dimension n.CORRECTION.1. La factorisation LU de la matrice B ne peut pas tre calcule sans utiliser la technique du pivot car llment pivotaleau deuxime pas est nul. Par exemple, si n = 4, on obtient :B(1) = 0 0 0 0 0 0 L2L2L1L3L3L1L4L4 L1B(2) = 0 0 0 0 0 0 0 2 .2. La matrice A est une matrice en flche : pour en calculer la factorisation LU il suffit de transformer la dernireligne, ce qui requiert le calcul de lunique multiplicateur m =/ et lexcution de n1 produits et sommes. Le cotglobale est donc de lordre de n.3. Le dterminant n de la matrice A de dimension n concide avec le dterminant de la matrice U. Comme ui i = pour tout i < n et unn = (n1)2/, on conclut quen =n (n1)n22.4. Les valeurs propres de la matrice A sont les racines du dterminant de la matrice AI. Suivant le mme raisonne-ment du point prcdant, ce dterminant scrit()n (n1)()n22dont les racines sont1,2 =(n1), 3 = =n =.144 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesPar consquent, pour que la matrice A soit dfinie positive il faut que les valeurs propres soient tous positifs, ce quiimpose> 0, || < pn1 .Dans ce cas, le conditionnement de la matrice en norme 2 estK2(A)=+pn1pn1 si 0,pn1+pn1 sinon.Exercice 6.7Donner une condition suffisante sur le coefficient pour avoir convergence des mthodes de JACOBI et GAUSS-SEIDELpour la rsolution dun systme linaire associ la matriceA= 0 10 01 0 CORRECTION. Une condition suffisante pour la convergence des mthodes de JACOBI et de GAUSS-SEIDEL est queA est diagonale strictement dominante.A vrifie cette condition si et seulement si || > 1.Exercice 6.8Considrons le systme linaireAx= b avecA= 0 0 0 avec , , et des paramtres rels. Donner des conditions suffisantes sur les coefficients pour avoir1. convergence de la mthode de Jacobi2. convergence de la mthode de Gauss-Seidel.CORRECTION.1. Une condition suffisante pour que la mthode de JACOBI converge est que la matrice soit dominance diagonalestricte, ce qui quivaut imposer || > ||,|| > ||,|| > ||,cest--dire || >max{ ||, ||, ||}.2. La condition prcdente est aussi suffisante pour la convergence de la mthode de Gauss-Seidel. Une autre conditionsuffisante pour la convergence de cette mthode est que la matrice soit symtrique dfinie positive. Pour la symtrieil faut que {= 0,= ,on obtient ainsi la matriceA= 0 00 0 .Elle est dfinie positive si ses valeurs propres sont positifs. On a1 =, 2 =, 3 =+,donc il faut que > ||. G. Faccanoni 1456. Systmes linaires Jeudi 31 janvier 2013Exercice 6.9crire les formules de la mthode dlimination de Gauss pour une matrice de la formeA=a1,1 a1,2 0 . . . 0a2,1 a2,2 a2,3 0....... . .. . .. . ........ . .. . . 0... an1,n1 an1,nan,1 an,2 . . . an,n1 an,n.Quelle est la forme finale de la matrice U=A(n) ? tant donn la forme particulire de la matrice A, indiquer le nombreminimal doprations ncessaire pour calculer U ainsi que celui pour la rsolution des systmes triangulaires finaux.CORRECTION. Comme la matrice a une seule sur-diagonale non nulle, les formules de la mthode dlimination de Gaussdeviennenta(k+1)i , j = a(k)i , j +mi ,k a(k)k, j , i , j = k+1,mi ,k =a(k)i ,ka(k)k,k, i = k+1.La cot est donc de lordre de n et la matrice U est bidiagonale suprieure.Exercice 6.10Soit R et considrons les matrices carres de dimension nA= 0 . . . 0. . ....... . . . , B= . . . . . ....... . . . .1. Calculer et pour que B soit linverse deA.2. Calculer le conditionnement K(A) en fonction de n et en calculer la limite pour n qui tend vers linfini.CORRECTION.1. Par dfinition, B est la matrice inverse deA siAB=BA= I. CommeAB=+ 0 . . . 00. . ....... + 0+ (n3) . . . + (n3) (n2) ,il faut que += 1+ (n3)= 0(n2)= 1ce qui donne= n3n2 , =1n2 .2. On trouve immdiatement A = n|| tandis queA1 = 1|| max{n,nn2}= 2|| .146 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesOn conclut que le conditionnement K(A) en fonction de n estK(A)= n|| 2|| = 2n.La matrice est donc mal conditionne pour n grand.Exercice 6.11On suppose que le nombre rel > 0 est assez petit pour que lordinateur arrondisse 1+ en 1 et 1+ (1/) en 1/ ( estplus petit que lerreur machine (relative), par exemple, = 230 en format 32 bits). Simuler la rsolution par lordinateurdes deux systmes suivants : {a+b = 12a+b = 0 et{2a+b = 0a+b = 1On appliquera pour cela la mthode du pivot de Gauss et on donnera les dcompositions LU des deux matrices associes ces systmes. On fournira galement la solution exacte de ces systmes. Commenter.CORRECTION.Premier systme : ( 12 1)(ab)=(10).Factorisation LU : ( 12 1)L2L2 2 L1( 10 1 2)doncL=(1 02 1)U=( 10 1 2)Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly= b et Ux= y :(1 02 1)(y1y2)=(10)= y1 = 1, y2 =2;( 10 1 2)(ab)=(1 2)= b = 2(1 2) , a = 1+ 2(1 2 ).Mais avec lordinateur, comme 1+ 1 et 1+ (1/) 1/, on obtientL=(1 02 1)U=( 10 2)Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly= b et Ux= y :(1 02 1)(y1y2)=(10)= y1 = 1, y2 =2;( 10 2)(ab)=(1 2)= b = 1, a = 0.Second systme : (2 1 1)(ab)=(01).Factorisation LU : (2 1 1)L2L2 2 L1(2 10 1 2)doncL=(1 02 1)U=(2 10 1 2) G. Faccanoni 1476. Systmes linaires Jeudi 31 janvier 2013Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly= b et Ux= y :(1 02 1)(y1y2)=(01)= y1 = 0, y2 = 1;(2 10 1 2)(ab)=(01)= b = 2(1 2) , a = 1+ 2(1 2 ).Mais avec lordinateur, comme 1+ 1 et 1+ (1/) 1/, on obtientL=(1 02 1)U=(2 10 2)Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly= b et Ux= y :(1 02 1)(y1y2)=(01)= y1 = 0, y2 = 1;(2 10 2)(ab)=(01)= b =2, a = 4.Exercice 6.12Rappeler lalgorithme vu en cours pour calculer la dcomposition LU dune matrice A et la solution du systme Ax= bo le vecteur colonne b est donn. On appliquera ces algorithmes pour les cas suivants : 1 1 12 1 33 2 4x1x2x3=111 et1 2 3 42 5 7 13 1 1 52 2 0 3x1x2x3x4=1111 et1 1 1 11 2 3 41 4 6 81 0 0 0x1x2x3x4=1111Donner, en fonction de n (nombre de lignes et de colonnes de A), une majoration du nombres doprations effectuespar lordinateur pour calculer la dcomposition LU deA avec lalgorithme donn en cours. Donner aussi une estimationdu nombres doprations effectues pour rsoudre le systmeAx= b quand la dcomposition LU est connue.CORRECTION. Premier systme : 1 1 1 12 1 3 13 2 4 1 L2L221 L1L3L3 31 L1 1 1 1 10 1 1 10 5 7 4 L3L3 51 L2 1 1 1 10 1 1 10 0 12 1doncL= 1 0 02 1 03 5 1 U=1 1 10 1 10 0 12Il ne reste rsoudre que le systme triangulairex1+x2+x3 = 1x2+x3 =112x3 =1= x3 = 112, x2 = 1112, x1 = 16.Deuxime systme :1 2 3 4 12 5 7 1 13 1 1 5 12 2 0 3 1L2L2 21 L1L3L3 31 L1L4L4 21 L11 2 3 4 10 9 1 7 10 5 8 7 20 2 6 5 1L3L3 59 L2L4L4 29 L21 2 3 4 10 9 1 7 10 0 779 289 1390 0 569 319 79 L4L4 56/977/9 L21 2 3 4 10 9 1 7 10 0 779 289 1390 0 0 1311 311148 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linairesdoncL=1 0 0 02 1 0 03 59 1 02 295677 1 U=1 2 3 40 9 1 70 0 779 2890 0 0 1311Il ne reste rsoudre que le systme triangulairex1+2x2+3x3+4x4 = 19x2+x37x4 =1 779 x3 289 x4 = 139 1311 x4 = 311= x4 = 313, x3 = 2391, x2 = 2991, x1 = 4891.Troisime systme :1 1 1 1 11 2 3 4 11 4 6 8 11 0 0 0 1L2L2L1L3L3L1L4L4L11 1 1 1 10 3 2 3 00 3 5 7 00 1 1 1 0L3L3(1)L2L4L4 13 L21 1 1 1 10 3 2 3 00 0 7 10 00 0 53 2 0 L4L4 5/37 L21 1 1 1 10 3 2 3 00 0 7 10 00 0 0 821 0doncL=1 0 0 01 1 0 01 1 1 01 13521 1 U=1 1 1 10 3 2 30 0 7 100 0 0 821Il ne reste rsoudre que le systme triangulairex1+x2+x3+x4 = 13x2+2x3+3x4 = 07x3+10x4 = 0821 x4 = 0= x4 = 0, x3 = 0, x2 = 0, x1 = 1.Exercice 6.13crire les mthodes itratives de Gauss, JACOBI et GAUSS-SEIDEL pour les systmes suivants :{10a+b = 112a+10b = 12 et{2a+10b = 1210a+b = 11.Pour chacun de ces mthodes et systmes, on calculera le rayon spectral de la matrice associe la mthode. On illustrerales rsultats thoriques de convergence/non-convergence en calculant les 3 premiers itrs en prenant comme point dedpart le vecteur (a,b)= (0,0).CORRECTION.Gauss ? Premier systme :(10 1 112 10 12)L2L2 210 L1(10 1 110 495495)={10a+b = 11495 b = 495={a = 1b = 1.? Second systme :(2 10 1210 1 11)L2L2 102 L1(2 10 120 49 49)={2a+10b = 1249b =49 ={a = 1b = 1. G. Faccanoni 1496. Systmes linaires Jeudi 31 janvier 2013Jacobi ? Premier systme : {10a+b = 112a+10b = 12 {a = 11b10b = 122a10La matrice tant diagonale dominante stricte, la mthode converge et on ax(0) =(00), x(1) =( 1101012010)=(11/1012/10), x(2) = 11 121010122 111010= (49/5049/50), x(3) = 11 495010122 495010= (501/500502/500).? Second systme : {2a+10b = 1210a+b = 11 {a = 1210b2b = 1110aLa mthode ne converge pas, en effet on ax(0) =(00), x(1) =( 1202110)=(611), x(2) =( 121011211106)=(4949), x(3) =( 1210(49)21110 (49))=(251501).Gauss-Seidel ? Premier systme : {10a+b = 112a+10b = 12 {a = 11b10b = 122a10La matrice tant diagonale dominante stricte, la mthode converge et on ax(0) =(00), x(1) =( 11010122 111010)=(11/1049/50), x(2) = 11 495010122 50150010= ( 501/5002499/2500), x(3) = 11 2499250010122 250012500010= ( 25001/2500012499/125000).? Second systme : {2a+10b = 1210a+b = 11 {a = 1210b2b = 1110aLa mthode ne converge pas, en effet on ax(0) =(00), x(1) =( 120211106)=(649), x(2) =( 1210(49)21110251)=(2512499), x(3) =( 1210(2499)21110 (12501))=(12501124999).Exercice 6.14Rsoudre les systmes linaires suivants :x5y 7z = 32x13y 18z = 33x27y 36z = 3etx5y 7z = 62x13y 18z = 03x27y 36z =3etx5y 7z = 02x13y 18z = 33x27y 36z = 6.CORRECTION. Le trois systmes scrivent sous forme matricielle1 5 72 13 183 27 36xyz=333 et1 5 72 13 183 27 36xyz= 603 et1 5 72 13 183 27 36xyz=036On remarque que seul le terme source change. On calcul dabord la dcomposition LU de la matriceA :1 5 72 13 183 27 36 L2L22L1L3L33L11 5 70 3 40 12 15 L3L34L21 5 70 3 40 0 1doncL=1 0 02 1 03 4 1 U=1 5 70 3 40 0 1Pour rsoudre chaque systme linaire on rsout les systmes triangulaires Ly= b et Ux= y.150 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaires1. Pour le premier systme on a1 0 02 1 03 4 1y1y2y3=333 = y1 = 3, y2 =3, y3 = 6;1 5 70 3 40 0 1x1x2x3= 336 = x3 = 6, x2 =7, x1 = 10.2. Pour le seconde systme on a1 0 02 1 03 4 1y1y2y3= 603 = y1 = 6, y2 =12, y3 = 27;1 5 70 3 40 0 1x1x2x3= 61227 = x3 = 27, x2 =32, x1 = 35.3. Pour le dernier systme on a1 0 02 1 03 4 1y1y2y3=036 = y1 = 0, y2 = 3, y3 =6;1 5 70 3 40 0 1x1x2x3= 61227 = x3 =6, x2 = 7, x1 =7.Exercice 6.15SoitA une matrice,A Mn,n(R).1. Rappeler la mthode de JACOBI pour la rsolution du systmeAx= b, avec b Mn,1(R) donn.2. Soit la matriceA suivante : 4 1 11 3 11 1 4 .La mthode de JACOBI est-elle convergente pour cette matrice ?3. Construire la main les matrices L et U de la factorisation LU pour la matrice ci-dessus.CORRECTION.1. La mthode de JACOBI est une mthode itrative pour le calcul de la solution dun systme linaire qui construit unesuite de vecteurs x(k) Rn convergent vers la solution exacte x pour tout vecteur initiale x(0) Rn :xk+1i =bi nj=1j 6=iai j xkjai i, i = 1, . . . ,n.2. Comme |4| > |1|+ |1|, |3| > |1|+ |1| et |4| > |1|+ |1|, la matriceA est diagonale dominante stricte donc lamthode de JACOBI converge3. Factorisation : 4 1 11 3 11 1 4 L2L214 L1L3L3 14 L14 1 10 11/4 5/40 5/4 15/4 L3L3 5/411/4 L23 1 10 11/4 5/40 0 35/11 .Par consquentL= 1 0 01/4 1 01/4 5/11 1 et U=4 1 10 11/4 5/40 0 35/11 . G. Faccanoni 1516. Systmes linaires Jeudi 31 janvier 2013Exercice 6.16Soit la matriceA Rnn dont les lments vrifient? ai j = 1 si i = j ou i = n,? ai j =1 si i < j ,? ai j = 0 sinon.Calculer la factorisation LU deA.CORRECTION. Factorisation LU de la matriceA :1 1 . . . . . . . . . 10 1. . .. . ........ . . 1. . ........ . .. . .. . ....0 . . . . . . 0 1 11 1 1 . . . 1 1LnLn 11 L11 1 . . . . . . . . . 10 1. . .. . ........ . . 1. . ........ . .. . .. . ....0 . . . . . . 0 1 10 2 2 . . . 2 2LnLn 21 L21 1 . . . . . . . . . 10 1. . .. . ........ . . 1. . ........ . .. . .. . ....0 . . . . . . 0 1 10 0 4 . . . 4 4[. . . ]LnLn 2n21 Ln11 1 . . . . . . . . . 10 1. . .. . ........ . . 1. . ........ . .. . .. . ....0 . . . . . . 0 1 10 0 0 . . . 0 2n1par consquent on obtient les matricesL=1 0 0 . . . . . . 00 1 0. . ....0 0 1. . ........... . .. . . 0 00 0 . . . 0 1 01 2 4 . . . 2n2 1et U=1 1 1 . . . . . . 10 1 1 . . . ...0 0 1. . ........... . .. . . 1 10 0 . . . 0 1 10 0 0 . . . 0 2n1.On obtient? `i i = 1 pour i = 1, . . . ,n,? `i j = 0 si i < n et i 6= j ,? `n j = 2 j1 si j < n ;? ui j = ai j pour i=1,. . .,n-1, j=1,. . .,n,? un j = 0 si j < n,? unn = 2n1.Exercice 6.17Considrons une matriceA Rnn (avec n 3) dont les lments vrifient? ai j = 1 si i = j ou j = n,? ai j =1 si i > j ,? ai j = 0 sinon.Calculer la factorisation LU deA.CORRECTION. Factorisation LU de la matriceA :1 0 . . . . . . 0 11 1 . . . ... ....... . . 1. . ........... . .. . . 0....... . . 1 11 . . . . . . . . . 1 1L2L2+L1...LnLn+L11 0 . . . . . . 0 10 1. . .... 2... 1 1 . . . ... .......... . .. . . 0.......... . . 1 20 1 . . . . . . 1 2L3L3+L2...LnLn+L21 0 . . . . . . 0 10 1. . .... 2... 0 1. . .... 4...... 1 . . . 0 ............. . . 1 40 0 1 . . . 1 4152 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaires[. . . ]LnLn+Ln11 0 . . . . . . 0 200 1. . .... 21.... . . 1. . .... 22.... . .. . . 0....... . . 1 2n20 . . . . . . . . . 0 2n1On obtient les matricesL=1 0 . . . . . . . . . 01 1 . . . ....... . . 1. . ........ . .. . .. . ........ . . 1 01 . . . . . . . . . 1 1et U=1 0 . . . . . . 0 200 1. . .... 21.... . . 1. . .... 22.... . .. . . 0....... . . 1 2n20 . . . . . . . . . 0 2n1.i.e.? `i i = 1 pour i = 1, . . . ,n, ,? `i j =1 si i > j? `i j = 0 sinon ;? ui i = 1 pour i = 1, . . . ,n1,? ui n = 2i1 pour i = 1, . . . ,n,? ui j = 0 sinon.Exercice 6.18 Systmes linaires (6 pts)On considre la matrice tridiagonale inversibleA RnnA=a1 c1 0 . . . . . . 0b2 a2 c2. . ....0 b3 a3. . .. . ........ . .. . .. . .. . . 0.... . . bn1 an1 cn10 . . . . . . 0 bn an1. Montrer que les matrices L et U de la factorisation LU de A sont bidiagonales, i.e. si ai j = 0 pour |i j | > 1 alors`i j = 0 pour i > 1+ j (et pour i < j car triangulaire infrieure) et ui j = 0 pour i < j 1 (et pour i > j car triangulairesuprieure).Soit A(k), k = 0, . . . ,n1 la matrice obtenue ltape k de la mthode de GAUSS, avec A(0) = A et A(n1) = U. Onmontrera par rcurrence sur k queA(k) est tridiagonale pour tout k = 0, . . . ,n1, i.e. a(k)i j = 0 pour |i j | > 1.Initialisation : pour k = 0,A(0) =A est une matrice tridiagonale.Hrdit : soitA(k) une matrice tridiagonale (i.e. a(k)i j = 0 pour |i j | > 1) et montrons queA(k+1) lest aussi.? Si i k, que valent-ils les coefficients a(k+1)i j ?? Si i > k alors on va considrer sparment les cas suivants :? si j k, que valent-ils les coefficients a(k+1)i j ?? si j > k et j < i 1, que valent-ils les coefficients a(k)i k et `(k)i k ? Que peut-on dduire sur les coefficientsa(k+1)i j ?? si j > k et j > i +1, que valent-ils les coefficients a(k)k j et `(k)i k ? Que peut-on dduire sur les coefficientsa(k+1)i j ?NB : Justifier succinctement chaque rponse !2. On a montr au point prcdent que les matrices L etU de la factorisation LU deA sont bidiagonales, crivons-les G. Faccanoni 1536. Systmes linaires Jeudi 31 janvier 2013sous la formeL=1 0 . . . . . . . . . 02 1. . ....0 3 1. . ........ . .. . .. . .. . ........ . . n1 1 00 . . . . . . 0 n 1, U=1 1 0 . . . . . . 00 2 2. . ........ . .. . .. . .. . ........ . .. . .. . . 0.... . . n1 n10 . . . . . . . . . 0 n.Calculer (1,2, . . . ,n), (2,3, . . . ,n) et (1,2, . . . ,n1) en fonction de (a1, a2, . . . , an), (b2,b3, . . . ,bn) et(c1,c2, . . . ,cn1). En dduire un algorithme de factorisation.3. laide des formules trouves au point prcdent, crire lalgorithme pour rsoudre le systme linaire Ax= f of= ( f1, f2, . . . , fn)T Rn .CORRECTION.1. Soit A(k), k = 0, . . . ,n 1 la matrice obtenue ltape k de la mthode de GAUSS, avec A(0) = A et A(n1) = U. Onmontrera par rcurrence sur k queA(k) est tridiagonale, i.e. a(k)i j = 0 pour |i j | > 1.Initialisation : pour k = 0,A(0) =A qui est une matrice tridiagonale.Hrdit : soitA(k) une matrice tridiagonale (i.e. a(k)i j = 0 pour |i j | > 1) et montrons queA(k+1) lest aussi.? Si i k alors a(k+1)i j = a(k)i j = 0 (les lignes L1, . . . ,Lk de la matriceA(k) ne sont pas modifies ltape k).? Soit i > k, alors les lignes Lk+1, . . . ,Ln de la matriceA(k) vont tre modifies selon la relation)a(k+1)i j = a(k)i j a(k)i ka(k)kka(k)k j .Pour chaque ligne i > k, considrons sparment les colonnes j k et les colonnes j > k :? si j k, a(k+1)i j = 0 (zros quon fait apparaitre avec la mthode de GAUSS pour une matrice quelconque),? soit j > k :? si j < i1, comme i , j > k alors a(k)i j = 0 et i > j+1> k+1, cest--dire ik > 1 et donc a(k)i k = 0 et `(k)i k = 0.Donc a(k+1)i j = 0.? si j > i +1, comme i , j > k alors a(k)i j = 0 et j > i +1 > k +1, cest--dire j k > 1 et donc a(k)k j = 0. Donca(k+1)i j = 0.2. Les coefficients (1,2, . . . ,n), (2,3, . . . ,n) et (1,2, . . . ,n1) se calculent en imposant lgalit LU = A. Lalgo-rithme se dduit en parcourant les tapes de la mthode de GAUSS :A(0) =a1 c1 0 . . . . . . 0b2 a2 c2. . ....0 b3 a3. . .. . ........ . .. . .. . .. . . 0.... . . bn1 an1 cn10 . . . . . . 0 bn anL2L22L12= b2a1A(1) =1 = a1 1 = c1 0 . . . . . . 00 2 = a22c1 2 = c2. . ....0 b3 a3. . .. . ........ . .. . .. . .. . . 0.... . . bn1 an1 cn10 . . . . . . 0 bn anL3L33L23= b32A(2) =1 = a1 1 = c1 0 . . . . . . 00 2 = a22c1 2 = c2. . ....0 0 3 = a33c2. . .. . ........ . .. . .. . .. . . 0.... . . bn1 an1 cn10 . . . . . . 0 bn anL4L44L34= b43[ ]154 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaires[ ] LnLnn Ln1n= bnnA(n1) =1 = a1 1 = c1 0 . . . . . . 00 2 = a22c1 2 = c2. . ....0 0 3 = a33c2. . .. . ........ . .. . .. . .. . . 0.... . . 0 n1 = an1n1cn2 n1 = cn10 . . . . . . 0 0 n = an ncn1Donc i = ci pour i = 1, . . . ,n, 1 = a1 et on dfinie par rcurrence{i = bii1i = ai i ci1pour i = 2, . . . ,n.3. La rsolution du systme linaire Ax= f se ramne la rsolution des deux systmes linaires Ly= f et Ux= y, pourlesquels on obtient les formules suivantes :{y1 = f1,yi = fi i yi1, pour i = 2, . . . ,n,i.e.{y1 = f1,yi = fi biaii ci1 yi1, pour i = 2, . . . ,n;{xn = ynn ,xi = yii xi+1i , pour i = n1, . . . ,1,i.e.xn = ynn ,xi = yici xi+1aii ci1 , pour i = n1, . . . ,2,x1 = yici x2a1 .Exercice 6.19Soit les systmes linaires 4x1+3x2+3x3 = 103x1+4x2+3x3 = 103x1+3x2+4x3 = 10(6.1)4x1+x2+x3 = 6x1+4x2+x3 = 6x1+x2+4x3 = 6(6.2)1. Rappeler une condition suffisante de convergence pour les mthodes de JACOBI et de Gauss-Seidel. Rappeler uneautre condition suffisante de convergence pour la mthode de GAUSS-SEIDEL (mais non pour la mthode de Ja-cobi). Les systmes (6.1) et (6.2) vrifient-ils ces conditions ?2. crire les mthodes de JACOBI et de GAUSS-SEIDEL pour ces deux systmes linaires.3. On illustrera les rsultats thoriques de convergence/non-convergence de ces deux schmas en prenant commepoint de dpart le vecteur (x1, x2, x3)= (0,0,0) et en calculant les 3 premiers itrs dans lun des cas suivant (voustes libre de choisir) :3.1. avec la mthode de JACOBI pour le systme (6.1),3.2. avec la mthode de GAUSS-SEIDEL pour le systme (6.1),3.3. avec la mthode de JACOBI pour le systme (6.2),3.4. avec la mthode de GAUSS-SEIDEL pour le systme (6.2).4. On comparera le rsultat obtenu avec la solution exacte (quon calculera laide de la mthode dlimination deGauss).CORRECTION. crivons les deux systmes sous forme matricielleAx= b :4 3 33 4 33 3 4 A1x1x2x3=101010 et4 1 11 4 11 1 4 A2x1x2x3=6661. Rappelons deux proprits de convergence :? Si la matriceA est diagonale dominante stricte, les mthodes de JACOBI et de GAUSS-SEIDEL convergent. G. Faccanoni 1556. Systmes linaires Jeudi 31 janvier 2013? Si la matriceA est symtrique et dfinie positive, la mthode de GAUSS-SEIDEL converge.Comme 4 > 1+ 1, la matrice A2 est diagonale dominante stricte : les mthodes de JACOBI et de GAUSS-SEIDELconvergent.Comme 4< 3+3, la matriceA1 nest pas diagonale dominante stricte : les mthodes de JACOBI et de GAUSS-SEIDELpeuvent ne pas converger. Cependant elle est symtrique et dfinie positive (car les valeurs propres 1 sont 1 =2 = 1et 3 = 10) : la mthode de GAUSS-SEIDEL converge.2. Pour les systmes donns les mthodes de JACOBI et GAUSS-SEIDEL scriventA1x= b A2x= bJacobix(k+1)1x(k+1)2x(k+1)3= 14103x(k)2 3x(k)3103x(k)1 3x(k)3103x(k)1 3x(k)2x(k+1)1x(k+1)2x(k+1)3= 146x(k)2 x(k)36x(k)1 x(k)36x(k)1 x(k)2Gauss-Seidelx(k+1)1x(k+1)2x(k+1)3= 14103x(k)2 3x(k)3103x(k+1)1 3x(k)3103x(k+1)1 3x(k+1)2x(k+1)1x(k+1)2x(k+1)3= 146x(k)2 x(k)36x(k+1)1 x(k)36x(k+1)1 x(k+1)23. On obtient les suites suivantes3.1. JACOBI pour le systme (6.1) :x1x2x3(0)=000 =x1x2x3(1)= 14103030103030103030=525252=x1x2x3(2)= 14103 52 3 52103 52 3 52103 52 3 52= 54 54 54 =x1x2x3(3)= 14103 54 3 54103 54 3 54103 54 3 54=3583583583.2. GAUSS-SEIDEL pour le systme (6.1) :x1x2x3(0)=000 =x1x2x3(1)= 14103030103 52 30103 52 3 58=5258532=x1x2x3(2)= 14103 58 3 532103 245128 3 532103 245128 3 485512=2451284855127252048 =x1x2x3(3)=1248581923576532768705651310723.3. JACOBI pour le systme (6.2) :x1x2x3(0)=000 =x1x2x3(1)= 14610106101061010=323232=x1x2x3(2)= 1461 32 1 3261 32 1 3261 32 1 32=343434 =x1x2x3(3)= 1461 34 1 3461 34 1 3461 34 1 34=9898981. detA1()= (4)3+27+279(4)9(4)9(4)= 6448+1223+54108+27=3+12221+10. Une racine vidente est= 1 et on obtient detA1()= (1)(2+1110)= (1)2(10).156 G. FaccanoniJeudi 31 janvier 2013 6. Systmes linaires3.4. GAUSS-SEIDEL pour le systme (6.2) :x1x2x3(0)=000 =x1x2x3(1)= 146101061 32 1061 32 1 9832982732=x1x2x3(2)= 1461 98 1 273261 129128 1 273261 129128 1 531512=12912853151220252048 =x1x2x3(3)= 1461 531512 1 2025204861 81398192 1 2025204861 81398192 1 3291332768=8139819232913327681311391310724. Calcul de la solution exacte laide de la mthode dlimination de Gauss :? Systme (6.1) : 4 3 3 103 4 3 103 3 4 10 L2L234 L1L3L3 34 L1 4 3 3 100 7/4 3/4 5/20 3/4 7/4 5/2 L3L3 3/47/4 L2 4 3 3 100 7/4 3/4 5/20 0 10/7 10/7 = x=111? Systme (6.2) : 4 1 1 61 4 1 61 1 4 6 L2L214 L1L3L3 14 L1 4 1 1 60 15/4 3/4 9/20 3/4 15/4 9/2 L3L3 3/415/4 L2 4 1 1 60 15/4 3/4 9/20 0 18/5 18/5 = x=111 G. Faccanoni 157A. Python : guide de survie pour les TPLe but de ce chapitre est de fournir suffisamment dinformations pour pouvoir tester les m-thodes numriques vues dans ce polycopi. Il nest ni un manuel de Python ni une initia-tion la programmation. On suppose que vous avez dj des notions de programmation etde manipulation de fichier.Python est un langage dvelopp dans les annes 1 980 (le nom est driv de la srie tlvise britannique des MontyPythons Flying Circus). Il est disponible pour tous les principaux systmes dexploitation (Linux, Unix, Windows, Mac OS,etc.). Un programme crit sur un systme fonctionne sans modification sur tous les systmes. Les programmes Python nesont pas compils en code machine, mais sont grs par un interprteur. Le grand avantage dun langage interprt est queles programmes peuvent tre tests et mis au point rapidement, ce qui permet lutilisateur de se concentrer davantage surles principes sous-jacents du programme et moins sur la programmation elle-mme. Cependant, un programme Pythonpeut tre excut uniquement sur les ordinateurs qui ont install linterprteur Python.A.1. Obtenir Python et son diteur IDLEPour installer Python il suffit de tlcharger la version 2.6 qui correspond au systme dexploitation (Windows ou Mac) ladresse www.python.org. Pour ceux qui est des systmes Linux, il est trs probable que Python est dj install.Si on na jamais programm, le plus simple pour excuter les instructions Python est dutiliser des environnements sp-cialiss comme IDLE ou IDLEX (ou encore SPYDER). Ces environnements se composent dune fentre appele indiffrem-ment console, shell ou terminal Python.A.1.1. Utilisation de base dIdlePour commencer on va dmarrer Python en lanant IDLE :? sous Windows : menu Dmarrer programme Python IDLE? sous Ubuntu : menu Applicationsmenu Programmation IDLE? sous Mac/Linux : ouvrir un terminal/console et taper idle-python2.6Une nouvelle fentre va souvrir, cest la fentre principale dIDLE appele la fentre de lINTERPRTEUR :LINTERPRTEUR permet dentrer directement des commandes et ds quon crit une commande, Python lexcute et ren-voie instantanment le rsultat. Linvite de commande se compose de trois chevrons (>>>) et reprsente le prompt : cettemarque visuelle indique que Python est prt lire une commande. Il suffit de saisir la suite une instruction puis dappuyersur la touche Entre. Pour commencer, comme le veux la tradition informatique, on va demander Python dafficher lesfameux mots Hello world :159A. Python : guide de survie pour les TP Jeudi 31 janvier 2013La console Python fonctionne comme une simple calculatrice : on peut saisir une expression dont la valeur est renvoyeds quon presse la touche Entre. Si on observe limage suivante, on voit le rsultat affich aprs lentre de commandessupplmentaires.Pour naviguer dans lhistorique des instructions saisies dans lINTERPRTEUR on peut utiliser les raccourcisAlt+p (p commeprevious) et Alt+n (n comme next). 1Si on ferme Python et quon le relance, comment faire en sorte que lordinateur se souvienne de ce que nous avons tap ?On ne peut pas sauvegarder directement ce qui se trouve dans la fentre de linterprteur, parce que cela comprendrait lafois les commandes tapes et les rponses du systme. Il faut alors avoir un fichier avec uniquement les commandes quona tapes et sauver le tout comme un document. Ainsi plus tard on pourra ouvrir ce fichier et lancer Python sans avoir retaper toutes les commandes. Tout dabord, commenons par un support propre en ouvrant une nouvelle fentre.Voici ce que cela donne :1. Il ne sagit pas, pour linstant, de soccuper des rgles exactes de programmation, mais seulement dexprimenter le fait dentrer des commandesdans Python.160 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TPOn voit quil ny a rien dans cette nouvelle fentre (pas den-tte comme dans lINTERPRTEUR). Ce qui veut dire que cefichier est uniquement pour les commandes : Python ninterviendra pas avec ses rponses lorsque on crira le programmeet ce tant que on ne le lui demandera pas. On appellera cela la fentre de PROGRAMME, pour la diffrencier de la fentre delINTERPRTEUR. En fait, ce quon veut faire, ctait de sauver les quelques instructions quon a essayes dans linterprteur.Alors faisons-le soit en tapant soit en copiant-collant ces commandes dans la fentre PROGRAMME :On note quon sest dbarrasss du prompt de Python (>>>). Sauvons maintenant le fichier : la commande Save (Sauver)se trouve dans le menu File (Fichier) ou utiliser le raccourcis Ctrl+S :Ayant sauv le programme, pour le faire tourner et afficher les rsultats dans la fentre de lINTERPRTEUR il suffit dutiliserla commande Run script (lancer le script) dans le menu Run de la fentre PROGRAMME ou appuyer sur la touche F5Si on a fait une faute de frappe, Python le remarque et demande de corriger. Il est souvent assez pertinent pour diriger versle problme et dans le cas ci-dessous il dit quon a oubli quelque chose la fin de la ligne : il faut remplacer " par .Cette faute de frappe tant corrige, on fait tourner le programme et on regarde le rsultat dans lINTERPRTEUR : G. Faccanoni 161A. Python : guide de survie pour les TP Jeudi 31 janvier 2013Maintenant quon a sauv le programme, on est capable de le recharger : on va tout fermer et relancer IDLE. La commandeOpen (Ouvrir) se trouve dans le menu File (Fichier). Si tout se passe bien, on va avoir une nouvelle fentre PROGRAMMEavec lancien programme.A.2. Notions de base de PythonIndentation Le corps dun bloc de code (boucles, sous-routines, etc.) est dfini par son indentation : lindentation estune partie intgrante de la syntaxe de Python.Commentaires Le symbole dise (#) indique le dbut dun commentaire : tous les caractres entre # et la fin de la lignesont ignors par linterprteur.Variables et affectation Dans la plupart des langages informatiques, le nom dune variable reprsente une valeur duntype donn stocke dans un emplacement de mmoire fixe. La valeur peut tre modifie, mais pas le type. Ce nest pas lecas en Python, o les variables sont types dynamiquement. La session interactive suivante avec lINTERPRTEUR Pythonillustre ce propos (>>> est le prompt) :1 >>> b = 2 # b is an integer2 >>> print(b)3 24 >>> b = b*2.0 # b is a float5 >>> print(b)6 4.0Laffectation b = 2 cre une association entre le nom b et le nombre entier 2. La dclaration suivante b*2.0 value lex-pression et associe le rsultat b ; lassociation dorigine avec lentier 2 est dtruite. Maintenant b se rfre la valeur envirgule flottante 4.0. Il faut bien prendre garde au fait que linstruction daffectation (=) na pas la mme signification quele symbole dgalit (=) en mathmatiques (ceci explique pourquoi laffectation de 3 x, quen Python scrit x = 3, enalgorithmique se note souvent x 3). On peut aussi effectuer des affectations parallles :1 >>> a, b = 128, 2562 >>> print(a)3 1284 >>> print(b)5 256ATTENTION. Python est sensible la casse. Ainsi, les noms n et N reprsentent diffrents objets. Les noms de variablespeuvent tre non seulement des lettres, mais aussi des mots ; ils peuvent contenir des chiffres ( condition toutefois de ne pascommencer par un chiffre), ainsi que certains caractres spciaux comme le tiret bas _ (appel underscore en anglais).162 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TPChane de caractres (Strings) Une chane de caractres est une squence de caractres entre guillemets (simples oudoubles). Les chanes de caractres sont concatnes avec loprateur plus (+), tandis que loprateur (:) est utilis pourextraire une portion de la chane. Voici un exemple :1 >>> string1 = Press return to exit2 >>> string2 = the program3 >>> print string1 + + string2 # Concatenation4 Press return to exit the program5 >>> print string1[0:12] # Slicing6 Press returnUne chane de caractres est un objet immuable, i.e. ses caractres ne peuvent pas tre modifis par une affectation, et salongueur est fixe. Si on essaye de modifier un caractre dune chane de caractres, Python renvoie une erreur comme danslexemple suivant :1 >>> s = Press return to exit2 >>> s[0] = p3 Traceback (most recent call last):4 File "", line 1, in 5 TypeError: str object does not support item assignmentListes Une liste est une suite dobjets, rangs dans un certain ordre. Chaque objet est spar par une virgule et la suiteest encadre par des crochets. Une liste nest pas forcement homogne : elle peut contenir des objets de types diffrents lesuns des autres. La premire manipulation que lon a besoin deffectuer sur une liste, cest den extraire et/ou modifier unlment : la syntaxe est ListName[index]. Voici un exemple :1 >>> fraise = [12, 10, 18, 7, 15, 3] # Create a list2 >>> print fraise3 [12, 10, 18, 7, 15, 3]4 >>> fraise[2]5 186 >>> fraise[1] = 117 >>> print fraise8 [12, 11, 18, 7, 15, 3]ATTENTION. En Python, les lments dune liste sont indexs partir de 0 et non de 1.Si on tente dextraire un lment avec un index dpassant la taille de la liste, Python renvoi un message derreur :1 >>> fraise[0], fraise[1], fraise[2], fraise[3], fraise[4], fraise[5]2 (12, 11, 18, 7, 15, 3)3 >>> fraise[6]4 Traceback (most recent call last):5 File "", line 1, in 6 fraise[6]7 IndexError: list index out of rangeOn peut extraire une sous-liste en dclarant lindice de dbut (inclus) et lindice de fin (exclu), spars par deux-points :ListName[i:j], ou encore une sous-liste en dclarant lindice de dbut (inclus), lindice de fin (exclu) et le pas, sparspar des deux-points : ListName[i:j:k]. Cette opration est connue sous le nom de slicing (en anglais). Un petit dessin etquelques exemples permettrons de bien comprendre cette opration fort utile :fraise= 1201111827315435 6-6 -5 -4 -3 -2 -1len(fraise)1 >>> fraise[2:4]2 [18, 7]3 >>> fraise[2:] G. Faccanoni 163A. Python : guide de survie pour les TP Jeudi 31 janvier 20134 [18, 7, 15, 3]5 >>> fraise[:2]6 [12, 11]7 >>> fraise[:]8 [12, 11, 18, 7, 15, 3]9 >>> fraise[2:5]10 [18, 7, 15]11 >>> fraise[2:6]12 [18, 7, 15, 3]13 >>> fraise[2:7]14 [18, 7, 15, 3]15 >>> fraise[2:6:2]16 [18, 15]17 >>> fraise[-2:-4]18 []19 >>> fraise[-4:-2]20 [18, 7]21 >>> fraise[-1]22 3 noter que lorsquon utilise des tranches, les dpassements dindices sont licites.Voici quelques oprations et mthodes trs courantes associes aux listes :a.append(x) ajoute llment x en fin de la liste aa.extend(L) ajoute les lments de la liste L en fin de la liste a, quivaut a + La.insert(i,x) ajoute llment x en position i de la liste a, quivaut a[i:i]=xa.remove(x) supprime la premire occurrence de llment x dans la liste aa.pop([i]) supprime llment dindice i dans la liste a et le renvoia.index(x) renvoie lindice de la premire occurrence de llment x dans la liste aa.count(x) renvoie le nombre doccurrence de llment x dans la liste aa.sort(x) modifie la liste a en la trianta.reverse(x) modifie la liste a en inversant les lmentslen(a) renvoie le nombre dlments de la liste ax in a renvoi True si la liste a contient llment x, True sinonx not in a renvoi True si la liste a ne contient pas llment x, True sinonmax(a) renvoi le plus grand lment de la liste amin(a) renvoi le plus petit lment de la liste a1 >>> a = [2, 37, 20, 83, -79, 21] # Create a list2 >>> print a3 [2, 37, 20, 83, -79, 21]4 >>> a.append(100) # Append 100 to list5 >>> print a6 [2, 37, 20, 83, -79, 21, 100]7 >>> L = [17, 34, 21]8 >>> a.extend(L)9 >>> print a10 [2, 37, 20, 83, -79, 21, 100, 17, 34, 21]11 >>> a.count(21)12 213 >>> a.remove(21)14 >>> print a15 [2, 37, 20, 83, -79, 100, 17, 34, 21]16 >>> a.count(21)17 118 >>> a.pop(4)19 -7920 >>> print a21 [2, 37, 20, 83, 100, 17, 34, 21]22 >>> a.index(100)23 424 >>> a.reverse()25 >>> print a26 [21, 34, 17, 100, 83, 20, 37, 2]164 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TP27 >>> a.sort()28 >>> print a29 [2, 17, 20, 21, 34, 37, 83, 100]30 >>> len(a) # Determine length of list31 832 >>> a.insert(2,7) # Insert 7 in position 233 >>> print a34 [2, 17, 7, 20, 21, 34, 37, 83, 100]35 >>> a[2:4] = [-2,-5,-1978] # Modify selected elements36 >>> print a37 [2, 17, -2, -5, -1978, 21, 34, 37, 83, 100]ATTENTION. Si a est une liste, la commande b=a ne cre pas un nouvel objet b mais simplement une rfrence (pointeur)vers a. Ainsi, tout changement effectu sur b sera rpercut sur a aussi ! Pour crer une copie c de la liste a qui soit vraimentindpendante on utilisera la commande deepcopy du module copy comme dans lexemple suivant :1 >>> import copy2 >>> a = [1.0, 2.0, 3.0]3 >>> b = a # b is an alias of a4 >>> b[0] = 5.0 # Change b5 >>> print a # The change is reflected in a6 [5.0, 2.0, 3.0]7 >>> print b8 [5.0, 2.0, 3.0]9 >>> a = [1.0, 2.0, 3.0]10 >>> c = copy.deepcopy(a) # c is an independent copy of a11 >>> c[0] = 5.0 # Change c12 >>> print a # a is not affected by the change13 [1.0, 2.0, 3.0]14 >>> print c15 [5.0, 2.0, 3.0]Quest-ce qui se passe lorsque on copie une liste a avec la commande b=a ? En effet, une liste fonctionne comme un carnetdadresses qui contient les emplacements en mmoire des diffrents lments de la liste. Lorsque on crit b=a on dit que bcontient les mmes adresses que a (on dit que les deux listes pointent vers le mme objet). Ainsi, lorsquon modifie la valeurde lobjet, la modification sera visible depuis les deux alias.Matrices Les matrices peuvent tre reprsentes comme des listes imbriques : chaque ligne est un lment dune liste.Par exemple, le code1 >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]dfinit a comme la matrice 33 1 2 34 5 67 8 9 .La commande len (comme length) renvoie la longueur dune liste. On obtient donc le nombre de ligne de la matrice aveclen(a) et son nombre de colonnes avec len(a[0]). En effet,1 >>> print a2 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]3 >>> print a[1] # Print second row (element 1)4 [4, 5, 6]5 >>> print a[1][2] # Print third element of second row6 67 >>> print len(a)8 39 >>> print len(a[0])10 3ATTENTION. Dans Python les indices commences zro, ainsi a[0] indique la premire ligne, a[1] la deuxime etc. G. Faccanoni 165A. Python : guide de survie pour les TP Jeudi 31 janvier 2013Fonction range La fonction range cre un itrateur. Au lieu de crer et garder en mmoire une liste dentiers, cettefonction gnre les entiers au fur et mesure des besoins :? range(n) renvoi un itrateur parcourant 0,1,2, . . . ,n1 ;? range(n,m) renvoi un itrateur parcourant n,n+1,n+2, . . . ,m1 ;? range(n,m,p) renvoi un itrateur parcourant n,n+p,n+2p, . . . ,m1.1 >>> range(10)2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]3 >>> range(0)4 []5 >>> range(1)6 [0]7 >>> range(3,7)8 [3, 4, 5, 6]9 >>> range(0,20,5)10 [0, 5, 10, 15]11 >>> range(0,20,-5)12 []13 >>> range(0,-20,-5)14 [0, -5, -10, -15]15 >>> range(20,0,-5)16 [20, 15, 10, 5]Instruction print Pour afficher lcran des objets on utilise la commandeprint object1, object2, ...qui conver-tis object1, object2 en chanes de caractres et les affiche sur la mme ligne spars par des espace. Le retour la lignepeut tre forc par le caractre \n, la tabulation par le caractre \t :1 >>> a = 12345,67892 >>> b = [2, 4, 6, 8]3 >>> print a,b4 (12345, 6789) [2, 4, 6, 8]5 >>> print "a=", a, "\nb=", b6 a= (12345, 6789)7 b= [2, 4, 6, 8]8 >>> print "a=", a, "\tb=", b9 a= (12345, 6789) b= [2, 4, 6, 8]Pour mettre en colonne des nombres on pourra utiliser loprateur % : la commande print %format1, %format2,...%(n1,n2,...) affiche les nombres n1,n2,... selon les rgles %format1, %format2,.... Typiquement on utilisewd pour un entierw .d f pour un nombre en notation floating pointw .de pour un nombre en notation scientifiqueo w est la largeur du champ total, d le nombre de chiffres aprs la virgule. Voici quelques exemples :1 >>> a = 1234.567892 >>> n = 98763 >>> print %7.2f %a4 1234.575 >>> print n = %6d %n6 n = 98767 >>> print n = %06d %n8 n = 0098769 >>> print %12.4e %6d %(a,n)10 1.2346e+03 9876Oprations arithmtiques Dans Python on a les oprations arithmtiques usuelles :+ Addition- Soustraction* Multiplication/ Division** Exponentiation// Quotient de la division euclidienne% Reste de la division euclidienne166 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TPQuelques exemples :1 >>> a = 1002 >>> b = 173 >>> c = a-b4 >>> a = 25 >>> c = b+a6 >>> a,b,c7 (2, 17, 19)8 >>> a = 39 >>> b = 410 >>> c = a11 >>> a = b12 >>> b = c13 >>> a, b, c14 (4, 3, 3)Certains de ces oprations sont aussi dfinies pour les chanes de caractres et les listes comme dans lexemple suivant :1 >>> s = Hello 2 >>> t = to you3 >>> a = [1, 2, 3]4 >>> print 3*s # Repetition5 Hello Hello Hello6 >>> print 3*a # Repetition7 [1, 2, 3, 1, 2, 3, 1, 2, 3]8 >>> print a + [4, 5] # Append elements9 [1, 2, 3, 4, 5]10 >>> print s + t # Concatenation11 Hello to you12 >>> print 3 + s # This addition makes no sense13 Traceback (most recent call last):14 File "", line 1, in 15 TypeError: unsupported operand type(s) for +: int and strIl existe aussi les oprateurs augments :On crit quivaut a += b a = a + ba -= b a = a - ba *= b a = a*ba /= b a = a/ba **= b a = a**ba %= b a = a%bOprateurs de comparaison et connecteurs logiques Les oprateurs de comparaison renvoient True si la conditionest vrifie, False sinon. Ces oprateurs sontOn crit a signifie< >= == =!= 6=in ATTENTION. Bien distinguer linstruction daffectation = du symbole de comparaison ==.Pour combiner des conditions complexes (par exemple x >2 et x2 < 5), on peut combiner des variables boolennes enutilisant les connecteurs logiques :On crit a signifieand etor ounot non G. Faccanoni 167A. Python : guide de survie pour les TP Jeudi 31 janvier 2013Deux nombres de type diffrents (entier, virgule flottante, etc.) sont convertis en un type commun avant de faire la com-paraison. Dans tous les autres cas, deux objets de type diffrents sont considrs non gaux. Voici quelques exemples :1 >>> a = 2 # Integer2 >>> b = 1.99 # Floating3 >>> c = 2 # String4 >>> print a>b5 True6 >>> print a==c7 False8 >>> print (a>b) and (a==c)9 False10 >>> print (a>b) or (a==c)11 True12 >>> print (a>b) or (a==b)13 TrueA.3. Fonctions et ModulesA.3.1. FonctionsSupposons de vouloir calculer les images de certains nombres par une fonction polynomiale donne. Si la fonction enquestion est un peu longue saisir, par exemple f : x 7 2x7x6+5x5x4+9x3+7x2+8x1, il est rapidement fastidieuxde la saisir chaque fois que lon souhaite calculer limage dun nombre par cette fonction. Une premire ide est duti-liser lhistorique de lINTERPRTEUR pour viter de saisir chaque fois la fonction, nanmoins ce nest pas trs pratique,surtout si on veut y travailler un autre jour. Il est tout fait possible de dfinir une fonction (au sens du langage Python) quiressemble une fonction mathmatique. La syntaxe est la suivante :1 def FunctionName(parameters):2 statements3 return valuesLa dclaration dune nouvelle fonction commence par le mot-cl def. Ensuite, toujours sur la mme ligne, vient le nom dela fonction (ici FunctionName) suivi des paramtres formels 2 de la fonction parameters), placs entre parenthses, le touttermin par deux-points (on peut mettre autant de paramtres formels quon le souhaite et ventuellement aucun). Unefois la premire ligne saisie, on appuie sur la touche Entre : le curseur passe la ligne suivante avec une indentation. Silinstruction return est absente, la fonction renvoi lobjet None.ATTENTION. Ds que Python atteint linstruction return something, il renvoi lobjet something et abandonne aussittaprs lexcution de la fonction (on parle de code mort pour dsigner les lignes qui suivent linstruction return).Voici un btisier pour mieux comprendre les rgles : dans le premier cas il manque les deux-points en fin de ligne, dansle deuxime il manque lindentation, dans le troisime il manque le mot return et donc tout appel de la fonction auracomme rponse None, dans le quatrime linstruction print Hello nest jamais lue par Python car elle apparait aprslinstruction return.1 >>> def f(x)2 SyntaxError: invalid syntax3 >>> def f(x):4 return 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-15 File "", line 26 return 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-17 ^8 IndentationError: expected an indented block9 >>> def f(x):10 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1111213 >>> f(2)14 >>> print f(2)15 None16 >>> def f(x):2. Les paramtres figurant entre parenthses dans len-tte dune fonction se nomment paramtres formels, par opposition aux paramtres fournislors de lappel de la fonction qui sont appels paramtres effectifs.168 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TP17 a = 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-118 return a19 print Hello2021 >>> f(2)22 451ATTENTION. Les variables dfinies lintrieur dune fonction ne sont pas visibles depuis lextrieur de la fonction. Onexprime cela en disant quune telle variable est locale la fonction. De plus, si une variable existe dj avant lexcution dela fonction, tout se passe comme si, durant lexcution de la fonction, cette variable tait masque momentanment, puisrestitue la fin de lexcution de la fonction.Dans lexemple suivant, la variable x est une variable locale la fonction f : cre au cours de lexcution de la fonction f,elle est supprime une fois lexcution termine :1 >>> def f(y):2 x = 23 return 4.*y45 >>> f(5)6 20.07 >>> x8 Traceback (most recent call last):9 File "", line 1, in 10 x11 NameError: name x is not definedDans lexemple suivant, la variable x est une variable qui vaut 6 lextrieur de la fonction et 7 au cours de lexcution dela fonction f :1 >>> x = 6.2 >>> def f(y):3 x = 74 return x*y56 >>> print x7 6.08 >>> print f(1.)9 7.010 >>> print x11 6.0Dans lexemple suivant la fonction derivatives approche les drives premire et seconde dune fonction f par lesformulesf (x)' f (x+h) f (xh)2h, f (x)' f (x+h)2 f (x)+ f (xh)h21 import math2 def derivatives(f,x,h):3 df = (f(x+h)-f(x-h))/(2.*h)4 ddf = (f(x+h)-2.*f(x)+f(x-h))/h**25 return df,ddfSi on veut calculer la valeur des drives premire et seconde de la fonction x 7 arctan(x) en x = 0.5 il suffit dcrire1 df, ddf = derivatives(math.atan,0.5,1.0e-5)2 print First derivative =, df3 print Second derivative =, ddfATTENTION. Si une liste est passe comme paramtre dune fonction et cette fonction la modifie, cette modification serpercute sur la liste initiale. Si ce nest pas le rsultat voulu, il faut travailler sur une copie de la liste.1 def squares(a):2 for i in range(len(a)):3 a[i] = a[i]**24 G. Faccanoni 169A. Python : guide de survie pour les TP Jeudi 31 janvier 20135 a = [1,2,3,4]6 print a # The output is [1, 2, 3, 4]7 squares(a)8 print a # The output is [1, 4, 9, 16]A.3.2. ModulesUn module est une collection de fonctions. Pour importer un module, il faut utiliser la commande import ModuleName.Il est alors possible dobtenir une aide sur le module avec la commande help(ModuleName). La liste des fonctions d-finies dans un module peut tre affiche par la commande dir(ModuleName). Les fonctions sutilisent sous la formeModuleName.FunctionName(parameters). Il est galement possible dimporter le contenu du module sous la formefrom ModuleName import * et alors les fonctions peuvent tre utilises directement par FunctionName(parameters).Python offre par dfaut une bibliothque de plus de deux cents modules qui vite davoir rinventer la roue ds quelon souhaite crire un programme. Ces modules couvrent des domaines trs divers : mathmatiques (fonctions mathma-tiques usuelles, calculs sur les rels, sur les complexes, combinatoire. . .), administration systme, programmation rseau,manipulation de fichiers, etc. Ici on en prsente seulement quelques-uns, savoir ce dont on se servira dans les TP.Le module math Dans Python seulement quelque fonction mathmatique est prdfinie :abs(a) Valeur absolue de amax(suite) Plus grande valeur de la suitemin(suite) Plus petite valeur de la suiteround(a,n) Arrondi a n dcimales prspow(a,n) Exponentiation, renvoi ansum(L) Somme des lments de la suitedivmod(a,b) Renvoi quotient et reste de la division de a par bcmp(a,b) Renvoi1 si a < b,0 si a = b,1 si a > b.Toutes les autres fonctions mathmatiques sont dfinies dans le module math. Comme mentionn prcdemment, ondispose de plusieurs syntaxex pour importer un module :1 >>> import math2 >>> print math.pi3 3.141592653594 >>> print math.sin(math.pi)5 1.22464679915e-166 >>> print math.log(1.0)7 0.0ou1 >>> from math import *2 >>> print pi3 3.141592653594 >>> print sin(pi)5 1.22464679915e-166 >>> print log(1.0)7 0.0Voici la liste des fonctions dfinies dans le module math :1 >>> import math2 >>> dir(math)3 [__doc__, __name__, __package__, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, copysign, cos, cosh, degrees, e, exp, fabs, factorial, floor, fmod, frexp, fsum, hypot, isinf, isnan, ldexp, log, log10, log1p, modf, pi, pow, radians,sin, sinh, sqrt, tan, tanh, trunc]Notons que le module dfinit les deux constantes pi et e.170 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TPLe module matplotlib pour le trac de donnes Le trac de courbes scientifiques peut se faire laide du mo-dule matplotlib. Pour lutiliser, il faut importer le module pylab. La rfrence complte de matplotlib est lisible ladresse : http://matplotlib.sourceforge.net/matplotlib.pylab.html. Il est en particulier recommand de re-garder les screenshots (captures dcrans), qui sont donns avec le code utilis pour les gnrer. Dans ces rappels on neverra que la reprsentation de fonction 1D.ATTENTION. Lorsque lon utilise IDLE, aprs la commande show() ncessaire pour visualiser les graphes, linterprteurpython se bloque (cest un bug de lditeur). Pour pallier ce problme on peut utiliser IDLEX, tlchargeable ladressehttp: // idlex. sourceforge. net , qui amliore IDLE et qui ne pose pas de problmes avec matplotlib.Pour tracer le graphe dune fonction f : [a,b] R, Python a besoin dune grille de points xi o valuer la fonction,ensuite il relie entre eux les points (xi , f (xi )) par des segments (il sagit dune spline linaire comme on verra au prochainechapitre). Plus les points sont nombreux, plus le graphe de la fonction spline est proche du graphe de la fonction f . Pourgnrer les points xi on peut utiliser linstruction linspace(a,b,n) qui construit la liste de n+1 lments[a, a+ ban, a+2 ban, . . . ,b]ou linstruction arange(a,b,h) qui construit la liste de n = E( bah )+1 lments[a, a+h, a+2h, . . . , a+nh]Voici un exemple avec une sinusode :1 from matplotlib.pylab import *2 x = linspace(-5,5,101) # x = [-5,-4.9,-4.8,...,5] with 101 elements3 y = sin(x) # operation is broadcasted to all elements of the array4 plot(x,y)5 show()ou encore1 from matplotlib.pylab import *2 x = arange(-5,5,0.1) # x = [-5,-4.9,-4.8,...,5] with 101 elements3 y = sin(x) # operation is broadcasted to all elements of the array4 plot(x,y)5 show()On obtient une courbe sur laquelle on peut zoomer, modifier les marge et sauvegarder dans diffrents formats (jpg, png,eps. . .). On peut mme tracer plusieurs courbes sur la mme figure. Par exemple, si on veut comparer les graphes de lafonction prcdente en modifiant la grille de dpart, on peut crire1 from matplotlib.pylab import *23 a = linspace(-5,5,5) # a = [-5,-3,-1,1,3,5] with 6 elements4 fa = sin(a)5 b = linspace(-5,5,10) # a = [-5,-4,-3,...,5] with 11 elements6 fb = sin(b)7 c = linspace(-5,5,101) # b = [-5,-4.9,-4.8,...,5] with 101 elements8 fc = sin(c)9 plot(a,fa,b,fb,c,fc)10 show()Le rsultat est affich la figure A.1a (la courbe bleu correspond la grille la plus grossire, la courbe rouge correspond lagrille la plus fine).Pour tracer plusieurs courbes, on peut les mettre les unes la suite des autres en spcifiant la couleur et le type de trait,changer les tiquettes des axes, donner un titre, ajouter une grille, une lgende. . .1 from matplotlib.pylab import *2 x = linspace(-5,5,101) # x = [-5,-4.9,-4.8,...,5] with 101 elements3 y1 = sin(x) # operation is broadcasted to all elements of the array4 y2 = cos(x)5 plot(x,y1,"r-",x,y2,"g.")6 legend([sinus,cosinus])7 xlabel(abscisses)8 ylabel(ordonnees)9 title(Comparaison de sin(x) et cos(x))10 grid(True)11 show() G. Faccanoni 171A. Python : guide de survie pour les TP Jeudi 31 janvier 2013(a) (b) (c)FIGURE A.1.: Exemples pylab- solid line dashed line-. dash-dot line : dotted line. points , pixels circle symbols ^ triangle up symbolsv triangle down symbols < triangle left symbols> triangle right symbols s square symbols+ plus symbols x cross symbolsD diamond symbolsb blue g greenr red c cyanm magenta y yellowk black w whiteTABLE A.1.: Quelques options de pylab"r-" indique que la premire courbe est tracer en rouge avec un trait continu, et "g." que la deuxime est tracer en vertavec des points. Le rsultat est affich la figure A.1b. Voir la documentation de pylab pour connatre les autres options dece trac.On peut dplacer la lgende en spcifiant lune des valeurs suivantes : best, upper right, upper left, lower right,lower left, center right, center left, lower center, upper center, center :1 from matplotlib.pylab import *2 x = arange(-pi,pi,0.05*pi)3 plot(x,sin(x),co,x,cos(x),mD)4 legend([sinus,cosinus],loc=upper left)5 axis([-pi, pi, -1, 1]) # axis([xmin, xmax, ymin, ymax])6 show()Le rsultat est affich la figure A.1c.A.4. Structure conditionnelleSupposons vouloir dfinir la fonction valeur absolue :|x| ={x si x 0,x sinon.On a besoin dune instruction qui opre une disjonction de cas. En Python il sagit de linstruction de choix introduite parle mot-cl if. La syntaxe est la suivante :1 if condition_1:2 instruction_1.13 instruction_1.24 ...5 elif condition_2:6 instruction_2.1172 G. FaccanoniJeudi 31 janvier 2013 A. Python : guide de survie pour les TP7 instruction_2.28 ...9 ...10 else:11 instruction_n.112 instruction_n.213 ...o condition_1, condition_2. . . reprsentent des ensembles dinstructions dont la valeur est True ou False (on lesobtient en gnral en utilisant les oprateurs de comparaison). La premire condition condition_i ayant la valeur Trueentrane lexcution des instructions instruction_i.1, instruction_i.2. . . Si toutes les conditions sont fausses, lesinstructions instruction_n.1, instruction_n.2. . . sont excutes.ATTENTION. Bien noter le rle essentiel de lindentation qui permet de dlimiter chaque bloc dinstructions et la prsencedes deux points aprs la condition du choix et aprs le mot cl else.Voici un exemple pour tablir si un nombre est positif :1 def sign_of(a):2 if a < 0.0:3 sign = negative4 elif a > 0.0:5 sign = positive6 else:7 sign = zero8 return sign910 a = 2.011 print a is + sign_of(a) # Output: a is positive12 a = -2.013 print a is + sign_of(a) # Output: a is negative14 a = 0.015 print a is + sign_of(a) # Output: a is zeroLa fonction valeur absolue peut tre dfinie comme suit :1 def val_abs(x):2 if x>0:3 return x4 else:5 return -x67 val_abs(5) # Output 58 val_abs(-5) # Output 5A.5. BouclesLes structure de rptition se classent en deux catgories :rptition conditionnelle : le bloc dinstructions est rpter autant de fois quune condition est vrifie,rptition inconditionnelle : le bloc dinstructions est rpter un nombre donn de fois.Boucle while : rptition conditionnelle Le constructeur while a la forme gnrale suivante (attention lindentationet aux deux points) :1 while condition:2 instruction_13 instruction_24 ...o condition reprsente des ensembles dinstructions dont la valeur estTrueou False. Tant que la conditioncondition_ia la valeur True, on excute les instructions instruction_i.ATTENTION. Si la condition ne devient jamais fausse, le bloc dinstructions est rpt indfiniment et le programme ne setermine pas. G. Faccanoni 173A. Python : guide de survie pour les TP Jeudi 31 janvier 2013Voici un exemple pour crer la liste[1, 12 ,13 , . . .]:1 nMax = 52 n = 13 a = [] # Create empty list4 while nJeudi 31 janvier 2013 A. Python : guide de survie pour les TPList-comprehensions Les listes dfinies par comprhension permettent de gnrer des listes de manire trs concisesans avoir utiliser des boucles. La syntaxe pour dfinir une liste par comprhension est trs proche de celle utilise enmathmatiques pour dfinir un ensemble :{ f (x) | x E }[ f(x) for x in E ]Voici quelques exemples :1 liste1 = [2, 4, 6, 8, 10]2 [3*x for x in liste] # Output [6, 12, 18, 24, 30]3 [[x,x**3] for x in liste] # Output [[2, 8], [4, 64], [6, 216], [8, 512], [10, 1000]]4 [3*x for x in liste if x>5] # Output [18, 24, 30]5 [3*x for x in liste if x**2>> [b for b in range(2000,2100) if (b%4==0 and b%100!=0) or (b%400==0)]2 [2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064,2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096]On construit la liste des diviseurs dun entier n N :1 >>> n = 1002 >>> [d for d in range(1,n+1) if (n%d==0)]3 [1, 2, 4, 5, 10, 20, 25, 50, 100] G. Faccanoni 175Chasseurs de chimres de la srie De Cape et de Crocs (AYROLES & MASBOU), tome VII, 14, 5