2012_2013_M33_L2

  • Published on
    25-Nov-2015

  • View
    115

  • Download
    0

Transcript

  • Anal

    yse

    num

    riq

    ueM

    33

    USTV

    L22012/2013

    Recueil dexercices corrigset aide-mmoire

    G. FACCA

    NONI

    Dernire

    mise--jo

    ur

    Jeudi 31

    janvier 2

    013

  • Ce 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.fr

    Gloria FACCANONI

    IMATH 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.fr

    2

  • Table des matires

    Notations 5

    Introduction au calcul scientifique 7

    1. Rsolution dquations non linaires 91.1. tape : localisation des zros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. tape : construction dune suite convergente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.2.1. Mthodes de dichotomie (ou bissection), de LAGRANGE (ou Regula falsi) et de la scante . . . . . . . . 101.2.2. Mthodes de point fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2. Interpolation 472.1. Position du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.2. Interpolation de LAGRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.3. Polynme dHERMITE ou polynme osculateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.4. Splines : interpolation par morceaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    2.4.1. Interpolation linaire composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.5. Approximation de drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    3. Quadrature 733.1. Principes gnraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.2. Exemples de formules de quadrature interpolatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    4. quations diffrentielles ordinaires 994.1. Schmas numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2. Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    5. Meilleur approximation au sens des moindres carrs. 1235.1. Fitting par une relation affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.2. Fitting par un polynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    6. Systmes linaires 1316.1. Systmes mal conditionns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.2. Mthode (directe) dlimination de Gauss et factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326.3. Mthodes itratives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    A. Python : guide de survie pour les TP 159A.1. Obtenir Python et son diteur IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

    A.1.1. Utilisation de base dIDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159A.2. Notions de base de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162A.3. Fonctions et Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    A.3.1. Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168A.3.2. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

    A.4. Structure conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172A.5. Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

    3

  • NotationsEnsembles usuels en mathmatiques

    On dsigne gnralement les ensemble les plus usuels par une lettre double barre :

    N lensemble des entiers naturels

    N 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 rels

    R lensemble des rels autres que 0C lensemble des nombres complexes

    IntervallesIngalit Ensemble Reprsentation graphique

    a x b [a,b] a b

    a < x < b ]a,b[ a b

    a x < b [a,b[ a b

    a < x b ]a,b] a b

    x a [a,+[ a

    x > a ]a,+[ a

    x b ],b] b

    x < 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 document

    dfinition

    thorme, corollaire, proposition

    proprit(s)

    astuce

    attention

    remarque

    mthode, algorithme, cas particulier

    exercice de base

    exercice

    exemple

    5

  • Notations Jeudi 31 janvier 2013

    curiosit

    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 si

    ln logarithme de base e

    loga logarithme de base a

    infinisymbole dintgralen

    i=0 ai somme par rapport lindice i , quivaut a0+a1+ +anni=0 ai produit par rapport lindice i , quivaut a0a1 an

    n! n factoriel, quivaut 12 ng f g compos ff , d fd x symboles de drive

    Conventions 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 interactive

    1 >>> 1 + 12 2

    ? les instructions sans chevrons dans une boite grise sont des bouts de code crire dans un fichier

    1 print Coucou!

    6 G. Faccanoni

  • Introduction au calcul scientifiqueOn peut dfinir le CALCUL SCIENTIFIQUE comme la discipline qui permet de reproduire sur un ordinateur un phnomne

    ou un processus dcrit par un modle mathmatique.

    PHNOMNE PHYSIQUE, CO-NOMIQUE, BIOLOGIQUE. . .

    Observation exprimentaleModle conceptuel

    MODLE MATHMATIQUE

    Mise en quations :quations diffrentielles, int-grales, stochastiques. . .

    ANALYSE MATHMATIQUE

    Bien posBien conditionnProprits de la solutionSolutions analytiques

    ANALYSE NUMRIQUE

    Mthodes de discrtisationAnalyse des algorithmes (rapi-dit, prcision, souplesse)Estimation des erreurs

    PROGRAMMATION

    Langage de programmation (C,C++, Fortran, Java, Python, Mat-lab, Scilab, Octave. . .)Structure des donnesImplmentation de lalgorithmeOptimisation

    CALCULS

    POSTPROCESSING

    VisualisationAnalyse des rsultats

    CALCUL SCIENTIFIQUE

    Lordinateur 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 erreurs

    peuvent 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 calculs

    de 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 rflchie

    7

  • Introduction au calcul scientifique Jeudi 31 janvier 2013

    et 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 dep

    ASur ordinateur, laddition de deux entiers peut se faire de faon exacte mais non le calcul dune racine carre. On procde alors par

    approximations 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 : p

    A = x0+0.Cherchons une approximation de 0. On a

    A = (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 que

    A = x20 +2x00.

    On en dduit que

    0 =Ax20

    2x0donc

    x1 = x0+0 =1

    2

    (A

    x0+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 est

    xk+1 =1

    2

    (A

    xk+xk

    ), x0 > 0.

    Lalgorithme du calcul de la racine carre devient donc1. Dmarrer avec une premire approximation x0 > 0 de

    pA.

    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 k

    0 2.0000000000 0.23606797751 2.2500000000 0.01393202252 2.2361111111 0.00004313363 2.2360679779 0.00000000044 2.2360679775 0.0000000000

    On 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 converge

    toujours 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. Faccanoni

  • 1. Rsolution dquations non linaires

    Recherche de la solution de lquation non linaire f (x)= 0 o f est une fonction donne

    Soit 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 ; on

    note 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 forme

    xk+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 les

    thormes 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 .

    9

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    1.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 plusieurs

    mthodes 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 lascante

    Dans 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 est

    ck =ak +bk

    2.

    ? 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 lquation

    f (bk ) f (ak )bk ak

    (cak )+ f (ak )= 0

    qui est

    ck = ak bk ak

    f (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 +bk2

    while bk ak > or | f (xk )| > doif f (ak ) f (xk )< 0 then

    ak+1 akbk+1 xk

    elseak+1 xkbk+1 bk

    end if

    xk+1 ak+1+bk+1

    2k k+1

    end while

    LAGRANGE :

    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 then

    ak+1 akbk+1 xk

    elseak+1 xkbk+1 bk

    end if

    xk+1 ak+1bk+1ak+1

    f (bk+1) f (ak+1)f (ak+1)

    k k+1end while

    10 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    ExempleSoit f (x)=3943x+39x25x3. On cherche a estimer x [1;5] tel que f (x)= 0.

    DICHOTOMIE

    f (x)=39+ (43+ (395x)x)x

    x

    y

    1

    f (1)=1

    5

    f (5)= 2

    3

    f (3)= 1

    2

    f (2)=0.1875 2.5

    f (2.5)= 0.3984375

    I0 = [1;5]I1 = [1;3]I2 = [2;3]

    I3 = [2;2.5]LAGRANGE

    f (x)=39+ (43+ (395x)x)x

    x

    y

    1

    f (1)=1

    5

    f (5)= 2

    2.3

    f (2.3)= 0.197530824 2.11f (2.11)=0.06002

    I0 = [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 vrifie

    m 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 relation

    M = vn

    k=1(1+T )k = v (1+T )

    n 1(1+T )1 = v

    1+TT

    ((1+T )n 1) .

    On en dduit que T est racine de lquation algbrique non linaire f (T )= 0 o

    f (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 )= v

    T 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 11

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    En 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 rcurrente

    x0 donn,

    x1 donn,

    xk+1 = xk xk xk1

    f (xk ) f (xk1)f (xk ),

    Cette mthode a ordre 1+p

    52 .

    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 donne

    x = xk xk xk1

    f (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-dessous

    1 import math2 x = 13 for i in range (1,100):4 x = math.cos(x)5 print x_, i, =, x

    on 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.739085133215

    qui 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. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    f

    y

    xa

    a

    b

    bx0

    x1

    x1

    x2

    x2

    x3

    x3

    x4

    x4

    x5

    x5

    x6

    ([a;b]) [a;b]0(x)< 1convergence

    f

    y

    xa

    a

    b

    bx0

    x1

    x1

    x2

    x2

    x3

    x3

    x4

    x4

    x5

    x5

    x6

    x6

    x7

    ([a;b]) [a;b]1 do

    xk+1 (xk )k k+1

    end 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 puisque

    x = limk

    xk+1 = limk

    (xk )=(

    limk

    xk

    )=(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 13

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    Continuit 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 a

    0 |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 a

    limk

    xk+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 linaires

    En 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 ba

    f (b) f (a) f (xk ) ordre : 1

    Mthode de la Corde 2 : (xk )= xk f (xk )

    f (x0)ordre : 1

    Mthode de Newton : (xk )= xk f (xk )

    f (xk )ordre :

    {2 si x est une racine simple

    1 sinon

    Preuve 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))2

    2 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 h

    est 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 15

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    la 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 obtient

    x = xk f (xk )

    f (xk )ce qui correspond la mthode de NEWTON.

    x

    yf

    y = f (x0)(xx0)+ f (x0)

    y = f (x1)(xx1)+ f (x1)

    xx0x1x2

    Soit 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 donne

    x = xk ba

    f (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 ) par

    f (b) f (a)ba .

    x

    y

    f

    a b

    y = f (b) f (a)ba (xx0)+ f (x0)

    y = f (b) f (a)ba (xx1)+ f (x1)

    xx0

    x1x2

    16 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    Une 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 donne

    x = xk f (xk )

    f (x0)

    Dans cette variante on remplace f (xk ) par f (x0).

    x

    y

    f

    y = f (x0)(xx0)+ f (x0)

    y = f (x0)(xx1)+ f (x1)

    xx0x1x2

    ExempleOn 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 fonction

    f : R+ R

    x 7 1xa

    Selon 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 lquation

    x = 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 fonction

    f : R+Rx 7 xe1/x

    En utilisant la mthode de Newton on trouve la formule itrative

    xk+1 = xk f (xk )

    f (xk )= xk

    xk e1/xk1+ e1/xk

    x2k

    = xk x2kxk e1/xkx2k +e1/xk

    .

    2. Si on pose y = 1/x, alors on a lquivalencex = e1/x y = ey ,

    G. Faccanoni 17

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    donc la solution x de lquation (1.1) est la rciproque du zro de la fonction

    g : R+Ry 7 1 ye y

    En utilisant la mthode de Newton on trouve la formule itrative

    yk+1 = yk g (yk )

    g (yk )= yk

    1 yk e yk(1+ yk )e yk

    = yk +eyk yk

    1+ yket xk = 1/yk .

    3. Lquation (1.1) est encore quivalente chercher le zro de la fonction

    h : R+Rx 7 1x ln(x)

    En utilisant la mthode de Newton on trouve la formule itrative

    xk+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.7632228344

    La 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 test

    savre 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 premierordre

    en+1 = xxn+1 =(x)(xn)=(n)(xxn)=(n)en , n I x,xnI x,xn tant lintervalle dextrmits x et xk . En utilisant lidentit

    en = (xxn+1)+ (xn+1xn)= en+1+ (xn+1xn)=(n)en + (xn+1xn),

    on en dduit que

    en = 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. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    x

    y

    f

    f (xk )

    xk

    ek

    xx

    y

    f

    f (xk )xk

    ek

    x

    FIGURE 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 2013

    TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTdichotomie, lagrange, newton et point_fix sont quatre fonctions (informatiques) qui renvoient la valeur approche

    du 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. Ellesrenvoient

    Mthodes numriques.

    1 #!/usr/bin/python2 #-*- coding: Utf-8 -*-3

    4 import math, sys5

    6 def dichotomie(f,a,b,tol,maxITER):7 fa = f(a)8 if abs(fa)tol)) and (k

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    57 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 (k

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    115 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)118

    119 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)122

    123

    124 # 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. Faccanoni

  • Jeudi 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 fonction

    f (x)= x34x8.95

    dans 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 a

    k 0ak 2bk 3while |bk ak | > 0.01 do

    xk g (ak ,bk )k k+1if (a3k 4ak 8.95)(x3k 4xk 8.95)< 0 then

    ak+1 akbk+1 xk

    elseak+1 xkbk+1 bk

    end ifend while

    avec

    g (ak ,bk )={ ak+bk

    2 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-intervalles

    Ik = [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 23

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    f (x)

    x

    y

    1

    1

    3

    7

    2

    2

    32

    14

    54

    716

    I0I1

    I2I3I4

    (a) Mthode de la dichotomie.

    f (x)

    x

    y

    232

    1712

    (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

    = 12

    xk +1

    xk.

    Voir la figure 1.3b.Donc on a le tableau suivant

    x0 x1 x2 x3

    Dichotomie 2 32 = 1,5 54 = 1,25 118 = 1,375Newton 2 32 = 1,5 1712 = 1,416 1724 + 1217 ' 1,4142156

    On 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 prendre

    m log2ba

    .

    Amliorer dun ordre de grandeur la prcision de lapproximation de la racine signifie avoir

    |xk x| =|x j x|

    10

    donc on doit effectuer k j = log2(10)' 3,3 itrations de dichotomie.

    Exercice 1.3

    1. 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. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    CORRECTION.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 le

    zro de f en remplaant localement f par sa tangente : en partant de lquation de la tangente la courbe (x, f (x))au point xk

    y(x)= f (xk )+ f (x)(xxk )et en faisant comme si xk+1 vrifiait y(xk+1)= 0, on obtient

    xk+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 do

    xk+1 xk f (xk )f (xk )end while

    3. La relation prcdent peut tre mise sous la forme dune itration de point fixe xk+1 = g (xk ) avec

    g (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 fonction

    f (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 p

    2|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 p

    2|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 a

    k 0ak 0bk 2xk akwhile |x2k 2| > 0.0001 do

    xk ak bk+2ak+bkif (a2k 2)(x2k 2)< 0 then

    ak+1 ak

    G. Faccanoni 25

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    bk+1 xkelse

    ak+1 xkbk+1 bk

    end ifk k+1

    end 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 do

    xk+1 xk2 + 1xkk k+1

    end while

    k xk | f (xk )| |xk p

    2|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 i

    est 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)= 3x

    3(8x)+(8x3)(8x)2 et

    2(1)= 1449 : la suite converge de faon oscillante (colonne D) ;

    3. 3(x)= 310 x2+1

    5x+ 1

    5et 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)= exex

    2 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 que

    pour 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 et

    f (IV )2 (x) 6= 0),? pour = 3, f3 admet deux zros distincts, un dans lintervalle ]3,1[ et lautre dans ]1,3[.

    x

    y

    y = 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 27

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    Voici les instructions :

    130 def f(x):131 return math.cosh(x)+math.cos(x)-gamma132

    133 maxITER = 100134

    135 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)147

    148 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(

    N

    V

    )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 p

    aN 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*T

    28 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    162

    163 tol = 1.0e-12164 left = 0.01165 right = 0.06166

    167 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 calcule

    xk+1 = xk +Ax2k

    2, k = 0,1,2, . . .

    1. Montrer que si la suite xk converge, alors sa limite est soitp

    A soit pA.2. On considre le cas o A ]0,4[. Montrer quil existe > 0 tel que, si |x0

    pA| alors la suite xk converge versp

    A.

    3. Vrifier graphiquement que si x0 est proche de p

    A 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`2

    2,

    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+ Ax2

    2.

    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 |x0

    pA| alors la suite xk converge vers

    pA.

    3. On a reprsent dans la figure ci-dessous le graphe de la fonction lorsque A = 1/2. Si on choisit x0 < p

    A alorsla suite diverge vers ; si pA < x0 2+

    pA alors la suite diverge vers .

    y = xy

    x

    pA

    pA

    pA

    pA 2+pAx0

    x1

    x1

    x2

    x2 x3x3

    x4

    x4

    x5

    4. Soit f la fonction dfinie par f (x)= x2 A. La mthode de la corde 2 pour rsoudre f (x)= 0 scrit dans ce cas

    xk+1 = xk f (xk )

    f (x0)= xk

    x2k A2x0

    , k = 0,1,2, . . . .

    G. Faccanoni 29

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    Si on choisit x0 = 1, cette mthode scrit donc

    xk+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 a

    xk+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)+ 2

    3x2, 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 car

    g()= (1)3+(1

    3

    )+2(1)+ 2

    32= (1)(32)+

    (1

    3

    )+ 2

    32=

    3+ 2

    32= (

    32)32

    =.

    2. La mthode de point fixe (1.2) est au moins dordre 2 si g ()= 0. On a

    g ()= 3(1)2+1

    3 4

    33= 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]`k

    pi2

    2. 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 et

    lutiliser pour minorer le nombre ditrations ncessaires pour approcher ` 103 prs.

    30 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    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 ?

    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 `.

    g

    y

    x

    pi

    pix0 x1x2 x0x1x2

    5434

    2.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`| 1

    1C |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 et

    lutiliser 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 choisir

    pour 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 31

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    k 0 1 2 3[ak ,bk ] [0,pi]

    [0, pi2] [

    pi4 ,

    pi2

    ] [ 3pi8 ,

    pi2

    ]`k

    pi2

    pi4

    3pi8

    7pi16

    2. 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 3p

    a 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. Que

    remarque-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+ ;? lim

    x0+g (x)= lim

    x+g (x)=+ ;lim

    x+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 a

    x3

    );

    ? g est croissante sur [ 3p

    a,+[, dcroissante sur [0, 3pa] ;? x = 3pa est un minimum absolu et g ( 3pa)= 3pa,? g (x)= 2a

    x4> 0 : g est convexe sur R+.

    32 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    y = 23 xg (x)

    x

    y

    i (x)

    3p

    a

    3p

    a

    (a) Graphe de g compar au graphe de i (x)= x.

    g (x)

    x

    y

    i (x)

    3p

    a

    3p

    a

    x0 x1x2x3x4

    (b) tude graphique de la convergence de la m-thode de point fixe.

    FIGURE 1.4.: Exercice 1.13

    x 0 3p

    a +

    g (x) +

    g (x)+

    3p

    a

    +

    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 23

    x+ 13

    a

    x2= 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) 3p

    a. Vrifions les hypothsesdu thorme de point fixe qui fournit une condition suffisante de convergence de la suite :

    4.1. pour tout x dans [ 3p

    a,+[ 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 [ 3

    pa,+[ on a

    |g (x)| =23(1 a

    x3

    )< 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 que

    g (x)= 0, g (x)= 2ax4

    6= 0la mthode de point fixe converge lordre 2.

    6. Algorithme de point fixe :

    Require: x0 > 0while |xk+1xk | > 106 do

    xk+1 g (xk )end while

    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 ordre

    ek+1 = |g (x) g (xk )| = |g (zk )ek |

    G. Faccanoni 33

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    avec 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 scrit

    xk+1 = xk f (xk )

    f (xk )= xk

    x3k a3x2k

    = xk 1

    3xk +

    a

    3x2k= 2

    3xk +

    a

    3x2k

    autrement 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 que

    la 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 0

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    g (x)x

    y i (x)

    `

    `

    0 1

    (a) Graphe de g compar au graphe de i (x)= x.

    g (x)x

    y i (x)

    `

    `

    x0 x1x2 x3

    (b) tude graphique de la convergence de la mthode de pointfixe.

    FIGURE 1.5.: Exercice 1.14

    Exercice 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) =p

    exp(x2)2 . Examiner la convergence de cette mthode et en

    prciser 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 a

    0 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,p

    5}.

    2. Soit la fonction g dfinie sur [1;p

    5] 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;p

    5[ et g (p

    5)= 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 x

    2 = 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 car

    g (x)= 10xx2+5

    10x

    (p

    5)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 qui

    implique quelle converge. Comme au premier point on a montr que si elle converge vers ` alors ` {0,p5}, onconclut que xn

    n+p

    5. 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;p

    5]. En effet

    ? g est au moins de classe C 1([1;p

    5])? g ([1;

    p5])= [5/3;p5] [1;p5]

    ? mais 0 g (x)< 1 ssi x [10+5p5;p5] (et on a

    10+5p5> 1).

    G. Faccanoni 37

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    En revanche, on peut utiliser le thorme de point fixe pour prouver la convergence de la suite sur lintervalle [5/3;p

    5]car

    ? g est au moins de classe C 1([5/3;p

    5])? 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 suivante

    xn+1 = g (xn)= xn + f (xn),

    o > 0 et x0 R sont donns.1. Montrer que lim

    x f (x)=+ et limx+ f (x)=.2. En dduire quil existe un unique ` lment de R tel que f (`)= 0.3. Montrer que si 0

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    4.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 point

    prcdant, 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 (`) alors

    xn+1 = g (xn)= xn f (xn)f (`)

    ,

    qui converge car 2< f (`)

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    2. g est de classe C 2(R,R). Puisque 1< f (x)< 2 et 0

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    y = 23 x 49g (x)

    x

    y i (x)

    m

    m

    (a) Graphe de g compar au graphe de i .

    g (x)

    x

    y

    i (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 x

    3+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 while

    6. La mthode de Newton est une mthode de point fixe avec g (x)= x f (x)f (x) . Ici donc elle scrit

    xk+1 = xk f (xk )

    f (xk )= xk

    x3k +4x2k 103x2k +8xk

    = g (xk )

    G. Faccanoni 41

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    autrement 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 ordre

    ek+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+4

    x2(3x+8)2 f (x), alors g(m)= 0 donc on a bien |xk+1xk | ' ek .

    Exercice 1.20

    On se propose de calculer 4

    13 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] par

    g (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 4

    13 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 = 4

    13 . De plus, g

    (4

    13

    )=

    4

    13 .

    ? Enfin, g (x) = 103 3x41

    5x4+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 = 4

    13 , g est

    concave pour x ]

    0; 4

    13

    [, convexe pour x > 4

    13 .

    ? 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) et

    la droite dquation y = x :

    g (x)= x x(9x4+5)

    3(5x4+1) = x 9x4+5= 3(5x4+1) x4 = 1

    3 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 que

    xk+1xk

    = 9x4k +5

    3(5x4k +1)> 1 xk < 4

    1

    3

    42 G. Faccanoni

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    y = 35 x

    g (x)

    x

    y

    i (x)

    14

    13

    4

    13

    (a) Graphe de g compar au graphe de i .

    g (x)

    x

    y

    i (x)

    14

    13

    4

    13

    x0 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; 4

    13

    [xk+1 = g (xk )

    est monotone croissante et majore par 4

    13 : elle est donc convergente vers ` 4

    13 . Comme ` = g (`) ssi ` =

    4

    13 , on conclut quelle converge vers

    4

    13 . De mme, la suite rcurrente{

    x0 ]

    4

    13 ;0[

    xk+1 = g (xk )

    est monotone dcroissante et minor par 4

    13 : elle est donc convergente vers ` 4

    13 . Comme ` = g (`) ssi

    `= 4

    13 , on conclut quelle converge vers

    4

    13 .

    Par consquent, quelque soit le point initiale, la mthode de point fixe donne converge vers 4

    13 point fixe de

    g (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+

    16

    15]0;1[.

    2.4. Si on pose x = 4

    13 alors g (x) = x, g (x) = 0, g (x) = 0 et g (x) = 320x2 25x

    822x4+1(5x4+1)4 = 15

    p3

    2 : 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 while

    3. 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 43

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    CORRECTION. On modifie les fonctions donnes la page 20 pour que les mthodes sarrtent lorsque le nombre ditra-tions est gal maxITER :

    1 import math, sys2

    3 def dichotomie(f,a,b,tol,maxITER):4 fa = f(a)5 if abs(fa)tol) and (ktol) and (k

  • Jeudi 31 janvier 2013 1. Rsolution dquations non linaires

    63 k += 164 return x

    Ensuite 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.*x69

    70 exact = 0.514933264661129471

    72 nITER = 1073 tol = sys.float_info.epsilon74 a = 0.75 b = 1.576 x_init = 0.7577

    78

    79 XXX = []80 Dic = []81 Lag = []82 New = []83

    84 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 tableau

    maxITER 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.00000000000000000

    On 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 45

  • 1. Rsolution dquations non linaires Jeudi 31 janvier 2013

    On 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. Faccanoni

  • 2. Interpolation

    tant 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 alors

    que 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 que

    Rm[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--dire

    Pm(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 1

    1 x0 . . . xm01 x1 . . . xm1...

    ......

    1 xm . . . xmm

    a0a1...

    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 matrice

    1 x0 ... x

    m0

    1 x1 ... xm1

    ......

    ...1 xm ... xmm

    sappelle matrice de VANDERMONDE.

    47

  • 2. Interpolation Jeudi 31 janvier 2013

    2.2. Interpolation de LAGRANGEQuand on crit le polynme Pm dans la base canonique de Rm[x], le problme est de dterminer les (m+1) coefficients

    a0, 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 scrit

    Pm(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 sinon

    pour 0 i , j m,

    ce qui donne

    Li (x)=n

    j=0j 6=i

    xx 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 lquationm

    i=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 forme

    Pm(x)=m

    i=0yi Li (x) Rm[x] o Li (x)=

    mj=0j 6=i

    xx 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 scrit

    P (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 a

    P (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. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Soit 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 que

    Pm(xi )= f (xi ) pour 0 i m. (2.3)La solution de ce problme est donc donne par

    Pm(x)=m

    i=0f (xi )Li (x) Rm[x] o Li (x)=

    mj=0j 6=i

    xx jxi x j

    et 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 a

    P (x)= f (x0)(xx1)(xx2)

    (x0x1)(x0x2)+ f (x1)

    (xx0)(xx2)(x1x0)(x1x2)

    + f (x2)(xx0)(xx1)

    (x2x0)(x2x1)= 1

    e

    x(x1)2

    + (x+1)(x1)1 +e(x+1)x

    2=(

    1

    2e1 e

    2

    )x2+

    (e

    2 1

    2e

    )x+1.

    La figure ci-dessous montre le graphe de la fonction f et de son interpolant aux points 1, 0, 1.

    x

    y

    1 0 1

    1e

    1

    e

    fP2

    Proposition 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 par

    En(x) f (x)Pn(x)= f(n+1)()

    (n+1)! n+1(x)

    o I et n+1(x)n

    i=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 + puisque

    limn+

    hn+1

    4(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 49

  • 2. Interpolation Jeudi 31 janvier 2013

    Exemple RUNGECe phnomne est bien illustr par la fonction de RUNGE : soit la fonction f : [5,5] R dfinie par f (x) = 1

    1+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 quantit

    maxx[5,5]| f (n+1)(x)| tend plus vite vers linfini que hn+1

    4(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+b

    2 ba

    2cos(pi

    ni)

    , pour i = 0, . . . ,n

    Pour 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 *2

    3 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 p13

    14 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)7

    8 # 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))17

    18 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)]3

    4 x1 = Tchebychev(-5,5,3)5 x2 = Tchebychev(-5,5,5)

    50 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    4 2 0 2 4

    0.4

    0.2

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    fp_3p_5p_10

    (a)

    4 2 0 2 4

    0.4

    0.2

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    fp_3p_5p_10

    (b)

    FIGURE 2.1.: Interpolation de LAGRANGE, exemple de RUNGE

    6 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]

    10

    11 # 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))20

    21 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 la

    drive 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 51

  • 2. Interpolation Jeudi 31 janvier 2013

    polynme2n+1 P2n+1 tel que2n+1(xi )= yi et2n+1(xi )= y i , pour i = 0, . . .n quon peut crire sous la forme

    Q(x)=n

    i=0yi Ai (x)+ y i Bi (x) P2n+1 o

    Li (x) =n

    j=0j 6=i

    xx jxix j ,

    ci =n

    j=0j 6=i

    1xix j ,

    Ai (x) = (12(xxi )ci )(Li (x))2,Bi (x) = (xxi )(Li (x))2,

    quon peut rcrire comme

    Q(x)=n

    i=0(yi Di (x)+ y i (xxi ))(Li (x))2 o

    Li (x) =n

    j=0j 6=i

    xx jxix j ,

    ci =n

    j=0j 6=i

    1xix j ,

    Di (x) = 12(xxi )ci .

    Cette relation est appele formule dinterpolation de HERMITE.

    ExemplePour n = 2 le polynme de Hermite scrit

    Q(x)= y0(12(xx0)

    (1

    x0x1+ 1

    x0x2

    ))((xx1)(xx2)

    (x0x1)(x0x2))2+ y 0(xx0)

    ((xx1)(xx2)

    (x0x1)(x0x2))2

    + y1(12(xx1)

    (1

    x1x0+ 1

    x1x2

    ))((xx0)(xx2)

    (x1x0)(x1x2))2+ y 1(xx1)

    ((xx0)(xx2)

    (x1x0)(x1x2))2

    + y2(12(xx2)

    (1

    x2x0+ 1

    x2x1

    ))((xx0)(xx1)

    (x2x0)(x2x1))2+ y 2(xx2)

    ((xx0)(xx1)

    (x2x0)(x2x1))2

    ,

    quon peut rcrire comme

    Q(x)=(

    y0

    (12(xx0)

    (1

    x0x1+ 1

    x0x2

    ))+ y 0(xx0)

    )((xx1)(xx2)

    (x0x1)(x0x2))2

    +(

    y1

    (12(xx1)

    (1

    x1x0+ 1

    x1x2

    ))+ y 1(xx1)

    )((xx0)(xx2)

    (x1x0)(x1x2))2

    +(

    y2

    (12(xx2)

    (1

    x2x0+ 1

    x2x1

    ))+ 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 + 2quations

    a0+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 n

    i.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)1

    52 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Exemple RUNGEOn veut voir si avec linterpolation dHERMITE on arrive mieux approcher la fonction de RUNGE. Soit la fonction f : [5,5] R

    dfinie par f (x)= 11+x2 . La figure ci-dessous montre les polynmes interpolants de degrs 3, 5 et 10 pour une distribution quirepartie

    des nuds.

    4 2 0 2 41.0

    0.5

    0.0

    0.5

    1.0

    fq_3q_5q_10

    Cette figure a t obtenue par les instructions :

    1 from matplotlib.pylab import *2

    3 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 p15

    16 def f(x):17 return 1./(1.+x**2)18

    19 def df(x):20 return -2.*x/(1.+x**2)**221

    22 # 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)32

    33 # 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))42

    43 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 53

  • 2. Interpolation Jeudi 31 janvier 2013

    Mme avec linterpolation dHERMITE on voit que lerreur tend vers linfini quand n tend vers linfini pour une distribution uniforme

    des nuds.

    Algorithmes

    LAGRANGE :Require: t , n,

    {(xi , yi )

    }ni=0

    p 0for i = 0 to n do

    Li 1for j = 0 to n do

    if j 6= i thenLi

    t x jxi x j

    Liend if

    end forp p+ yi Li

    end forreturn p

    HERMITE :

    Require: t , n,{

    (xi , yi , y i )}n

    i=0p 0for i = 0 to n do

    Li 1for j = 0 to n do

    if j 6= i thenLi

    t x jxi x j

    Li

    ci 1xi x j

    + ciend if

    end forp p+ (yi (12(t xi ) ci )+ y i (t xi ))L2i

    end forreturn p

    2.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 une

    fonction 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. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Il 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] par

    maxx[a;b]

    | f (x)`(x)| (ba)2

    8max

    x[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 que

    f (xi )= limh0

    f (xi +h) f (xi )h

    = limh0

    f (xi ) f (xi h)h

    = limh0

    f (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 calculer

    f (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 .

    x

    y

    f (x)

    xi

    f (xi )

    xi +h

    f (xi +h)

    xi h

    f (xi h)h h

    Si f est de classe C 3, en crivant le dveloppement de Taylor de f en x autour du point xi

    f (xi h)= f (xi )h f (xi )+h2 f (xi )+O(h3),

    on obtient

    f (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 55

  • 2. Interpolation Jeudi 31 janvier 2013

    ExempleOn 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 *2

    3 def DFgauche(f,x,h):4 return (f(x+h)-f(x))/h5

    6 def DFdroite(f,x,h):7 return (f(x)-f(x-h))/h8

    9 def DFcentree(f,x,h):10 return (f(x+0.5*h)-f(x-0.5*h))/h11

    12 # TEST13 def f(x):14 return sin(x)15

    16 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.000000000000000

    10 1e-10 1.000000000000000 1.000000000000000 1.00000000000000011 1e-11 1.000000000000000 1.000000000000000 1.00000000000000012 1e-12 1.000000000000000 1.000000000000000 1.000000000000000

    Dfinition 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 cette

    fonction possde un minimum absolu sur R+ atteint en h = 2

    | f (x)|max | f (x)| . Pour une fonction suffisamment rgulire, il

    est donc judicieux de choisir une valeur de h qui soit de lordre dep, cest--dire de lordre de 108.

    56 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    ExemplePar exemple, en utilisant le code de lexemple prcdent pour calculer la drive premire de la fonction

    p1+x en 0, on obtient

    1 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.500000041370185

    10 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.499600361081320

    Cette 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 par

    f (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 les

    reprsenter 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 le

    choix 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 57

  • 2. Interpolation Jeudi 31 janvier 2013

    4. 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. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTVoici les function python des mthodes illustres dans ce chapitre : t est le point o on veut valuer le polynme

    dinterpolation, 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 p11

    12 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 p

    et voici un exemple dutilisation de ces fonctions :

    Cas test.

    24 from matplotlib.pylab import *25

    26 # INPUT27 x = [1,2,3,4,5]28 y = [0,1,0,1,0]29 dy = [-1,1,0,-1,0]30

    31 # 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)35

    36 # 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 59

  • 2. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .Ici n = 3 donc on a

    P (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)

    2

    x(x1)(x3)+ x(x1)(x2)2

    =13

    x3+2x2 83

    x+2.

    P (x)

    x

    y

    0 1

    1

    2

    2

    3

    3

    Sinon, 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 linaire

    a0+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 = 3

    i.e.

    1 0 0 01 1 1 11 2 4 81 3 9 27

    a0a1a2a3

    =

    2123

    1 0 0 0 21 1 1 1 11 2 4 8 21 3 9 27 3

    L2L2L1L3L3L1L4L4L1

    1 0 0 0 20 1 1 1 10 2 4 8 00 3 9 27 1

    L3L32L2L4L43L2

    1 0 0 0 20 1 1 1 10 0 2 6 20 0 6 24 4

    L4L43L3

    1 0 0 0 20 1 1 1 10 0 2 6 20 0 0 6 2

    donc 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)

    0

    1

    1

    3

    x

    y

    60 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Exercice 2.3

    1. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .1. Ici n = 3 donc on a

    P (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=

    =13

    x3+x2+ 13

    x+1.

    2. Par construction

    Q(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 que

    Q(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 a

    Q(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.

    Ainsi

    Q(x)P (x)= y0 (xx1)(xx2)(x0x1)(x0x2)

    [1 xx3

    x0x3

    ]+ 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 61

  • 2. Interpolation Jeudi 31 janvier 2013

    et = 13 . Sinon directement

    Q(x)P (x)= x2+1+ 13

    x3x2+ 13

    x1= 13

    x3+ 13

    x = (x+1)x(x1)3

    =x(x+1)(x1)

    avec = 13 .

    P (x)

    Q(x)

    x

    y

    1

    2x0

    0

    x1

    1

    2x2

    2

    3x3

    Exercice 2.4

    1. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .Ici n = 2 donc on a

    P (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)

    x

    y

    1

    e

    1

    1

    2.

    62 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Il suffit de changer les coefficients yi dans lexpressionprcdente :

    Q(x)=x(x1)2

    (x+1)x2

    =x2.Q(x)

    x

    y

    1 0 1

    3. 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.5

    1. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .1. Ici n = 3 donc on a

    P (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=

    =16

    x3+ 12

    x2+ 23

    x+1.

    2. Par construction

    Q(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 que

    Q(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 a

    Q(x)= y0 (xx1)(xx2)(x0x1)(x0x2)

    + y1 (xx0)(xx2)(x1x0)(x1x2)

    + y2 (xx0)(xx1)(x2x0)(x2x1)

    G. Faccanoni 63

  • 2. Interpolation Jeudi 31 janvier 2013

    = x(x1)2

    (x+1)(x1)+ (x+1)x

    = 12

    x2+ 12

    x+1.

    Ainsi

    Q(x)P (x)= y0 (xx1)(xx2)(x0x1)(x0x2)

    [1 xx3

    x0x3

    ]+ 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)6

    et = 16 . Sinon directement

    Q(x)P (x)= 12

    x2+ 12

    x+1+ 16

    x3 12

    x2 23

    x1= 16

    x3 16

    x = 16

    x(x21)=x(x+1)(x1)

    avec = 16 .

    P (x)

    Q(x)

    x

    y

    1

    1x0

    0

    x1

    1

    2x2

    2

    3x3

    Exercice 2.6

    1. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .

    64 G. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Ici n = 2 donc on a

    P (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)x

    2=

    = 2

    x(x1)(x+1)(x1)+ 2

    x(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+a1x

    qui 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 vrifiant

    p(1)= f (1), p (1)= f (1), p(1)= f (1), p (1)= f (1).

    G. Faccanoni 65

  • 2. Interpolation Jeudi 31 janvier 2013

    crire 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 scrit

    p(x)=n

    i=0

    [

    yi (12(xxi )ci )+ y i (xxi )] n

    j=0j 6=i

    (xx j )2(xi x j )2

    o ci =n

    j=0j 6=i

    1

    xi x j.

    Pour n = 1 on a alors

    p(x)= y0(12(xx0)

    (1

    x0x1

    ))((xx1)(x0x1)

    )2+ y 0(xx0)

    ((xx1)(x0x1)

    )2+ y1

    (12(xx1)

    (1

    x1x0

    ))((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) donc

    p(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)4

    x3.

    Le polynme interpolateur dHermite est donc le polynme

    p(x)=+x+x2+x3

    o

    = 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-nme

    p(x)=+x+x2+x3

    tel 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)

    L2L2L1

    1 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 L3

    1 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+L3

    1 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. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    ainsi

    = 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.11

    1. 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx 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 scrit

    Q(x)=n

    i=0yi Ai (x)+ y i Bi (x) RN [x] o

    Li (x)=n

    j=0j 6=i

    xx jxix j ,

    ci =n

    j=0j 6=i

    1xix 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+1

    3

    )2= (x2)

    2(x+1) (x2)(x+1)29

    = 3(x2)(x+1)9

    = x2+x+2

    3.

    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 linaire

    a0 a1 +a2 a3x3 = 0a0+2a1+4a2 +8a3x3 = 0

    a12a2 +3a3x3 = 1a1+4a2+12a3x3=1

    G. Faccanoni 67

  • 2. Interpolation Jeudi 31 janvier 2013

    quon peut rcrire sous la formeAa= b avec

    A=

    1 1 1 11 2 4 80 1 2 30 1 4 12

    , a=

    a0a1a2a3

    et b=

    0011

    On 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

    L2L2L1

    1 1 1 1 00 3 2 9 00 1 2 3 10 1 4 12 1

    L3L3L2/3L4L4L3/3

    1 1 1 1 00 3 2 9 00 0 3 0 10 0 3 9 1

    L4L4+L3

    1 1 1 1 00 3 2 9 00 0 3 0 10 0 0 9 0

    et finalement on obtient

    a3 = 0, a2 =13

    , a1 = 13

    , a0 = 23

    ,

    do Q(x)= x2+x+2

    3.

    P (x)

    ra(x)

    Q(x)

    y = x+1

    y =x+2

    x

    y

    1 0 1 2

    Exercice 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,4

    Utiliser 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 scrit

    pn(x)=n

    i=0

    yi nj=0j 6=i

    xx jxi x j

    .Ici n = 3 et si on choisit de poser x0 = 0 pour lanne 1975, x1 = 5 pour lanne 1980 etc., on a

    P (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)750

    On a alors que

    68 G. Faccanoni

  • Jeudi 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)

    x

    y

    1975

    72,8

    1980

    74,2

    1985

    75,2

    1990

    76,4

    1977

    73,45

    1983

    74,81

    1988

    75,86

    Exercice 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) tel

    quef (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 interpoler

    i xi yi

    0 0 11 12

    pe2

    2 1 e2

    Le polynme dinterpolation de Lagrange de degr n sur lensemble des n+1 points {(yi , xi )}ni=0 scrit

    pn(y)=n

    i=0

    xi nj=0j 6=i

    y y jyi y j

    .Ici n = 2 donc on a

    p(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)(p

    e2+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 e

    xk2exk = xk 1+ 2exk ,

    G. Faccanoni 69

  • 2. Interpolation Jeudi 31 janvier 2013

    on obtient ainsi la suitek xk

    0 01 12 2e 0.73575888253 2ee 2e 2e 0.6940422999

    Remarque : 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 donne

    P (t )=3

    i=0

    f (1+ i ) 3j=0j 6=i

    t (1+ j )(1+ i ) (1+ j )

    = 3i=0

    f (1+ i ) 3j=0j 6=i

    t +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 do

    L 1for j = 0 to 3 do

    if j 6= i thenL t x j

    xi x jL

    end ifend fory y + f (xi )L

    end forreturn y

    2. 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. Faccanoni

  • Jeudi 31 janvier 2013 2. Interpolation

    Exercice 2.15

    1. 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+7

    fp

    4

    1

    2

    2

    1

    4

    y

    x

    2. 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] [ 49

    16 ,258

    ]`k 3

    72

    134

    258

    4916

    9932

    bk 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)= 3

    4x(x37x2+14x8).

    Comme (x)= 4x 7+ 72 x 12 x2, on obtient x = 4p

    6x.

    G. Faccanoni 71

  • 3. Quadrature

    Calculer b

    a f (x) dx o f est une fonction donne

    Dans 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 gnraux

    Soit 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 a

    In( f )= b

    afn(x)dx, n 0.

    Si f est de classe C 0 sur [a;b], lerreur de quadrature En( f )= |In( f ) I ( f )| satisfait

    En( f ) b

    a| 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 x

    i Rn[x], alors

    I ( f ) In( f )= b

    afn(x)dx =

    ba

    (n

    i=0i x

    i

    )dx =

    ni=0

    i

    ( ba

    xi dx

    )=

    ni=0

    i

    i +1[

    xi+1]b

    a=

    ni=0

    bi+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 dduit

    In( f )=n

    i=0

    (f (xi )

    ba

    Li (x)dx

    )o Li (x)=

    nj=0j 6=i

    xx jxi x j

    .

    Il sagit dun cas particulier de la formule de quadrature suivante

    In( f )=n

    i=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].

    73

  • 3. Quadrature Jeudi 31 janvier 2013

    AstuceSi 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 =r

    k=0(k

    ( ba x

    k dx))=rk=0 (k I (xk )). Pour vrifier quune formule de quadrature In a degr dexactitude r il suffit alors

    de 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. Puisque

    I ( f )= b

    af (x)dx =

    m1j=0

    y j+1y j

    f (x)dx,

    une formule de quadrature interpolatoire composite est obtenue en remplaant I ( f ) par

    In,m( f )=m1j=0

    nk=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 d

    cg (y)dy =

    ba

    f (g (x))g (x)dx.

    Si g (x) est une constante, i.e. si g est une transformation affine g (x)=mx+q , alors dc

    g (y)dy =m b

    af (mx+q)dx.

    Pour dterminer cette transformation affine, on doit rsoudre le systme linaire{c =ma+q,d =mb+q.

    On obtient

    m = d cba , q =

    cbadba .

    Par consquent y = d cba x+

    cbadba do d

    cf (y)dy = d c

    ba b

    af

    (d cba x+

    cbadba

    )dx.

    74 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    ExempleTransformer lintervalle [0;1] dans lintervalle [xi ; xi+1] par un changement de variable affine.On a y = (xi+1xi )x+xi et xi+1

    xif (y)dy = (xi+1xi )

    10

    f ((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+1

    xif (y)dy = xi+1xi

    2

    11

    f(xi + (1+x)

    xi+1xi2

    )dx.

    3.2. Exemples de formules de quadrature interpolatoires

    Dfinition 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 donne

    I0( f )= (ba) f (a).

    Si f C 1([a;b]) alors lerreur de quadrature est

    E0( f )= h2

    2| 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 gauche

    I0,m( f )=Hm1k=0

    f (xk )=Hm1k=0

    f (a+kH).

    Si f C 1([a;b]) alors lerreur de quadrature est

    E0,m( f )= ba2

    H | 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 donne

    I0( f )= (ba) f (b).

    Si f C 1([a;b]) alors lerreur de quadrature est

    E0( f )= h2

    2| f ()|, h = ba, ]a;b[.

    Le degr dexactitude de la formule du rectangle droite est 0.

    G. Faccanoni 75

  • 3. Quadrature Jeudi 31 janvier 2013

    Remarque 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 droite

    I0,m( f )=Hm1k=0

    f (xk )=Hm1k=0

    f (a+ (k+1)H).

    Si f C 1([a;b]) alors lerreur de quadrature est

    E0,m( f )= ba2

    H | 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 donne

    I0( f )= (ba) f(

    a+b2

    ).

    Si f C 2([a;b]) alors lerreur de quadrature est

    E0( f )= h3

    3| f ()|, h = ba

    2, ]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 pointmilieu

    Io,m( f )=Hm1k=0

    f

    (a+ 2k+1

    2H

    ).

    Si f C 2([a;b]) alors lerreur de quadrature est

    E0,m( f )= ba24

    H 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 donne

    I1( f )= ba2

    (f (a)+ f (b)) .

    Si f C 2([a;b]) alors lerreur de quadrature est

    E1( f )= h3

    12| 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 obtient

    I1,m( f )= H2

    m1k=0

    (f (xk )+ f (xk+1)

    )=H (12

    f (a)+m1k=1

    f (a+kH)+ 12

    f (b)

    ).

    76 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Si f C 2([a;b]) alors lerreur de quadrature est

    E0,m( f )= ba12

    H 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+b

    2

    ))(polynme de Lagrange de degr 2), ce qui donne

    I2( f )= ba6

    (f (a)+4 f

    (a+b

    2

    )+ f (b)

    ).

    Si f C 4([a;b]) alors lerreur de quadrature est

    E2( f )= h5

    90| f (4)()|, h = ba

    2, ]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 obtient

    I2,m( f )= H3

    (f (a)+2

    m1r=1

    f (x2r )+4s1s=0

    f (x2s+1)+ f (b))= H

    3

    (f (a)+2

    m1r=1

    f (a+ r H)+4m1s=0

    f

    (a+ 2s+1

    2H

    )+ f (b)

    ).

    Si f C 4([a;b]) alors lerreur de quadrature est

    E2,m( f )= ba180

    (H

    4

    )4| f (4)()|, ]a;b[.

    G. Faccanoni 77

  • 3. Quadrature Jeudi 31 janvier 2013

    a 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 b

    a+b2

    x

    (e) Formule du point milieu.

    x0 = a x1 x2 x3 x4 = b

    x0+x12

    x1+x22

    x2+x32

    x3+x42

    x

    (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+b2

    x

    (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. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Algorithmes

    MTHODE DU RECTANGLE GAUCHERequire: f , a, b > a, n > 0

    h bans 0for i = 0 to n1 do

    s s+ f (a+ i h)end forreturn I hs

    MTHODE DU RECTANGLE DROITE

    Require: f , a, b > a, n > 0h bans 0for i = 0 to n1 do

    s s+ f (a+ (i +1)h)end forreturn I hs

    MTHODE DU POINT MILIEU

    Require: f , a, b > a, n > 0h bans 0for i = 0 to n1 do

    s s+ f (a+ (i + 12 )h)end forreturn I hs

    MTHODE DES TRAPZES

    Require: f , a, b > a, n > 0h bans f (a)+ f (b)2for i = 1 to n1 do

    s s+ f (a+ i h)end forreturn I hs

    MTHODE DE SIMPSON

    Require: f , a, b > a, n > 0h ba2ns1 0s2 f (a+h)for i = 1 to n1 do

    s1 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 79

  • 3. Quadrature Jeudi 31 janvier 2013

    TTTTTTTTTTTTT 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 -*-3

    4 import math, sys5

    6 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*s12

    13 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*s19

    20 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*s26

    27 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*s33

    34 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 mthodes

    42 # CHOIX DU CAS TEST43 exemple = 144

    45 # 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. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    55 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)73

    74

    75 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)79

    80 # 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 81

  • 3. Quadrature Jeudi 31 janvier 2013

    .............. Exercices .............Exercice 3.1Estimer

    5/20 f (x) dx partir des donnes

    x 0 1/2 1 3/2 2 5/2f (x) 3/2 2 2 1.6364 1.2500 0.9565

    en 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 b

    af (t )d t ' h

    (1

    2f (a)+

    m1i=1

    f (a+ i h)+ 12

    f (b)

    )avec h = ba

    m.

    Ici on a a = 0, b = 5/2, h = 1/2 donc 5/20

    f (x) dx ' 12

    (3

    4+2+2+1.6364+1.2500+ 0.9565

    2

    )= 4.057325

    Exercice 3.2Estimer

    pi0 sin(x) dx en utilisant la mthode des trapzes composite avec 8 et puis 16 sous-intervalles en prenant en

    compte lerreur.

    CORRECTION. La mthode des trapzes composite m+1 points pour calculer lintgrale dune fonction f sur lintervalle[a,b] scrit b

    af (t )d t ' h

    (1

    2f (a)+

    m1i=1

    f (a+ i h)+ 12

    f (b)

    )avec h = ba

    m

    et lerreur est donn par

    E =ba12

    h2 f ()

    avec a < < b.Ici on a a = 0, b =pi. Avec 8 sous-intervalles on a h =pi/8 donc pi

    0sin(x) dx ' pi

    8

    (sin(0)

    2+

    7i=1

    sin(ipi/8)+ sin(pi)2

    ) 1.97423

    et lerreur est

    E = pi3

    768sin()

    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 = pi3

    768sin(0)= 0 Emax = pi

    3

    768sin(pi/2)= pi

    3

    768' 0.04037

    ainsi

    (1.974230) pi

    0sin(x) dx (1.97423+0.04037)= 2.01460

    La 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 pi0

    sin(x) dx ' 1.974232

    + pi16

    7j=0

    sin((1+2 j )pi/16) 1.99358

    et le limites de lerreur deviennent (observons que E est divis par 4 lorsque h est divis par 2) :

    Emin = 0 Emax ' 0.040374

    = 0.01009

    ainsi

    1.99358 pi

    0sin(x) dx (1.99358+0.01009)= 2.00367.

    82 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Exercice 3.3On considre lintgrale

    I = 2

    1

    1

    xdx.

    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 quelque

    soit 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=2

    x=1 = ln(2).2. La mthode des trapzes composite m + 1 points pour calculer lintgrale dune fonction f sur lintervalle [a,b]

    scrit ba

    f (t )d t ' h(

    1

    2f (a)+

    m1i=1

    f (a+ i h)+ 12

    f (b)

    )avec h = ba

    m.

    Ici on a f (x)= 1x , a = 1, b = 2, m = 3 do h = 13 et on obtient

    I ' 13

    (1

    2f (1)+ f (1+1/3)+ f (1+2/3)+ 1

    2f (2)

    )= 1

    3

    (1

    2+ 3

    4+ 3

    5+ 1

    4

    )= 21

    30= 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 20

    0.5

    1

    0.5 1 1.5 20

    0.5

    1

    Cela 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)4

    12m2sup]a;b[

    | f ()|.

    Donc ici on a f (x)= 1/x, f (x)=1/x2 et f (x)= 2/x3, ainsi

    |E | 112m2

    max]1;2[

    2

    3= 1

    6m2.

    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 lintgrale

    I = 2

    1ln(x)dx.

    1. valuer numriquement cette intgrale par la mthode des trapzes composite avec m = 4 sous-intervalles et

    G. Faccanoni 83

  • 3. Quadrature Jeudi 31 janvier 2013

    comparer 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 b

    af (t )d t ' h

    (1

    2f (a)+

    m1i=1

    f (a+ i h)+ 12

    f (b)

    )avec h = ba

    m.

    Ici on a f (x)= ln(x), a = 1, b = 2, m = 4 do h = 14 et on obtient

    I ' 14

    (1

    2f (1)+ f

    (5

    4

    )+ f(

    3

    2

    )+ f(

    7

    4

    )+ 1

    2f (2)

    )= 1

    4

    (ln

    (5

    4

    )+ ln(

    3

    2

    )+ ln(

    7

    4

    )+ 1

    2ln(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 :

    x

    y

    0.5 1 1.5 20

    0.5

    1

    x

    y

    0.5 1 1.5 20

    0.5

    1

    2. Lerreur est majore par

    |Em | (ba)12

    h2 sup]a;b[

    | f ()| = (ba)3

    12m2sup]a;b[

    | f ()|.

    On a f (x)= ln(x), f (x)= 1/x et f (x)=1/x2, ainsi

    |Em | 112m2

    max]1;2[

    1

    2= 1

    12m2.

    Pour que |Em | < 102 il suffit que 112m2 < 102, i.e. m > 10/p

    12 2.886. partir de 3 sous-intervalles, lerreur dequadrature est infrieure 102.

    Exercice 3.5 Intgrationtant donne lgalit

    pi= 4( +

    0ex

    2dx

    )2= 4( 10

    0ex

    2dx+

    )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 b

    af (t )d t ' h

    (1

    2f (a)+

    m1i=1

    f (a+ i h)+ 12

    f (b)

    )avec h = ba

    m.

    Ici on a f (x)= ex2 , a = 0, b = 10, m = 10 do h = 1 et on obtient

    I ' 12+

    10i=1

    ei2 + 1

    2e100= 1

    2+ 1

    e+ 1

    e4+ 1

    e9+ 1

    e16+ 1

    e25+ 1

    e36+ 1

    e49+ 1

    e64+ 1

    e81+ 1

    2e100 3.1422.

    84 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Exercice 3.6Soit f une fonction C(R,R).

    1. On considre lapproximation 11

    f (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+1

    xif (x)dx.

    En tirer une formule de quadrature composite pour lintgrale b

    a f (x)dx.

    3. crire lalgorithme pour approcher b

    a f (x)dx.

    CORRECTION.

    1. On a

    k pk (x)= xk 11 pk (x)dx

    23 (2pk (1/2)pk (0)+2pk (1/2)) Degr dexactitude

    0 1 2 2 au moins 0

    1 x 0 0 au moins 1

    2 x2 2/3 2/3 au moins 2

    3 x3 0 0 au moins 3

    4 x4 2/5 1/6 3

    La formule est donc exacte de degr 3.

    2. Soit x =mt +q , alors xi+1xi

    f (x)dx =m 11

    f (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+1

    xif (x)dx = xi+1xi

    2

    11

    f(xi + (t +1) xi+1xi

    2

    )dt xi+1xi

    3

    [2 f

    (xi + xi+1+xi2

    2

    ) f(xi+1+xi

    2

    )+2 f

    ( xi+1+xi2 +xi+1

    2

    )].

    Soit h = xi+1xi = ban . La formule prcdente se rcrit xi+1xi

    f (x)dx h3

    [2 f

    (xi + h

    4

    ) f(

    xi + h2

    )+2 f

    (xi + 3h

    4

    )].

    et la formule de quadrature composite dduite de cette approximation est ba

    f (x)dx =n1i=0

    xi+1xi

    f (x)dx h3

    n1i=0

    [2 f

    (xi + h

    4

    ) f(

    xi + h2

    )+2 f

    (xi + 3h

    4

    )].

    3. Algorithme dapproximation de b

    a f (x)dx

    Require: f , a, b > a, n > 0h bans 0for i = 0 to n1 do

    x a+ i hs s+2 f (x+ h4 ) f (x+ h2 )+2 f (x+ 3h4 )

    end forreturn I h3 s

    G. Faccanoni 85

  • 3. Quadrature Jeudi 31 janvier 2013

    Exercice 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 b

    af (x)dx. (3.1)

    On propose dans un premier temps (question 1 4) de construire la formule de quadrature deux points suivantes : 11

    g (x)dx g ()+ g (), (3.2)

    o 0 a, n > 0h ban1 a+

    (1

    13

    )h

    2 a+(1+

    13

    )h

    for i = 0 to n1 dos s+ f (1+ i h)+ f (2+ i h)

    end forreturn I h2 s

    86 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Exercice 3.8 Interpolation et Intgration

    1. 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 11

    f (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+2x2i

    f (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 b

    x0 x2i x2i+1 x2i+2 x2nh h

    En dduire la formule de quadrature composite pour le calcul approch de ba

    f (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 que

    f (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 11

    f (t )dt 11

    p(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 plus

    k pk (x)= xk 11 pk (x)dx

    pk (1)+4pk (0)+pk (1)3 Degr dexactitude

    3 x3 0 0 au moins 34 x4 2/5 2/3 3

    La formule est exacte pour les polynmes de degr au plus 3.

    4. Soit x =mt +q , alors x2i+2x2i

    f (x)dx =m 11

    f (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+2

    x2if (x)dx = x2i+2x2i

    2

    11

    f(x2i + (t +1) x2i+2x2i

    2

    )dt x2i+2x2i

    6

    [f (x2i )+4 f (x2i+1)+ f (x2i+2)

    ].

    G. Faccanoni 87

  • 3. Quadrature Jeudi 31 janvier 2013

    5. 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 b

    af (x)dx =

    n1i=0

    x2i+2x2i

    f (x)dx n1i=0

    x2i+2x2i6

    [f (x2i )+4 f (x2i+1)+ f (x2i+2)

    ]= h

    3

    n1i=0

    [f (x2i )+4 f (x2i+1)+ f (x2i+2)

    ]= h

    3

    [f (a)+ f (b)+2

    n1i=1

    f (x2i )+4n1i=0

    f (x2i +h)]

    = h3

    [f (a)+ f (b)+2

    n1i=1

    f (a+2i h)+4n1i=0

    f (a+ (2i +1)h)]

    .

    6. Algorithme du calcul associ cette formule de quadrature

    Require: f , a, b > a, n > 0h ba2ns1 0s2 s2+ f (a+h)for i = 1 to n1 do

    s1 s1+ f (a+2i h)s2 s2+ f (a+ (2i +1)h)

    end forreturn h3

    [f (a)+ f (b)+2s1+4s2

    ]Exercice 3.9

    Soit 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 b

    af (x)dx. (3.4)

    On propose dans un premier temps (question 1 3) de construire la formule de quadrature 3 points de Simpson : 11

    g (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+2

    x2if (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. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    1. On a

    k pk (x)= xk 11 pk (x)dx pk (1)+pk (0)+pk (1) Degr dexactitude

    0 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/3

    Soit = 1/33 x3 0 0 au moins 34 x4 2/5 2/3 3

    Si 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+2x2i

    f (x)dx =m 11

    f (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+2

    x2if (x)dx = x2i+2x2i

    2

    11

    f(x2i + (t +1) x2i+2x2i

    2

    )dt x2i+2x2i

    6

    [f (x2i )+4 f (x2i+1)+ f (x2i+2)

    ].

    3. On trouve ainsi la formule de quadrature composite (i.e. sur n sous-intervalles) ba

    f (x)dx =n1i=0

    x2i+2x2i

    f (x)dx n1i=0

    x2i+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 ba

    f (x)dx h3

    n1i=0

    [f (x2i )+4 f (x2i+1)+ f (x2i+2)

    ]= h3

    [f (a)+ f (b)+2

    n1i=1

    f (x2i )+4n1i=0

    f (x2i +h)]

    = h3

    [f (a)+ f (b)+2

    n1i=1

    f (a+2i h)+4n1i=0

    f (a+ (2i +1)h)]

    .

    Cette formule de quadrature est stable puisque tous les coefficients sont positifs et on a

    h

    3

    [1+1+2

    n1i=1

    1+4n1i=0

    1

    ]= ba

    6n[2+2(n1)+4n]= ba

    6n6n = (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 do

    s1 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 scrit

    f (x)= Pi (x)+Ri (x),

    avec

    Pi (x)= f (x2i )+ (xx2i ) f (x2i )+ (xx2i )2 f(x2i )

    2+ (xx2i )3 f

    (x2i )6

    P3et le reste de LAGRANGE

    Ri (x)= (xx2i )4 fIV ()

    24avec ]x2i ; x2i+2[.

    G. Faccanoni 89

  • 3. Quadrature Jeudi 31 janvier 2013

    On peut majorer Ri sur [x2i ; x2i+2] en fonction de H = x2i+2x2i :

    |Ri (x)| H4

    24max | f IV ()| = ba

    n

    H 3

    24max | f IV ()|.

    6. On en dduit lestimation derreur entre (3.4) et F suivante 1 ba

    f (x)dxFn1

    i=0

    x2i+2x2i

    Pi (x)dxF+n1

    i=0

    x2i+2x2i

    Ri (x)dx

    nH |Ri (x2i+2)|+

    n1i=0

    x2i+2x2i

    Ri (x)dx

    nH ba

    n

    H 3

    24max | f IV ()|+nH ba

    n

    H 3

    24max | f IV ()|

    = (ba) H4

    12sup | 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 b

    af (x)dx. (3.6)

    On propose dans un premier temps de construire la formule de quadrature trois points suivantes : 11

    g (x)dx 23

    (g ()+ g (0)+ g ()) , (3.7)

    o le rel 0

  • Jeudi 31 janvier 2013 3. Quadrature

    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 3n points) b

    af (x)dx H

    3

    n1i=0

    [f(xi +H

    (1 1p

    2

    ))+ f (xi + H2 )+ f (xi +H (1+ 1p2 ))]

    = H3

    n1i=0

    [f(a+H

    (i +1 1p

    2

    ))+ 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 b

    af (x)dx. (3.8)

    On propose dans un premier temps (question 1 2) de construire la formule de quadrature deux points : 11

    g (x)dx 43

    g (w/2)+ 23

    g (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+1

    xif (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)dx

    23 (2pk (w/2)+pk (w)) Degr dexactitude

    0 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/3

    Soit w =p2/33 x3 0 w3/2 2

    Si 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+1xi

    f (y)dy = xi+1xi2

    11

    f(xi + (x+1) xi+1xi

    2

    )dx

    xi+1xi3

    [f

    (xi + (1+

    23 )

    xi+1xi2

    )+2 f

    (xi + (1

    16 )

    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) b

    af (x)dx H

    3

    n1i=0

    [f

    (xi +H

    (1+

    23

    ))+2 f

    (xi +H

    (1

    16

    ))]

    = H3

    n1i=0

    [f

    (a+H

    (i +1+

    2

    3

    ))+2 f

    (a+H

    (i +1

    1

    6

    ))].

    Cette formule de quadrature est stable puisque tous les coefficients sont positifs.

    G. Faccanoni 91

  • 3. Quadrature Jeudi 31 janvier 2013

    4. Algorithme du calcul de F :

    Require: f , a, b > a, n > 0H ban1 a+H(1+

    p2/3)

    2 a+H(1p

    1/6)for i = 0 to n1 do

    s s+ f (1+ i H)+2 f (2+ i H)end forreturn I H3 s

    Exercice 3.12

    1. Soit 0

  • Jeudi 31 janvier 2013 3. Quadrature

    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 5) xi+1

    xif (x)dx = xi+1xi

    2

    11

    f(xi + (t +1) xi+1xi

    2

    )dt

    xi+1xi18

    [5 f

    (xi +(

    1

    3

    5

    )xi+1xi

    2

    )+8 f

    (xi+1+xi2

    )+5 f

    (xi +(

    1+

    3

    5

    )xi+1xi

    2

    )].

    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 b

    af (x)dx =

    n1i=0

    xi+1xi

    f (x)dx n1i=0

    xi+1xi18

    [5 f

    (xi +(

    1

    3

    5

    )xi+1xi

    2

    )+8 f

    (xi+1+xi2

    )+5 f

    (xi +(

    1+

    3

    5

    )xi+1xi

    2

    )]

    = h18

    n1i=0

    [5 f

    (xi +(

    1

    3

    5

    )h

    )+8 f

    (xi + h

    2

    )+5 f

    (xi +(

    1+

    3

    5

    )h

    )]

    = h18

    n1i=0

    [5 f

    (a+(

    i +1

    3

    5

    )h

    )+8 f

    (a+(i + 1

    2

    )h

    )+5 f

    (a+(

    i +1+

    3

    5

    )h

    )].

    4. Algorithme du calcul associ cette formule de quadrature

    Require: f , a, b > a, n > 0h banc1 a+

    (1p3/5)h

    c2 a+ 12 hc3 a+

    (1+p3/5)h

    s 0for i = 0 to n1 do

    s s+5 f (c1+ i h)+8 f (c2+ i h)+5 f (c3+ i h)end forreturn h18 s

    Exercice 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 b

    af (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 1

    1f (x)dx

    11

    p(x)dx

    et 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+1xi

    f (x)dx.

    3. En utilisant le rsultat au point prcdent, proposer une formule de quadrature composite pour le calcul approchde lintgrale b

    af (x)dx.

    Quelle mthode de quadrature reconnait-on ?

    CORRECTION.

    G. Faccanoni 93

  • 3. Quadrature Jeudi 31 janvier 2013

    1. 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 1

    1f (t )dt

    11

    p(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+1xi

    f (x)dx =m 11

    f (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+1

    xif (x)dx = xi+1xi

    2

    11

    f(xi + (t +1) xi+1xi

    2

    )dt xi+1xi

    2

    [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

    ba

    f (x)dx =n1i=0

    xi+1xi

    f (x)dx n1i=0

    xi+1xi2

    [f (xi )+ f (xi+1)

    ]= h2

    n1i=0

    [f (xi )+ f (xi+1)

    ]= h

    2

    [f (a)+ f (b)+2

    n1i=1

    f (xi )

    ]= h

    2

    [f (a)+ f (b)+2

    n1i=1

    f (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 vrifiant

    p(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 11

    f (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 scrit

    p(x)=n

    i=0yi Ai (x)+ y i Bi (x)

    o

    Ai (x)= (12(xxi )ci )(Li (x))2,Bi (x)= (xxi )(Li (x))2,

    94 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    Li (x)=n

    j=0j 6=i

    xx jxi x j

    ,

    ci =n

    j=0j 6=i

    1

    xi x j.

    Pour n = 1 on a alors

    p(x)= y0(12(xx0)

    (1

    x0x1

    ))((xx1)(x0x1)

    )2+ y 0(xx0)

    ((xx1)(x0x1)

    )2+ y1

    (12(xx1)

    (1

    x1x0

    ))((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) donc

    p(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)4

    x3.

    Le polynme interpolateur dHERMITE est donc le polynme

    p(x)=+x+x2+x3

    o

    = 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 unpolynme

    p(x)=+x+x2+x3

    tel 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 11

    p(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 95

  • 3. 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 1

    1f (x)dx =

    [1

    5x5]11= 2

    5= 6

    15

    6=f (1)+ f (1)+ 1

    3( f (1) f (1))= 1+1+ 1

    3(4+4)= 14

    3= 70

    15

    3. 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 b

    af (y)dy = ba

    2

    11

    f

    (a+ (x+1) ba

    2

    )dx

    = ba2

    [f (a)+ f (b)+ ba

    6( f (a) f (b))

    ]= ba

    2( f (a)+ f (b))+ (ba)

    2

    12( 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 1

    0f (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+1

    xip(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 )=n

    i=0i f (xi )+

    n1i=0

    i 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 derreur

    x [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 Q

    E(h)= 1

    0f (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 x

    xixi+1xi . On note h = xi+1 xi . Alors y =

    xxih et on a

    10 f (y) dy = 1h

    xi+1xi

    f ( xxih )d x. Comme xi+1

    xif (t ) dt

    2. Rappel : si y = a+ (x+1) ba2 alors dy = ba2 dx et f (y)= ba2 f (x).

    96 G. Faccanoni

  • Jeudi 31 janvier 2013 3. Quadrature

    a f (xi )+b f (mi )+c f (xi+1), alors 1

    0 f (y) dy = 1h xi+1

    xif ( 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 h

    tels que 10

    p(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 a1

    0p(x)dx = Ap(0)+B p(M)+C p(1)

    [d0x+ d12 x2+ d23 x3+ d34 x4

    ]10

    Ad0+Bd0+C d0

    d0+ d12 + d23 + d34 (A+B +C )d0+ (B M +C )d1+ (B M 2+C )d2+ (B M 3+C )d3

    Par 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 = 14

    A+B +C = 1B M = 12 C( 12 C )M = 13 C( 13 C )M = 14 C

    A = 16 ,B = 23 ,C = 16 ,M = 12 .

    La mthode 10

    f (x) dx = 16

    f (0)+ 23

    f

    (1

    2

    )+ 1

    6f (1),

    est exacte pour tout polynme de degr au moins 3.

    Soit maintenant f (x)= x4. On a 10

    f (x)dx =[

    x5

    5

    ]10= 1

    5

    mais1

    6f (0)+ 2

    3f

    (1

    2

    )+ 1

    6f (1)= 1

    6+ 2

    3

    (1

    2

    )4+ 1

    6= 5

    24,

    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 h

    2. Lintgrale 10

    f (x)dx =n1i=0

    xi+1xi

    f (x) dx

    peut tre calcule numriquement en utilisant la formule prcdente pour approcher chaque intgrale xi+1xi

    f (x) dx h6

    [f (xi )+4 f

    (xi +xi+12

    )+ f (xi+1)

    ].

    On obtient ainsi 10

    f (x)dx =n1i=0

    xi+1xi

    f (x) dx

    G. Faccanoni 97

  • 3. Quadrature Jeudi 31 janvier 2013

    n1i=0

    h

    6

    [f (xi )+4 f

    (xi +xi+12

    )+ f (xi+1)

    ]= h

    6

    [n1i=0

    f (xi )+n1i=0

    f (xi+1)+4n1i=0

    f(xi +xi+1

    2

    )]

    = h6

    [f (a)+ f (b)+2

    n1i=1

    f (xi )+4n1i=0

    f(xi +xi+1

    2

    )]

    =n

    i=0i f (xi )+

    n1i=0

    i 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 a

    ni=0

    i +n1i=0

    i = h6+

    n1i=1

    h

    3+ h

    6+

    n1i=0

    2h

    3= 1

    n

    (1

    6+ 1

    3

    n1i=1

    1+ 16+ 2

    3

    n1i=0

    1

    )= 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)| = 1

    0f (x) dxQ( f )

    =n1

    i=0

    xi+1xi

    f (x) dxn1i=0

    xi+1xi

    p(x)dx

    n1i=0

    xi+1xi

    f (x)p(x)dx

    n1i=0

    xi+1xi

    sup[xi ;xi+1]| f

    ()|6

    (xxi )(xmi )(xxi+1)dx

    Dh4.

    4. Algorithme

    Require: x 7 fRequire: n > 0

    a 16nb 23nc 16nI a f (0)for i = 1 to n1 do

    I I + (a+ c) f ( in )+b f ( i 12n )end for

    return I I + c f (1)+b f(

    n 12n

    )

    98 G. Faccanoni

  • 4. quations diffrentielles ordinaires

    Calculer la fonction t 7 y(t ) qui vrifie lEDO y (t )= f (t , y(t )) et la condition y(t0)= y0

    Les 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 problme

    trouver 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.

    99

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    On 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) est

    1. continue par rapport ses deux variables ;2. lipschitzienne par rapport sa deuxime variable, cest--dire quil existe une constante positive L (appele

    constante 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 )|+ y1

    y2sin()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 de

    donner 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 apprend

    100 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    quune 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+1tn

    f (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 scrit

    u0 = 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 fonction

    g (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 ce

    cadre, 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 devient

    un+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 dEULER

    102 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    progressif 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 suite

    un+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 proprit

    limn+un = 0

    est 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 103

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    TTTTTTTTTTTTT Codes Python TTTTTTTTTTTTVoici les function python des mthodes illustres dans ce chapitre

    1 #!/usr/bin/python2 #-*- coding: Utf-8 -*-3

    4 import math5 import sys6 import matplotlib.pyplot as plt7

    8 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 yy13

    14 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 yy19

    20 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 yy

    et voici un exemple

    25 # INITIALISATION26 N = 327 exemple = 428

    29 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)56

    57 # 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. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    62 yy_euler_modifie = euler_modifie(f,tt,N)63 yy_heun = euler_modifie(f,tt,N)64

    65 # 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 105

  • 4. 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 lapproximationlinaire

    y(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 donc

    yk+1 = (1t )yk .

    3. En procdant par rcurrence sur k, on obtient

    yk+1 = (1t )k+1.

    4. On a donc

    ? si t = 2.5 alors yk =(3

    2

    )k,

    ? si t = 1.5 alors yk =(1

    2

    )k,

    ? si t = 0.5 alors yk =(

    1

    2

    )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. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    t

    y

    1 2 3 4 5 6 7 8 9

    3

    2

    1

    0

    1

    2

    3

    Exacte

    t = 0.5t = 1.5t = 2.5

    NB : 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 lquationdiffrentielle

    y (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 linaire

    y(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-linaire

    yk+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 scrit

    yk+1 = yk h

    1+ t 2k+1yk+1.

    Elle peut tre rsolue algbriquement et cela donne la suite

    yk+1 =yk

    1+ h1+t 2k+1

    .

    G. Faccanoni 107

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    Si linstant t = 0 la concentration est y(0)= 5, et si h = 1/2, alors tk = k/2 et

    yk+1 =4+ (k+1)26+ (k+1)2 yk .

    On obtient donc

    k tk yk

    0 0 5

    1 0.5 4+12

    6+12 5= 57 5= 257 3.572 1.0 4+2

    2

    6+22257 = 810 257 = 207 2.86

    3 1.5 4+32

    6+32207 = 1315 207 = 5221 2.48

    4 2.0 4+42

    6+425221 = 2022 5221 = 520231 2.25

    La concentration t = 2 est denviron 2.25. Comparons avec le calcul exact : y(2)= 5earctan(2) 1.652499838.

    t

    y

    1 2 3

    1

    2

    3

    4

    5

    Exacte

    EULER implicite

    Exercice 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 . Sous

    quelle condition sur h le schma du trapze est-il A-stable ? Autrement dit, pour quelles valeurs de h la relationlim

    i+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, . . .

    }reprsente

    la 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 obtenons

    y(ti+1) y(ti )= ti+1

    tif (t , y(t )) dt .

    108 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    Soit 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+1ti

    f (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 obtient

    yi =(

    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 lim

    i+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 obtient

    yi =(1h+ (h)

    2

    2

    )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 =h

    q

    0 2

    1

    Nous avons |q(x)| < 1 si et seulement si 0< x < 2. La relation limi+

    yi = 0 est donc satisfaite si et seulement si

    h < 2

    .

    G. Faccanoni 109

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    Exercice 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) est

    1.1. continue par rapport ses deux variables ;1.2. lipschitzienne par rapport sa deuxime variable, cest--dire quil existe une constante positive L (appele

    constante 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 obtenons

    y(ti+1) y(ti )= ti+1

    tif (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+1

    tif (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. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    3. 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 par

    g (x)= x+t xm (t cos(ti+1)+ yi ) .La mthode de NEWTON pour approcher le zro de g scrit

    xk+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 donc

    x1 = 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 vrifiant

    un+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 que

    limt0

    un = u0e10T .

    7. Soit (vn)nN la suite dfinissant le schma dEULER explicite pour lquation diffrentielle (4.3). Montrer que

    limt0

    vn = 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 111

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    plus, 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.

    t

    y

    1 1

    321

    0

    1

    2

    3

    2. Soit le schma numrique de Cranck-Nicholson dfini par la suite (un)nN vrifiant

    un+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 +undo

    un+1 = 15t1+5t un .

    Il sagit dune suite gomtrique de raison

    r = 15t1+5t .

    3. Pour tout t > 0 on ar = 15t

    1+5t = 110t

    1+5tet

    1< 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 ssi

    1 10t1+5t > 0

    i.e. ssi

    t < 15

    .

    5. Par rcurrence on obtient

    un =(

    15t1+5t

    )nu0.

    6. Soit T > 0 fix et considrons n = n(t ) tel que T t < nt T . En se rappelant que

    limx0

    ln(1+x)x

    = 1

    et en observant que ( 15t1+5t

    ) Tt 1 ( 15t1+5t )n ( 15t1+5t ) Tt

    e(Tt )

    ln(15t )ln(1+5t )t eT

    ln(15t )ln(1+5t )t

    e(Tt )

    5ln(15t )5ln(1+5t )5t eT

    5ln(15t )5ln(1+5t )5t

    e10T e10T

    112 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    on conclut que

    limt0

    un = u0 limt0

    (15t1+5t

    )n= u0e10T .

    7. La suite dfinissant le schma dEULER explicite pour lEDO assigne scrit

    vn+1 vnt

    = f (tn ,un) = vn+1 = vn 10t vn = (110t )vn = (110t )n+1v0.

    Il sagit nouveau dune suite gomtrique de raison

    re = 110t

    qui 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 e10T

    ln(110t )10t

    e10T e10T

    dolimt0

    vn = 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 suivante

    un+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 113

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    3. 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 : la

    suite 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 suite

    un+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 |+t

    pour 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 simplement

    T (0)= 75.

    114 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    Pour 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--dire

    T (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 a

    T (t )=K (T (t )25) = T(t )

    (T (t )25) =K =dT

    (T 25) =K d t =1

    (T 25) dT =K

    d t = ln(T 25)=K t + c = T 25=DeK t = T (t ) = 25+DeK t

    2. 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 t

    3. 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)5

    0.14 = T (t )= 25+50e ln(2)5 t

    On peut donc conclure que la temprature du caf volue selon la fonction

    T (t )= 25+50e ln(2)5 t .

    t

    T

    5 10 150

    25

    50

    75

    Solution 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 115

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    t

    T

    5 10 150

    25

    50

    75

    ti T (ti ) Ti T (ti )Ti0.000000 75.000000 75.000000 0.0000005.000000 50.000000 40.342641 9.657359

    10.000000 37.500000 29.707933 7.79206715.000000 31.250000 26.444642 4.805358

    2. Exemple avec t = 1 :

    t

    T

    5 10 150

    25

    50

    75

    ti 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.306634

    10.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.918856

    116 G. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    Exercice 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 type

    Tn+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 la

    temprature 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 donc

    Tn+1 = Tn +Kt (Tn+1Text).2. Si Text = 0C, en procdant par rcurrence sur n on obtient

    Tn+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 que

    20= 1(1Kt )n+1 37 = (1Kt )

    n+1 = 3720

    = n+1= log(1Kt )(

    37

    20

    )= 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 comme

    suit :

    T (t )=K (T (t )Text) = T(t )

    T (t )Text=K = dT

    T Text=K dt =

    1

    T TextdT =K

    dt = ln(T Text)=K t + c = T Text =DeK t = T (t )= Text+DeK t .

    G. Faccanoni 117

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    La valeur numrique de la constante dintgration D est obtenue grce la CI :

    T0 = T (0)=DeK 0 = D =T0 = T (t )= T0eK t

    Ici T0 = 37C donc la temprature du cadavre suit la loi

    T (t )= 37eK t .

    Pour dterminer lheure du meurtre il faut alors rsoudre lquation

    20= 37eK t

    do t = 1K ln 2037 82,70715903 minutes, cest--dire 83 minutes avant 2H20 : le crime a t commit 00H57.

    t

    T [C]1H

    00

    1H10

    1H20

    1H30

    1H40

    1H50

    2H00

    2H10

    2H20

    1

    2

    3

    Exercice 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-implicite

    In+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 problme

    de 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 < A

    alors 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. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    4. Soit 0< I0 < A. On considre le schma semi-impliciteIn+1 In

    t= 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+kInt

    In .

    Si 0< I0 < A alors? In > 0 quelque soit n ;? In est majore par A car

    In+1 A (1+k At )In (1+kInt )A In A

    donc 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 a

    I (t )= ADeAkt +1

    La valeur numrique de la constante dintgration D est obtenue grce la CI :

    D = A I0I0

    Exemple avec A = 5000, I0 = 160, k = ln(363/38)35000 et t = 1 :

    t

    I

    Exacte

    I0

    A

    Approche avec t = 1

    Exercice 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 ordre

    p (t )= kp(t )hp2(t ).

    On veut calculer p(t ) partir dun nombre initiale dindividus donn

    p(0)= p0 0.

    CORRECTION.

    Solution exacte

    G. Faccanoni 119

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    1. 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+, ainsi

    p (t )kp(t )hp2(t ) = 1.

    Formellement on a

    dp

    kphp2 = 1dt =

    1

    p(khp) dp =

    1dt =1

    k

    1

    pdp 1

    k

    hkhp dp =

    1dt = 1

    kln(p) 1

    kln(khp)= t + c =

    ln

    (p

    khp)= kt +kc = p

    khp =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 fonction

    p(t )=

    0 si p0 = 0,kh si p0 = kh ,

    kkhp0p0e

    kt +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.

    t

    p

    1 2 30

    1

    2

    3

    4

    5

    Exemple 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. Faccanoni

  • Jeudi 31 janvier 2013 4. quations diffrentielles ordinaires

    on 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.004907

    t

    p

    1 2 30

    1

    2

    3

    4

    5

    ti 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 t

    p

    1 2 30

    1

    2

    3

    4

    5

    Exercice 4.12 Mthode de TaylorLa mthode de Taylor est bas sur la relation

    y(x+h)' y(x)+ y (x)h+ 12!

    y (x)h2+ 13!

    y (x)h3+ + 1m!

    y (m)(x)hm

    Cette 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, est

    E = 1(m+1)! y

    (m+1)()hm+1 pour x < < x+h,

    que lon peut approcher par

    E ' 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 121

  • 4. quations diffrentielles ordinaires Jeudi 31 janvier 2013

    CORRECTION. Le dveloppement de Taylor en 0 jusqu lordre 4 est

    y(h)' y(0)+ y (0)h+ 12!

    y (0)h2+ 13!

    y (0)h3+ 14!

    y IV (0)h4.

    En drivant lEDO on trouve

    y(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 obtient

    y(0.1)' 1+ 410

    + 16200

    + 626000

    + 248240000

    = 0.6707

    et comme

    y 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 lerreur

    E ' 248960000

    (y IV (0.1) y IV (0))= 248

    960000(166.259248)=0.000068.

    122 G. Faccanoni

  • 5. 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 erreurs

    de 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 lies

    par 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 par

    E (m, q)=n

    i=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. Puisque

    E

    m(m, q)=2

    (n

    i=0(yi (mxi +q))xi

    ),

    E

    q(m, q)=2

    (n

    i=0(yi (mxi +q))

    ),

    123

  • 5. Meilleur approximation au sens des moindres carrs. Jeudi 31 janvier 2013

    alors{Em (m, q)= 0Eq (m, q)= 0

    {n

    i=0(yi mxi q)xi = 0ni=0(yi mxi q)= 0

    {n

    i=0 yi xi mn

    i=1 x2i +q

    ni=0 xi = 0n

    i=0 yi mn

    i=1 xi + (n+1)q = 0

    m =

    (ni=0 xi

    )(ni=0 yi

    ) (n+1)(ni=0(xi yi ))(ni=0 xi

    )2 (n+1)(ni=0 x2i )q =(n

    i=0 xi)(n

    i=0 xi yi) (ni=0 yi )(ni=0 x2i )(n

    i=0 xi)2 (n+1)(ni=0 x2i )

    Si on note

    x = 1n+1

    ni=0

    xi , x2 = 1n+1

    ni=0

    x2i , x y =1

    n+1n

    i=0xi yi , y = 1

    n+1n

    i=0yi .

    alors

    m = x y x y(x)2x2

    , q = y x2x x y

    x2 (x)2.

    La droite dquationy =mx+q

    sappelle 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 =n

    i=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 quation

    y = cx

    (xx) y .

    ExempleSi on a le points suivantes

    x 1 2 3 4 5y 0.9 1.5 3.5 4.2 4.9

    on trouve m = 1.07 et q =0.21 :

    x0 1 2 3 4 5

    y

    1

    2

    3

    4

    5

    Remarque 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 fitting

    sur lensemble initial{

    (xi , yi )}n

    i=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. Faccanoni

  • Jeudi 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 sont

    lies, 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 x

    ji

    )lcart vertical du point (xi , yi ) par rapport au polynme. La

    mthode 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 par

    E (a0, a1, . . . , am)=n

    i=1d 2i =

    ni=0

    (yi

    mj=0

    a 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. Puisque

    E

    a0(a0, a1, . . . , am)=2

    ni=0

    (x0i

    (yi

    mj=0

    a j xji

    )),

    E

    a1(a0, a1, . . . , am)=2

    ni=0

    (x1i

    (yi

    mj=0

    a j xji

    )),

    ...

    E

    am(a0, a1, . . . , am)=2

    ni=0

    (xmi

    (yi

    mj=0

    a j xji

    )),

    on obtient alors le systme linaire de (m+1) quations en les (m+1) inconnues a0, a1, . . . , am suivant

    Ea0

    (a0, a1, . . . , am)= 0Ea1

    (a0, a1, . . . , am)= 0...Eam

    (a0, a1, . . . , am)= 0

    a0(n+1)+a1ni=0 xi + +amni=0 xmi =ni=0 yia0n

    i=0 xi +a1n

    i=0 x2i + +am

    ni=0 x

    m+1i =

    ni=0 yi xi

    ...

    a0n

    i=0 xmi +a1

    ni=0 x

    m+1i + +am

    ni=0 x

    2mi =

    ni=0 yi x

    mi

    (n+1) ni=0 xi . . . ni=0 xmin

    i=0 xin

    i=0 x2i . . .

    ni=0 x

    m+1i

    ......

    ...ni=0 x

    mi

    ni=0 x

    m+1i . . .

    ni=0 x

    2mi

    a0a1...

    am

    =n

    i=0 yini=0 yi xi

    ...ni=0 yi x

    mi

    Exemple

    RemarqueQuand m = n, le polynme des moindres carrs concide avec le polynme dinterpolation de Lagrange.

    G. Faccanoni 125

  • 5. Meilleur approximation au sens des moindres carrs. Jeudi 31 janvier 2013

    .............. Exercices .............Exercice 5.1 partir des donnes

    x 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.828

    calculer 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 avec

    m =6

    i=0 yi (xi x)7i=0 xi (xi x)

    8.420042377, q = y mx 3.37833528,

    o x = 176

    i=0 xi = 2.0125 et y = 176

    i=0 yi = 13.567. Lerreur est6

    i=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 xi

    6i=0 x

    2i

    6i=0 x

    3i6

    i=0 x2i

    6i=0 x

    3i

    6i=0 x

    4i

    a0a1a2

    = 6i=0 yi6

    i=0 yi xi6i=0 yi x

    2i

    i.e. 8 16.1 44.7916.1 44.79 141.311

    44.79 141.311 481.5123

    a0a1a2

    = 108.536322.7425

    1067.97905

    et on obtient

    a0 = 0.744611871628180655,a1 = 2.14480468957977077,a2 = 1.51926210146774388.

    Lerreur est6

    i=0(yi (a0+a1xi +a2x2i ))2 = 5.715921703.

    x

    y

    1 2 3 4

    10

    20

    30

    40

    Exercice 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.693

    126 G. Faccanoni

  • Jeudi 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 xi

    4i=0 x

    2i

    4i=0 x

    3i4

    i=0 x2i

    4i=0 x

    3i

    4i=0 x

    4i

    a0a1a2

    = 4i=0 yi4

    i=0 yi xi4i=0 yi x

    2i

    i.e. 8 16.1 44.7916.1 44.79 141.311

    44.79 141.311 481.5123

    a0a1a2

    = 108.536322.7425

    1067.97905

    et on obtient

    a0 = 0.744611871628180655,a1 = 2.14480468957977077,a2 = 1.51926210146774388.

    Lerreur est6

    i=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.296

    Comparer 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 )}6

    i=0. Le polynme de LAGRANGE scrit

    `(T )=6

    i=0

    i 6j=0j 6=i

    T T jTi T j

    et on obtient

    `(T )=tandis que le polynme de meilleur approximation de degr 3 scrit

    r (T )= a0+a1T +a2T 2+a3T 3

    o a0, a1, a2, a3 sont solution du systme linaire6

    6i=0 Ti

    6i=0 T

    2i

    6i=0 T

    3i6

    i=0 Ti6

    i=0 T2i

    6i=0 T

    3i

    6i=0 T

    4i6

    i=0 T2i

    6i=0 T

    3i

    6i=0 T

    4i

    6i=0 T

    5i6

    i=0 T3i

    6i=0 T

    4i

    6i=0 T

    5i

    6i=0 T

    6i

    a0a1a2a3

    =6

    i=0i6i=0i Ti6i=0i T

    2i6

    i=0i T3i

    et 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.249145396

    Exercice 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 sont

    lies, 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 127

  • 5. 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 par

    E : R2 R+(a,b) 7 E (a,b)=

    ni=0

    d 2i .

    crire le systme linaire qui permet de calculer a et b.

    CORRECTION. Pour minimiser E on cherche ses points stationnaires. Puisque

    E

    a(a,b)=2

    (n

    i=0

    (yi (a sin

    (pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )

    ),

    E

    b(a,b)=2

    (n

    i=0

    (yi (a sin

    (pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )

    ),

    on obtient{Ea (a,b)= 0Eb (a,b)= 0

    {n

    i=0(yi (a sin

    (pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )= 0n

    i=0(yi (a sin

    (pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )= 0

    {n

    i=0((

    a sin(pi2 xi)+b cos(pi2 xi )))sin(pi2 xi )=ni=0 yi sin(pi2 xi )n

    i=0((

    a sin(pi2 xi)+b cos(pi2 xi )))cos(pi2 xi )=ni=0 yi cos(pi2 xi )

    [ n

    i=0 sin2(pi2 xi) n

    i=0 sin(pi2 xi)

    cos(pi2 xi)n

    i=0 sin(pi2 xi)

    cos(pi2 xi) n

    i=0 cos2(pi2 xi) ][a

    b

    ]=[n

    i=0 yi sin(pi2 xi)n

    i=0 yi cos(pi2 xi)] .

    Si on note

    U =n

    i=0sin2(pi2 xi)

    , V =n

    i=0sin(pi2 xi)

    cos(pi2 xi)

    , W =n

    i=0cos2

    (pi2 xi)

    , P =n

    i=0yi sin

    (pi2 xi)

    , Q =n

    i=0yi cos

    (pi2 xi)

    ,

    on doit rsoudre le systme linaire (U VV W

    )(ab

    )=(

    PQ

    )dont la solution est

    a = 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 moins

    approximativement, 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 par

    E : R3 R+(a,b,c) 7 E (a,b,c)=

    ni=0

    d 2i .

    1. crire le systme linaire qui permet de calculer a, b et c

    128 G. Faccanoni

  • Jeudi 31 janvier 2013 5. Meilleur approximation au sens des moindres carrs.

    2. Calculer lquation du plan de meilleure approximation pour lensemble{

    (xi , yi , zi )}5

    i=0 o

    i 0 1 2 3 4 5xi 0 0 1 2 2 2yi 0 1 0 0 1 2zi

    32 2

    12 0

    12 1

    On utilisera la mthode du pivot de GAUSS pour la rsolution du systme linaire.

    CORRECTION.

    1. Pour minimiser E on cherche ses points stationnaires. Puisque

    E

    a(a,b,c)=2

    (n

    i=0(zi (a+bxi + c yi ))

    ),

    E

    b(a,b,c)=2

    (n

    i=0(zi (a+bxi + c yi ))xi

    ),

    E

    c(a,b,c)=2

    (n

    i=0(zi (a+bxi + c yi ))yi

    ),

    on obtientEa (a,b,c)= 0Eb (a,b,c)= 0Ec (a,b,c)= 0

    n

    i=0(zi (a+bxi + c yi ))= 0ni=0(zi (a+bxi + c yi ))xi = 0ni=0(zi (a+bxi + c yi ))yi = 0

    n

    i=0(a+bxi + c yi )=n

    i=0 zini=0(axi +bx2i + c yi xi )=

    ni=0 zi xin

    i=0(ayi +bxi yi + c y2i )=n

    i=0 zi yi

    (n+1) ni=0 xi ni=0 yin

    i=0 xin

    i=0 x2i

    ni=0 xi yin

    i=0 yin

    i=0 xi yin

    i=0 y2i

    abc

    = ni=0 zin

    i=0 zi xini=0 zi yi

    .2. Dans notre cas,

    ni=0

    xi = 7n

    i=0yi = 4

    ni=0

    zi = 112

    ni=0

    xi yi = 6n

    i=0xi zi = 7

    2

    ni=0

    yi zi = 92

    n+1= 6n

    i=0x2i = 13

    ni=0

    y2i = 6

    donc on a le systme linaire 6 7 47 13 64 6 6

    abc

    =11/27/2

    9/2

    quon peut rsoudre par la mthode de GAUSS

    6 7 4 11/27 13 6 7/24 6 6 9/2

    L2L276 L1

    L3L3 23 L1 6 7 4 11/20 29/6 4/3 35/12

    0 4/3 10/3 5/6

    L3L3 829 L2 6 7 4 11/20 29/6 4/3 35/12

    0 0 86/29 95/58

    dont la solution est ab

    c

    = 123/8665/86

    95/172

    1.4302325570.7558139503

    0.5523255766

    .

    G. Faccanoni 129

  • 6. Systmes linaires

    Rsoudre lensemble dquations linairesAx= b

    Dfinition 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 note

    x=

    x1...xp

    b=b1...

    bn

    A=a11 . . . a1p... ...

    an1 . . . anp

    le 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 .

    131

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Ce 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 cas

    de 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 par

    K (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,...,n

    ni=1|ai j |, A = max

    i=1,...,n

    nj=1|ai j |.

    Remarque Cas particulierSiA est symtrique et dfinie positive a,

    K2(A)= A2A12 = maxmin

    o 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 dmontrerque

    xx K (A)

    bb

    o 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 de

    E(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 LU

    Dfinition 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. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    Si 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 relation

    xi = 1ai i

    (bi

    i1j=1

    ai j x j

    );

    ? siA est une matrice triangulaire suprieure on a xn = bnann et on dduit les inconnues xn1, xn2, . . . x1 grce la relation

    xi = 1ai i

    (bi

    nj=i+1

    ai 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 )1in

    1 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 transformations

    Li Li ai kakk

    Lk

    liminent 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= 1

    2x1+3x2+4x3 +x4= 23x1+4x2 +x3+2x4= 34x1 +x2+2x3+3x4= 4

    L2L22L1L3L33L1L4L44L1

    x1+2x2 +3x3 +4x4= 1

    x2 2x3 7x4= 02x2 8x310x4= 07x210x313x4= 0

    L3L32L2L4L47L2

    x1+2x2+3x3 +4x4= 1

    x22x3 7x4= 04x3 +4x4= 0

    4x3+36x4= 0

    L4L4+L3

    x1+2x2+3x3+4x4= 1

    x22x37x4= 04x3+4x4= 0

    40x4= 0

    donc 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 4

    L2L22L1L3L33L1L4L44L1

    1 2 3 4 10 1 2 7 00 2 8 10 00 7 10 13 0

    L3L32L2L4L47L2

    1 2 3 4 10 1 2 7 00 0 4 4 00 0 4 36 0

    L4L4+L3

    1 2 3 4 10 1 2 7 00 0 4 4 00 0 0 40 0

    donc 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 133

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Algorithme 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 do

    ai k ai kakk

    for j = k+1 to n doai j ai j ai k ak j

    end forend for

    end for

    2. Rsoudre le systme linaire consiste simplement rsoudre successivement

    2.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 lalgorithmescrit

    y1 b1for i = 2 to n do

    si 0for j = 1 to i 1 do

    si si +ai j x jend foryi bi si

    end for

    2.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 scrit

    xn ynann

    for i = n1 to 1 by 1 dosi 0for j = 1 to i 1 do

    si si +ai j y jend forxi yi si

    ai iend for

    AttentionPour 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 | n

    j=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. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    Dfinition 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 alors

    for k = 1 to n1 dofor i = k+1 to n do

    Chercher 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 k

    a(k)kkfor j = k+1 to n do

    a(k+1)i j a(k)i j `(k)i k a(k)k jend for

    end forend for

    Une 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 linaires

    Axi = 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 forme

    Lyi =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 3

    x1x2x3x4

    =

    1234

    et

    1 2 3 42 3 4 13 4 1 24 1 2 3

    x1x2x3x4

    =

    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 4

    L2L22L1L3L33L1L4L44L1

    1 2 3 4 10 1 2 7 00 2 8 10 00 7 10 13 0

    L3L32L2L4L47L2

    1 2 3 4 10 1 2 7 00 0 4 4 00 0 4 36 0

    L4L4+L3

    1 2 3 4 10 1 2 7 00 0 4 4 00 0 0 40 0

    donc

    x4 = 0, x3 = 0, x2 = 0, x1 = 1.

    G. Faccanoni 135

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Rsolution 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 10

    L2L22L1L3L33L1L4L44L1

    1 2 3 4 100 1 2 7 100 2 8 10 200 7 10 13 30

    L3L32L2L4L47L2

    1 2 3 4 100 1 2 7 100 0 4 4 00 0 4 36 40

    L4L4+L3

    1 2 3 4 100 1 2 7 100 0 4 4 00 0 0 40 40

    donc

    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 3

    L2L22L1L3L33L1L4L44L1

    1 2 3 42 1 2 73 2 8 104 7 10 13

    L3L32L2L4L47L2

    1 2 3 42 1 2 73 2 4 44 7 4 36

    L4L4+L3

    1 2 3 42 1 2 73 2 4 44 7 1 40

    donc

    L=

    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 40

    Pour rsoudre le premier systme linaire on rsout les systmes triangulaires Ly= b

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    1234

    = y1 = 1, y2 = 0, y3 = 0, y4 = 0

    et Ux= y

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    1000

    = x4 = 0, x3 = 0, x2 = 0, x1 = 1.

    Pour rsoudre le second systme linaire on rsout les systmes triangulaires Ly= b

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    10101010

    = y1 = 10, y2 =10, y3 = 0, y4 = 40

    et Ux= y

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    1010

    040

    = x4 = 1, x3 = 1, x2 = 1, x1 = 1.

    3. Le dterminant deA est u11u22u33u44 = 1 (1) (4)40= 160.

    136 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    4. Pour calculerA1 on rsout les quatre systmes linaires1 2 3 42 3 4 13 4 1 24 1 2 3

    x1x2x3x4

    =

    1000

    i.e.

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    1000

    =

    121

    11

    puis

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    121

    11

    =9/401/401/40

    11/40

    1 2 3 42 3 4 13 4 1 24 1 2 3

    x1x2x3x4

    =

    0100

    i.e.

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    0100

    =

    0129

    puis

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    0129

    =

    1/401/40

    11/409/40

    1 2 3 42 3 4 13 4 1 24 1 2 3

    x1x2x3x4

    =

    0010

    i.e.

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    0010

    =

    0011

    puis

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    0011

    =

    1/4011/409/401/40

    1 2 3 42 3 4 13 4 1 24 1 2 3

    x1x2x3x4

    =

    0001

    i.e.

    1 0 0 02 1 0 03 2 1 04 7 1 1

    y1y2y3y4

    =

    0001

    =

    0001

    puis

    1 2 3 40 1 2 70 0 4 40 0 0 40

    x1x2x3x4

    =

    0001

    =

    11/409/401/401/40

    et finalement

    A1 =

    9/40 1/40 1/40 11/401/40 1/40 11/40 9/401/40 11/40 9/40 1/40

    11/40 9/40 1/40 1/40

    = 1409 1 1 111 1 11 9

    11 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 qui

    construit 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 x

    k pour j 6= i de la manire suivante :

    xk+1i =

    bi n

    j=1j 6=i

    ai j xkj

    ai i, i = 1, . . . ,n

    x(k) =

    x(k)1

    x(k)2...

    x(k)i1x(k)i

    x(k)i+1...

    x(k)n

    x(k+1) =

    x(k+1)1x(k+1)2

    ...

    x(k+1)i1x(k+1)ix(k+1)i+1

    ...

    x(k+1)n

    PropositionSi la matriceA est diagonale dominante stricte, la mthode de JACOBI converge.

    G. Faccanoni 137

  • 6. Systmes linaires Jeudi 31 janvier 2013

    La 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 x

    k+1 pour j < i et des composantes xkj du vecteur xk pour j i de la maniresuivante :

    xk+1i =bi

    i1j=1

    ai j xk+1j n

    j=i+1ai j xkj

    ai i, i = 1, . . . ,n

    x(k) =

    x(k)1

    x(k)2...

    x(k)i1x(k)i

    x(k)i+1...

    x(k)n

    x(k+1) =

    x(k+1)1x(k+1)2

    ...

    x(k+1)i1x(k+1)ix(k+1)i+1

    ...

    x(k+1)n

    PropositionSi 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, TOLL

    iter 0r bAxwhile (r >TOLL & iterTOLL & iter

  • Jeudi 31 janvier 2013 6. Systmes linaires

    de convergence, la mthode de GAUSS-SEIDEL est plus rapide que celle de JACOBI.

    ExempleConsidrons le systme linaire 4 2 11 2 0

    2 1 4

    xyz

    =42

    9

    mis 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 trouve

    x(1) =1 02 041+ 02

    94 02 04

    = 11

    9/4

    , x(2) =1 12

    9/44

    1+ 1294 12 14

    =1/163/2

    3/2

    , x(3) = 1

    3/22

    3/24

    1+ 1/16294

    1/162

    3/24

    =1/81/32

    61/32

    , x(4) = 1

    1/322

    61/324

    1+ 1/8294

    1/82

    1/324

    = 5/12815/16

    265/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 trouve

    x(1) =

    102 04

    1+ 1294 12

    3/24

    = 13/2

    11/8

    , x(2) = 1

    3/22

    11/84

    1+ 3/32294

    3/322

    61/644

    =3/3261/64

    527/256

    , x(3) = 1

    3/322

    61/644

    1+ 9/1024294

    9/10242

    2047/20484

    = 9/10242047/2048

    16349/8192

    ,La suite x(k) converge vers (0,1,2) la solution du systme.

    G. Faccanoni 139

  • 6. Systmes linaires Jeudi 31 janvier 2013

    .............. Exercices .............Exercice 6.1Soit le systme linaire 6 1 12 4 0

    1 2 6

    x1x2x3

    =120

    6

    .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) =22

    2

    , x(1) =

    12(12+12)6

    0(22+02)4

    6(12+22)6

    = 4/31

    0

    , x(2) =

    12(1(1)+10)6

    0(2 43+00)4

    6(1 43+2(1))6

    = 13/62/3

    10/9

    , x(3) =

    12(1 23 +1 109 )6

    0(2 136 +0 109 )4

    6(1 136 +2 23 )6

    = 52/2713/12

    31/36

    ainsi

    x 1.9261.083

    0.861

    .2. Mthode de GAUSS-SEIDEL :

    x(0) =22

    2

    , x(1) =

    12(12+12)6

    0(2 43+02)4

    6(1 43+2 23 )6

    = 4/3 23

    1

    , x(2) =

    12(1 23 +11)6

    0(2 3518+01)4

    6(1 3518+2 3536 )6

    = 35/1835/36

    1

    , x(3) =

    12(1 3518+1 3536 )6

    0(2 431216+01)4

    6(1 431216+2 431432 )6

    = 431/216431/432

    1

    ainsi

    x 1.9950.995

    1

    .3. Mthode dlimination de Gauss :

    (A|b)= 6 1 1 122 4 0 0

    1 2 6 6

    L2L226 L1

    L3L3 16 L1 6 1 1 120 113 13 4

    0 116356 4

    L3L3116

    113

    L2

    6 1 1 120 113 13 4

    0 0 6 6

    donc

    6x1+x2+x3 = 12,113 x2 13 x3 =4

    6x3 = 6= x3 = 1, x2 =1, x1 = 2.

    4. Factorisation de la matriceA :6 1 12 4 01 2 6

    L2L226 L1

    L3L3 16 L16 1 12

    6113 13

    16

    116

    356

    L3L3116

    113

    L2

    6 1 126

    113 13

    16

    116

    113

    6

    donc

    L=1 0 01

    3 1 016

    12 1

    U=6 1 10 113 13

    0 0 6

    Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly= b1 0 01

    3 1 016

    12 1

    y1y2y3

    =120

    6

    = y1 = 12, y2 =4, y3 = 6

    140 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    et Ux= y 6 1 10 113 130 0 6

    x1x2x3

    = 14

    6

    = 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 successivement

    2.1. le systme triangulaire infrieur Ly= b par lalgorithme

    y1 = b1, yi = bi i1j=1

    `i j y j , i = 2, . . . ,n

    2.2. le systme triangulaire suprieure Ux= y par lalgorithme

    xn = ynunn

    , xi = 1ui i

    (yi

    nj=i+1

    ui j x j

    ), j = n1, . . . ,1

    3. Factorisation : 3 1 11 3 11 1 3

    L2L213 L1

    L3L3 13 L13 1 10 8/3 4/3

    0 4/3 8/3

    L3L3 4/38/3 L23 1 10 8/3 4/3

    0 0 2

    .Par consquent

    L= 1 0 01/3 1 01/3 1/2 1

    et U=3 1 10 8/3 4/3

    0 0 2

    .Exercice 6.3Calculer, lorsquil est possible, la factorisation LU des matrices suivantes :

    A=1 2 32 4 5

    7 8 9

    , B=1 2 37 8 9

    2 4 5

    .Comment peut-on modifier lalgorithme de factorisation pour pouvoir toujours aboutir une factorisation LU lorsquela matrice est inversible ?

    G. Faccanoni 141

  • 6. Systmes linaires Jeudi 31 janvier 2013

    CORRECTION. 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 5

    7 8 9

    L2L221 L1

    L3L3 71 L11 2 30 0 1

    0 6 12

    La 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 9

    2 4 5

    L2L271 L1

    L3L3 21 L11 2 30 6 12

    0 0 1

    La factorisation LU de la matrice B est donc

    L=1 0 07 1 0

    2 0 1

    , U=1 2 30 6 12

    0 0 1

    .Lorsquun pivot est nul, la mthode de GAUSS pour calculer la factorisation LU de la matrice A nest plus applicable. De

    plus, 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 donn

    A=1 2 32 4 5

    7 8 9

    L2L31 2 37 8 9

    2 4 5

    L2L271 L1

    L3L3 21 L11 2 30 6 12

    0 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 donne

    P=1 0 00 0 1

    0 1 0

    Exercice 6.4Aprs avoir utilis la mthode dlimination de Gauss, une matrice symtrique A a t transforme en la matrice trian-gulaire suprieure

    U=

    4 2 1 00 3 3/2 10 0 3 3/20 0 0 35/12

    .Calculer la matriceA.

    142 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    CORRECTION. CommeA= LU, il suffit de calculer L. En divisant chaque ligne de U par son terme diagonal on trouve

    LT =

    1 1/2 1/4 00 1 1/2 1/30 0 1 1/20 0 0 1

    .Alors

    A= LU=

    1 0 0 0

    1/2 1 0 01/4 1/2 1 0

    0 1/3 1/2 1

    4 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 par

    A =2 4 1 2 1

    2 3 2

    , P=1 0 00 0 1

    0 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. Comme

    det(A)= det2 4 1 2 1

    2 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 les

    sous-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 la

    matriceA et on obtient la matrice

    PA1 =1 0 00 0 1

    0 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 2

    1 2 1

    L2L2L1L3L3 12 L12 4 10 1 1

    0 0 12

    G. Faccanoni 143

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Par consquent, on obtient la dcomposition LU suivante de la matriceM :

    L= 1 0 01 1 0 12 0 1

    , U=2 4 10 1 1

    0 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+ 1

    2y1 =3

    2;

    ? 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 dernire

    ligne, 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 que

    n =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)()n22

    dont les racines sont

    1,2 =

    (n1), 3 = =n =.

    144 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    Par 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 est

    K2(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 matrice

    A= 0 10 0

    1 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 avec

    A= 0 0

    0

    avec , , et des paramtres rels. Donner des conditions suffisantes sur les coefficients pour avoir

    1. convergence de la mthode de Jacobi

    2. 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 condition

    suffisante pour la convergence de cette mthode est que la matrice soit symtrique dfinie positive. Pour la symtrieil faut que {

    = 0,= ,

    on obtient ainsi la matrice

    A= 0 00

    0

    .Elle est dfinie positive si ses valeurs propres sont positifs. On a

    1 =, 2 =, 3 =+,

    donc il faut que > ||.

    G. Faccanoni 145

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Exercice 6.9crire les formules de la mthode dlimination de Gauss pour une matrice de la forme

    A=

    a1,1 a1,2 0 . . . 0

    a2,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 Gaussdeviennent

    a(k+1)i , j = a(k)i , j +mi ,k a(k)k, j , i , j = k+1,

    mi ,k =a(k)i ,k

    a(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 n

    A=

    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. Comme

    AB=

    + 0 . . . 0

    0. . .

    ...... + 0

    + (n3) . . . + (n3) (n2)

    ,

    il faut que += 1+ (n3)= 0(n2)= 1

    ce qui donne

    = n3n2 , =

    1

    n2 .

    2. On trouve immdiatement A = n|| tandis que

    A1 = 1|| max{

    n,n

    n2}= 2|| .

    146 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    On conclut que le conditionnement K(A) en fonction de n est

    K(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 = 1

    On 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

    )donc

    L=(

    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 obtient

    L=(

    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

    )donc

    L=(

    1 02 1

    )U=(2 10 1 2

    )

    G. Faccanoni 147

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Pour 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 obtient

    L=(

    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 4

    x1x2x3

    =11

    1

    et

    1 2 3 42 5 7 13 1 1 52 2 0 3

    x1x2x3x4

    =

    1111

    et

    1 1 1 11 2 3 41 4 6 81 0 0 0

    x1x2x3x4

    =

    1111

    Donner, 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 L1

    L3L3 31 L1 1 1 1 10 1 1 1

    0 5 7 4

    L3L3 51 L2 1 1 1 10 1 1 1

    0 0 12 1

    donc

    L= 1 0 02 1 03 5 1

    U=1 1 10 1 1

    0 0 12

    Il ne reste rsoudre que le systme triangulaire

    x1+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 1

    L2L2 21 L1L3L3 31 L1L4L4 21 L1

    1 2 3 4 10 9 1 7 10 5 8 7 20 2 6 5 1

    L3L3 59 L2L4L4 29 L2

    1 2 3 4 10 9 1 7 10 0 779 289 1390 0 569 319 79

    L4L4 56/977/9 L2

    1 2 3 4 10 9 1 7 10 0 779 289 1390 0 0 1311 311

    148 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    donc

    L=

    1 0 0 02 1 0 03 59 1 02 29

    5677 1

    U=

    1 2 3 40 9 1 70 0 779 2890 0 0 1311

    Il ne reste rsoudre que le systme triangulaire

    x1+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 1

    L2L2L1L3L3L1L4L4L1

    1 1 1 1 10 3 2 3 00 3 5 7 00 1 1 1 0

    L3L3(1)L2L4L4 13 L2

    1 1 1 1 10 3 2 3 00 0 7 10 00 0 53 2 0

    L4L4 5/37 L2

    1 1 1 1 10 3 2 3 00 0 7 10 00 0 0 821 0

    donc

    L=

    1 0 0 01 1 0 01 1 1 01 13

    521 1

    U=

    1 1 1 10 3 2 30 0 7 100 0 0 821

    Il ne reste rsoudre que le systme triangulaire

    x1+x2+x3+x4 = 13x2+2x3+3x4 = 07x3+10x4 = 08

    21 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 495

    495

    )=

    {10a+b = 11495 b = 495

    ={

    a = 1b = 1.

    ? Second systme :(2 10 12

    10 1 11

    )L2L2 102 L1

    (2 10 120 49 49

    )=

    {2a+10b = 1249b =49 =

    {a = 1b = 1.

    G. Faccanoni 149

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Jacobi ? Premier systme : {10a+b = 112a+10b = 12

    {a = 11b10b = 122a10

    La matrice tant diagonale dominante stricte, la mthode converge et on a

    x(0) =(00

    ), x(1) =

    ( 11010

    12010

    )=(

    11/1012/10

    ), x(2) =

    11 121010122 1110

    10

    = (49/5049/50)

    , x(3) = 11 495010

    122 495010

    = (501/500502/500)

    .

    ? Second systme : {2a+10b = 1210a+b = 11

    {a = 1210b2b = 1110a

    La mthode ne converge pas, en effet on a

    x(0) =(00

    ), x(1) =

    ( 1202

    110)=(

    611

    ), x(2) =

    ( 1210112

    11106)=(4949)

    , x(3) =( 1210(49)

    21110 (49)

    )=(251501

    ).

    Gauss-Seidel ? Premier systme : {10a+b = 112a+10b = 12

    {a = 11b10b = 122a10

    La matrice tant diagonale dominante stricte, la mthode converge et on a

    x(0) =(00

    ), x(1) =

    ( 11010

    122 111010

    )=(

    11/1049/50

    ), x(2) =

    11 495010122 501500

    10

    = ( 501/5002499/2500)

    , x(3) = 11 2499250010

    122 250012500010

    = ( 25001/2500012499/125000)

    .

    ? Second systme : {2a+10b = 1210a+b = 11

    {a = 1210b2b = 1110a

    La mthode ne converge pas, en effet on a

    x(0) =(00

    ), x(1) =

    ( 1202

    11106)=(

    649)

    , x(2) =( 1210(49)

    21110251

    )=(

    2512499

    ), x(3) =

    ( 1210(2499)2

    1110 (12501))=(

    12501124999

    ).

    Exercice 6.14Rsoudre les systmes linaires suivants :

    x5y 7z = 32x13y 18z = 33x27y 36z = 3

    et

    x5y 7z = 62x13y 18z = 03x27y 36z =3

    et

    x5y 7z = 02x13y 18z = 33x27y 36z = 6.

    CORRECTION. Le trois systmes scrivent sous forme matricielle1 5 72 13 183 27 36

    xyz

    =33

    3

    et1 5 72 13 18

    3 27 36

    xyz

    = 603

    et1 5 72 13 18

    3 27 36

    xyz

    =03

    6

    On remarque que seul le terme source change. On calcul dabord la dcomposition LU de la matriceA :1 5 72 13 18

    3 27 36

    L2L22L1L3L33L11 5 70 3 4

    0 12 15

    L3L34L21 5 70 3 4

    0 0 1

    donc

    L=1 0 02 1 0

    3 4 1

    U=1 5 70 3 4

    0 0 1

    Pour rsoudre chaque systme linaire on rsout les systmes triangulaires Ly= b et Ux= y.

    150 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    1. Pour le premier systme on a1 0 02 1 03 4 1

    y1y2y3

    =33

    3

    = y1 = 3, y2 =3, y3 = 6;1 5 70 3 4

    0 0 1

    x1x2x3

    = 33

    6

    = x3 = 6, x2 =7, x1 = 10.2. Pour le seconde systme on a1 0 02 1 0

    3 4 1

    y1y2y3

    = 603

    = y1 = 6, y2 =12, y3 = 27;1 5 70 3 4

    0 0 1

    x1x2x3

    = 612

    27

    = x3 = 27, x2 =32, x1 = 35.3. Pour le dernier systme on a1 0 02 1 0

    3 4 1

    y1y2y3

    =03

    6

    = y1 = 0, y2 = 3, y3 =6;1 5 70 3 4

    0 0 1

    x1x2x3

    = 612

    27

    = 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 1

    1 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 n

    j=1j 6=i

    ai j xkj

    ai 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 converge

    3. Factorisation : 4 1 11 3 11 1 4

    L2L214 L1

    L3L3 14 L14 1 10 11/4 5/4

    0 5/4 15/4

    L3L3 5/411/4 L23 1 10 11/4 5/4

    0 0 35/11

    .Par consquent

    L= 1 0 01/4 1 01/4 5/11 1

    et U=4 1 10 11/4 5/4

    0 0 35/11

    .

    G. Faccanoni 151

  • 6. Systmes linaires Jeudi 31 janvier 2013

    Exercice 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 1

    LnLn 11 L1

    1 1 . . . . . . . . . 10 1

    . . .. . .

    ......

    . . . 1. . .

    ......

    . . .. . .

    . . ....

    0 . . . . . . 0 1 10 2 2 . . . 2 2

    LnLn 21 L2

    1 1 . . . . . . . . . 10 1

    . . .. . .

    ......

    . . . 1. . .

    ......

    . . .. . .

    . . ....

    0 . . . . . . 0 1 10 0 4 . . . 4 4

    [. . . ]

    LnLn 2n21 Ln1

    1 1 . . . . . . . . . 10 1

    . . .. . .

    ......

    . . . 1. . .

    ......

    . . .. . .

    . . ....

    0 . . . . . . 0 1 10 0 0 . . . 0 2n1

    par consquent on obtient les matrices

    L=

    1 0 0 . . . . . . 0

    0 1 0. . .

    ...

    0 0 1. . .

    ......

    .... . .

    . . . 0 00 0 . . . 0 1 01 2 4 . . . 2n2 1

    et U=

    1 1 1 . . . . . . 10 1 1 . . . ...0 0 1

    . . ....

    ......

    . . .. . . 1 1

    0 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 1

    1 1 . . . ... ......

    . . . 1. . .

    ......

    .... . .

    . . . 0...

    .... . . 1 1

    1 . . . . . . . . . 1 1

    L2L2+L1...LnLn+L1

    1 0 . . . . . . 0 1

    0 1. . .

    ... 2... 1 1 . . . ... ......

    .... . .

    . . . 0...

    ......

    . . . 1 20 1 . . . . . . 1 2

    L3L3+L2...LnLn+L2

    1 0 . . . . . . 0 1

    0 1. . .

    ... 2... 0 1

    . . .... 4

    ...... 1 . . . 0 ...

    ......

    .... . . 1 4

    0 0 1 . . . 1 4

    152 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    [. . . ]LnLn+Ln1

    1 0 . . . . . . 0 20

    0 1. . .

    ... 21

    .... . . 1

    . . .... 22

    .... . .

    . . . 0...

    .... . . 1 2n2

    0 . . . . . . . . . 0 2n1

    On obtient les matrices

    L=

    1 0 . . . . . . . . . 0

    1 1 . . . ......

    . . . 1. . .

    ......

    . . .. . .

    . . ....

    .... . . 1 0

    1 . . . . . . . . . 1 1

    et U=

    1 0 . . . . . . 0 20

    0 1. . .

    ... 21

    .... . . 1

    . . .... 22

    .... . .

    . . . 0...

    .... . . 1 2n2

    0 . . . . . . . . . 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 Rnn

    A=

    a1 c1 0 . . . . . . 0

    b2 a2 c2. . .

    ...

    0 b3 a3. . .

    . . ....

    .... . .

    . . .. . .

    . . . 0...

    . . . bn1 an1 cn10 . . . . . . 0 bn an

    1. 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 coefficients

    a(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 153

  • 6. Systmes linaires Jeudi 31 janvier 2013

    sous la forme

    L=

    1 0 . . . . . . . . . 0

    2 1. . .

    ...

    0 3 1. . .

    ......

    . . .. . .

    . . .. . .

    ......

    . . . n1 1 00 . . . . . . 0 n 1

    , U=

    1 1 0 . . . . . . 0

    0 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 k

    a(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 . . . . . . 0

    b2 a2 c2. . .

    ...

    0 b3 a3. . .

    . . ....

    .... . .

    . . .. . .

    . . . 0...

    . . . bn1 an1 cn10 . . . . . . 0 bn an

    L2L22L1

    2= b2a1A(1) =

    1 = a1 1 = c1 0 . . . . . . 00 2 = a22c1 2 = c2

    . . ....

    0 b3 a3. . .

    . . ....

    .... . .

    . . .. . .

    . . . 0...

    . . . bn1 an1 cn10 . . . . . . 0 bn an

    L3L33L23= b32

    A(2) =

    1 = a1 1 = c1 0 . . . . . . 00 2 = a22c1 2 = c2

    . . ....

    0 0 3 = a33c2. . .

    . . ....

    .... . .

    . . .. . .

    . . . 0...

    . . . bn1 an1 cn10 . . . . . . 0 bn an

    L4L44L3

    4= b43[ ]

    154 G. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    [ ] LnLnn Ln1n= bnn

    A(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 ncn1

    Donc i = ci pour i = 1, . . . ,n, 1 = a1 et on dfinie par rcurrence{

    i = bii1i = ai i ci1

    pour 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

    A1

    x1x2x3

    =1010

    10

    et4 1 11 4 1

    1 1 4

    A2

    x1x2x3

    =66

    6

    1. Rappelons deux proprits de convergence :? Si la matriceA est diagonale dominante stricte, les mthodes de JACOBI et de GAUSS-SEIDEL convergent.

    G. Faccanoni 155

  • 6. 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 scrivent

    A1x= b A2x= b

    Jacobi

    x(k+1)1

    x(k+1)2

    x(k+1)3

    = 14

    103x(k)2 3x(k)3103x(k)1 3x(k)3103x(k)1 3x(k)2

    x(k+1)1

    x(k+1)2

    x(k+1)3

    = 14

    6x(k)2 x(k)36x(k)1 x(k)36x(k)1 x(k)2

    Gauss-Seidel

    x(k+1)1

    x(k+1)2

    x(k+1)3

    = 14

    103x(k)2 3x(k)3103x(k+1)1 3x(k)3

    103x(k+1)1 3x(k+1)2

    x(k+1)1

    x(k+1)2

    x(k+1)3

    = 14

    6x(k)2 x(k)36x(k+1)1 x(k)3

    6x(k+1)1 x(k+1)2

    3. On obtient les suites suivantes

    3.1. JACOBI pour le systme (6.1) :

    x1

    x2

    x3

    (0)

    =

    0

    0

    0

    =

    x1

    x2

    x3

    (1)

    = 14

    103030103030103030

    =

    525252

    =

    x1

    x2

    x3

    (2)

    = 14

    103 52 3 52103 52 3 52103 52 3 52

    = 54 54 54

    =

    x1

    x2

    x3

    (3)

    = 14

    103 54 3 54103 54 3 54103 54 3 54

    =

    358

    358

    358

    3.2. GAUSS-SEIDEL pour le systme (6.1) :

    x1

    x2

    x3

    (0)

    =

    0

    0

    0

    =

    x1

    x2

    x3

    (1)

    = 14

    103030103 52 30103 52 3 58

    =

    52585

    32

    =

    x1

    x2

    x3

    (2)

    = 14

    103 58 3 532

    103 245128 3 532103 245128 3 485512

    =

    245128485512725

    2048

    =

    x1

    x2

    x3

    (3)

    =

    124858192

    357653276870565

    131072

    3.3. JACOBI pour le systme (6.2) :

    x1

    x2

    x3

    (0)

    =

    0

    0

    0

    =

    x1

    x2

    x3

    (1)

    = 14

    610106101061010

    =

    323232

    =

    x1

    x2

    x3

    (2)

    = 14

    61 32 1 3261 32 1 3261 32 1 32

    =

    343434

    =

    x1

    x2

    x3

    (3)

    = 14

    61 34 1 3461 34 1 3461 34 1 34

    =

    989898

    1. 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. Faccanoni

  • Jeudi 31 janvier 2013 6. Systmes linaires

    3.4. GAUSS-SEIDEL pour le systme (6.2) :

    x1

    x2

    x3

    (0)

    =

    0

    0

    0

    =

    x1

    x2

    x3

    (1)

    = 14

    6101061 32 1061 32 1 98

    3298

    2732

    =

    x1

    x2

    x3

    (2)

    = 14

    61 98 1 2732

    61 129128 1 273261 129128 1 531512

    =

    129128531512

    20252048

    =

    x1

    x2

    x3

    (3)

    = 14

    61 531512 1 2025204861 81398192 1 2025204861 81398192 1 3291332768

    =

    81398192

    3291332768

    131139131072

    4. 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 L1

    L3L3 34 L1 4 3 3 100 7/4 3/4 5/2

    0 3/4 7/4 5/2

    L3L3 3/47/4 L2 4 3 3 100 7/4 3/4 5/2

    0 0 10/7 10/7

    = x=11

    1

    ? Systme (6.2) :

    4 1 1 61 4 1 61 1 4 6

    L2L214 L1

    L3L3 14 L1 4 1 1 60 15/4 3/4 9/2

    0 3/4 15/4 9/2

    L3L3 3/415/4 L2 4 1 1 60 15/4 3/4 9/2

    0 0 18/5 18/5

    = x=11

    1

    G. Faccanoni 157

  • A. Python : guide de survie pour les TP

    Le 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.6

    Une 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 :

    159

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    La 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). 1

    Si 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. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    On 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 F5

    Si 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 161

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    Maintenant 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.0

    Laffectation 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 256

    ATTENTION. 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. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    Chane 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 return

    Une 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 assignment

    Listes 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 range

    On 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= 12

    0

    11

    1

    18

    2

    7

    3

    15

    4

    3

    5 6

    -6 -5 -4 -3 -2 -1

    len(fraise)

    1 >>> fraise[2:4]2 [18, 7]3 >>> fraise[2:]

    G. Faccanoni 163

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    4 [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 a

    1 >>> 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 a

    10 [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. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    27 >>> 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 code

    1 >>> 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 3

    ATTENTION. Dans Python les indices commences zro, ainsi a[0] indique la premire ligne, a[1] la deuxime etc.

    G. Faccanoni 165

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    Fonction 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 utilise

    wd pour un entierw .d f pour un nombre en notation floating pointw .de pour un nombre en notation scientifique

    o 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 9876

    Oprations arithmtiques Dans Python on a les oprations arithmtiques usuelles :

    + Addition- Soustraction* Multiplication/ Division** Exponentiation// Quotient de la division euclidienne% Reste de la division euclidienne

    166 G. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    Quelques exemples :

    1 >>> a = 1002 >>> b = 173 >>> c = a-b4 >>> a = 25 >>> c = b+a6 >>> a,b,c7 (2, 17, 19)8 >>> a = 39 >>> b = 4

    10 >>> 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 str

    Il 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%b

    Oprateurs de comparaison et connecteurs logiques Les oprateurs de comparaison renvoient True si la conditionest vrifie, False sinon. Ces oprateurs sont

    On 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 167

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    Deux 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 False

    10 >>> print (a>b) or (a==c)11 True12 >>> print (a>b) or (a==b)13 True

    A.3. Fonctions et Modules

    A.3.1. FonctionsSupposons de vouloir calculer les images de certains nombres par une fonction polynomiale donne. Si la fonction en

    question 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 values

    La 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-111

    12

    13 >>> 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. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    17 a = 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-118 return a19 print Hello20

    21 >>> f(2)22 451

    ATTENTION. 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.*y4

    5 >>> f(5)6 20.07 >>> x8 Traceback (most recent call last):9 File "", line 1, in

    10 x11 NameError: name x is not defined

    Dans 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*y5

    6 >>> print x7 6.08 >>> print f(1.)9 7.0

    10 >>> print x11 6.0

    Dans lexemple suivant la fonction derivatives approche les drives premire et seconde dune fonction f par lesformules

    f (x)' f (x+h) f (xh)2h

    , f (x)' f (x+h)2 f (x)+ f (xh)h2

    1 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,ddf

    Si 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 =, ddf

    ATTENTION. 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 169

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    5 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 an

    sum(L) Somme des lments de la suitedivmod(a,b) Renvoi quotient et reste de la division de a par b

    cmp(a,b) Renvoi

    1 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.0

    ou

    1 >>> from math import *2 >>> print pi3 3.141592653594 >>> print sin(pi)5 1.22464679915e-166 >>> print log(1.0)7 0.0

    Voici 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. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    Le 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 encore

    1 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 crire

    1 from matplotlib.pylab import *2

    3 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 171

  • A. 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 symbols

    b blue g greenr red c cyanm magenta y yellowk black w white

    TABLE 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.1

    172 G. Faccanoni

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    7 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 sign9

    10 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 zero

    La fonction valeur absolue peut tre dfinie comme suit :

    1 def val_abs(x):2 if x>0:3 return x4 else:5 return -x6

    7 val_abs(5) # Output 58 val_abs(-5) # Output 5

    A.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 173

  • A. Python : guide de survie pour les TP Jeudi 31 janvier 2013

    Voici un exemple pour crer la liste[1, 12 ,

    13 , . . .

    ]:

    1 nMax = 52 n = 13 a = [] # Create empty list4 while n

  • Jeudi 31 janvier 2013 A. Python : guide de survie pour les TP

    List-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 175

  • Chasseurs de chimres de la srie De Cape et de Crocs (AYROLES & MASBOU), tome VII, 14, 5