Vous êtes sur la page 1sur 176

L2

2012/2013
Recueil dexercices corrigs et aide-mmoire

VTSU

An aly nu se m r iq ue
A G. F NO CCA NI
- mise r -jou ire 13 Dern r 20 nvie a j i 31 Jeud

3 M3

Ce fascicule est un support au cours danalyse numrique. Il aborde : la recherche de racines dune fonction, linterpolation, lintgration numriques, lintgration dquations diffrentielles, le tting de donnes et la rsolution de systmes linaires. 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 tre envoyes ladresse gloria.faccanoni@univ-tln.fr

Gloria FACCANONI IMATH Btiment U-318 Universit du Sud Toulon-Var Avenue de luniversit 83957 LA GARDE - FRANCE

T 0033 (0)4 94 14 23 81 B gloria.faccanoni@univ-tln.fr i http://faccanoni.univ-tln.fr

Table des matires


Notations Introduction au calcul scientique 1. Rsolution dquations non linaires 1.1. tape x : localisation des zros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. tape y : construction dune suite convergente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Mthodes de dichotomie (ou bissection), de L AGRANGE (ou Regula falsi) et de la scante . . . . . . . . 1.2.2. Mthodes de point xe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 7 9
9 10 10 12

2. Interpolation
Position du problme . . . . . . . . . . . . . . . Interpolation de L AGRANGE . . . . . . . . . . . . Polynme dH ERMITE ou polynme osculateur Splines : interpolation par morceaux . . . . . . . 2.4.1. Interpolation linaire composite . . . . . 2.5. Approximation de drives . . . . . . . . . . . . 2.1. 2.2. 2.3. 2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47
47 48 51 54 54 55

3. Quadrature
3.1. Principes gnraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Exemples de formules de quadrature interpolatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
73 75

4. quations direntielles ordinaires

99

4.1. Schmas numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.2. Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5. Meilleur approximation au sens des moindres carrs.

123

5.1. Fitting par une relation afne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.2. Fitting par un polynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

6. Systmes linaires

131

6.1. Systmes mal conditionns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.2. Mthode (directe) dlimination de Gauss et factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.3. Mthodes itratives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

A. Python : guide de survie pour les TP


A.1. Obtenir Python et son diteur I DLE A.1.1. Utilisation de base dI DLE . . A.2. Notions de base de Python . . . . . A.3. Fonctions et Modules . . . . . . . . . A.3.1. Fonctions . . . . . . . . . . . A.3.2. Modules . . . . . . . . . . . . A.4. Structure conditionnelle . . . . . . . A.5. Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

159
159 159 162 168 168 170 172 173

Notations
Ensembles 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 positifs Z lensemble des entiers relatifs (positifs, ngatifs ou nuls) Z lensemble des entiers = 0 Q lensemble des nombres rationnels R lensemble des rels R lensemble des rels autres que 0 C lensemble des nombres complexes
p q,

p Z,

q Z

Intervalles
Ingalit a x b a <x <b a x <b a <x b xa x>a x b x <b |x | a avec a 0 |x | < a avec a 0 |x | a avec a 0 |x | > a avec a 0 x R Ensemble [a , b ] ]a , b [ [a , b [ ]a , b ] [a , +[ ]a , +[ ] , b ] ] , b [ [ a , a ] ] a, a[ ] , a ] [a , +[ ] , a []a , +[ ] , +[ a a a a Reprsentation graphique a b a a a a a b b a a a a b b b

Symboles utiliss dans le document


dnition thorme, corollaire, proposition proprit(s) astuce attention remarque mthode, algorithme, cas particulier exercice de base exercice exemple

Notations

Jeudi 31 janvier 2013

curiosit > < = { | ! = ssi ln loga


n i =0 a i n i =0 a i

gal par dnition strictement suprieur strictement infrieur suprieur ou gal infrieur ou gal diffrent } ensemble ensemble vide tel que appartient nappartient pas pour tout (quanticateur universel) il existe (quanticateur universel) il nexiste pas il existe un et un seul est sous-ensemble (est contenu) union densembles intersection densembles si . . . alors si et seulement si si et seulement si logarithme de base e logarithme de base a inni symbole dintgrale somme par rapport lindice i , quivaut a 0 + a 1 + + a n produit par rapport lindice i , quivaut a 0 a 1 a n n factoriel, quivaut 1 2 n g compos f symboles de drive
df dx

n! gf f ,

Conventions pour la prsentation du code


Pour lcriture du code, on utilise deux prsentations : les instructions prcdes de chevrons dans une boite grise sont saisir dans une session interactive
1 2

>>> 1 + 1 2

les instructions sans chevrons dans une boite grise sont des bouts de code crire dans un chier
1

print Coucou!

G. Faccanoni

Introduction au calcul scientique


On peut dnir le CALCUL SCIENTIFIQUE comme la discipline qui permet de reproduire sur un ordinateur un phnomne ou un processus dcrit par un modle mathmatique.
P HNOMNE PHYSIQUE , CO NOMIQUE , BIOLOGIQUE . . . Observation exprimentale Modle conceptuel M ODLE MATHMATIQUE Mise en quations : quations diffrentielles, intgrales, stochastiques. . . A NALYSE MATHMATIQUE Bien pos Bien conditionn Proprits de la solution Solutions analytiques

C ALCULS

P ROGRAMMATION Langage de programmation (C, C++, Fortran, Java, Python, Matlab, Scilab, Octave. . .) Structure des donnes Implmentation de lalgorithme Optimisation A NALYSE NUMRIQUE Mthodes de discrtisation Analyse des algorithmes (rapidit, prcision, souplesse) Estimation des erreurs

P OST P ROCESSING Visualisation Analyse des rsultats

C ALCUL SCIENTIFIQUE

Lordinateur est aujourdhui un outil incontournable pour simuler et modliser des systmes complexes, mais il faut encore savoir exprimer nos problmes (physiques, conomiques, biologiques. . .) en langage formalis des mathmatiques pures sous la forme dquations mathmatiques (diffrentielles, intgrales. . .). Nous sommes habitus rsoudre les problmes de faon analytique, alors que lordinateur ne travaille que sur des suites de nombres. On verra quil existe souvent plusieurs approches pour rsoudre un mme problme, ce qui conduit des algorithmes diffrents. Un des objectifs de ce cours est de fournir des bases rigoureuses pour dvelopper quelques algorithmes utiles dans la rsolution de problmes en mathmatique, 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 calculs de rfrence pour lesquels la seule limite est la patience de celui qui les fait. Par exemple, en uidodynamique, en laissant tourner une station de travail pendant quelques jours, les numriciens rsolvent des systmes frisant le milliard dinconnues. Lexprience montre quentre une approche numrique standard et une approche soigneusement rchie

Introduction au calcul scientique

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 passer ainsi, grce cet effort, dun calcul totalement draisonnable un calcul parfaitement banal : tout lenjeu de lanalyse numriques est l ! Cest dire limportance pour tous scientique de bien connatre ces mthodes, leurs avantages et leurs limites.

Exemple Calcul de A
Sur 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 connu depuis lantiquit (mais ce nest pas celui que les ordinateurs utilisent). Soit A un nombre rel positif dont on cherche la racine carre. Dsignons par x 0 la premire estimation de cette racine (gnralement le plus grand entier dont le carr est infrieur A ; par exemple, si A = 178, alors x 0 = 13 car 132 = 169 < 178 et 142 = 196 > 178) et par 0 lerreur associe : A = x 0 + 0 . Cherchons une approximation de 0 . On a
2 A = (x 0 + 0 )2 = x 0 + 2 x 0 0 + 2 0.

Supposons que lerreur soit petite face x 0 , ce qui permet de ngliger le terme en 2 0: A
2 x0 + 2 x 0 0 .

Remplaons lerreur 0 par un 0 , qui en est une approximation, de telle sorte que
2 A = x0 + 2 x 0 0 .

On en dduit que 0 = donc x 1 = x 0 + 0 =


2 A x0

2x 0 1 A + x0 2 x0

constitue une meilleure approximation de la racine que x 0 (sous rserve que le dveloppement soit convergent). De plus, rien ne nous empche de recommencer les calculs avec x 1 , puis x 2 , etc., jusqu ce que la prcision de la machine ne permette plus de distinguer le rsultat nal de la vritable solution. On peut donc dnir une suite, qui partir dune estimation initiale x 0 devrait en principe converger vers la solution recherche. Cette suite est x k +1 = 1 A + xk , 2 xk A. x 0 > 0.

Lalgorithme du calcul de la racine carre devient donc 1. Dmarrer avec une premire approximation x 0 > 0 de

1 A 2. chaque itration k , calculer la nouvelle approximation x k +1 = 2 xk + xk .

3. Calculer lerreur associe k +1 = 2x k +1 . k +1 4. Tant que lerreur est suprieure un seuil x, recommencer au point 2 Le tableau ci-dessous illustre quelques itrations de cet algorithme pour le cas o A = 5 : k 0 1 2 3 4 xk 2.0000000000 2.2500000000 2.2361111111 2.2360679779 2.2360679775 k 0.2360679775 0.0139320225 0.0000431336 0.0000000004 0.0000000000

A x 2

On voit que lalgorithme converge trs rapidement et permet donc destimer la racine carre dun nombre moyennant un nombre limit 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 scientiques, tout calcul passe par lexploitation de techniques de reprsentation des fonctions 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 problmes est trait dans ce polycopi ; noter la prsence dexercices corrigs en n de chaque chapitre permettant de vrier ou de consolider lassimilation des notions introduites.

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 : R R une fonction continue donne dont on veut chercher numriquement un ou plusieurs zros x , cest--dire f (x ) = 0. Les mthodes numriques pour approcher x consistent :

x localiser grossirement le (ou les) zro(s) de f en procdant des valuation qui sont souvent de type graphique ; on
note x 0 cette solution grossire ;

y construire, partir de x 0 , une suite x 1 , x 2 , x 3 , . . . telle que limk x k = x o f (x ) = 0. On dit alors que la mthode est
convergente.

Dnition Mthode itrative deux niveaux


On appelle mthode itrative deux niveaux un procd de calcul de la forme x k +1 = G (x k ), k = 0, 1, 2, . . .

dans lequel on part dune valeur donne x 0 pour calculer x 1 , puis laide de x 1 on calcul x 2 etc. La formule mme est dite formule de rcurrence. Le procd est appel convergent si x k tend vers un nombre ni lorsque k tend vers +. Il est 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 niveaux dans lesquels on part de deux valeurs donnes x 0 et x 1 pour calculer x 2 , puis laide de x 1 et x 2 on calcule x 3 etc.

Dnition Ordre de convergence


Soit p un entier positif. On dit quune mthode ( deux niveaux) convergente est dordre p sil existe une constante C telle que |x x k +1 | C |x x k |p . Si p = 1 (et C < 1) on parle de convergence linaire, si p = 2 on parle de convergence quadratique.

1.1. tape x : localisation des zros


Pour 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 an de trouver un intervalle qui contient un et un seul zro.

Thorme Thorme des valeurs intermdiaires

Formulation 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 intermdiaires 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 B OLZANO ou des zros dune fonction continue Soit 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 dont lnonc est rappel ci-dessous.

Thorme Thorme de la bijection

Soit f une fonction continue et strictement monotone sur un intervalle I de R, alors f induit une bijection de I dans f ( I ). De plus, sa bijection rciproque est continue sur I , monotone sur I et de mme sens de variation que f .

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

1.2. tape y : construction dune suite convergente


Ayant 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 (convergence locale vs globale, vitesse de convergence, etc.).

1.2.1. Mthodes de dichotomie (ou bissection), de Lagrange (ou Regula falsi ) et de la scante
Dans les mthodes de dichotomie et de L AGRANGE, chaque pas ditration on divise en deux un intervalle donn et on choisit le sous-intervalle o f change de signe. Concrtement, soit une fonction numrique strictement monotone sur un intervalle [a , b ]. On suppose que lquation f (x ) = 0 na quune et une seule solution dans cet intervalle. On se propose de dterminer cette valeur avec une prcision donne. Soit [a 0 , b 0 ] un intervalle dans lequel f (a 0 ) f (b 0 ) < 0 et soit c 0 ]a 0 , b 0 [. Si f (a 0 ) f (c 0 ) < 0, alors la racine appartient lintervalle [a 0 , c 0 ] et on reprend le procd avec a 1 = a 0 et b 1 = c 0 . Sinon, cest--dire si f (a 0 ) f (c 0 ) > 0 on pose a 1 = c 0 et b 1 = b 0 . On construit ainsi une suite dintervalles embots [a k , b k ]. Les suites a k et b k sont adjacentes et convergent vers x .

Dnition Mthodes de dichotomie et de L AGRANGE


Soit deux points a 0 et b 0 (avec a 0 < b 0 ) dimages par f de signe contraire (i.e. f (a 0 ) f (b 0 ) < 0). En partant de I 0 = [a 0 , b 0 ], les mthodes de dichotomie et de L AGRANGE (appele aussi Regula falsi) produisent une suite de sous-intervalles I k = [a k , b k ], k 0, avec I k I k 1 pour k 1 et tels que f (a k ) f (b k ) < 0. Dans la mthode de dichotomie, on dcoupe lintervalle [a k ; b k ] en deux intervalles de mme longueur, i.e. on divise [a k ; b k ] en [a k ; c k ] et [c k ; b k ] o c k est ak + bk . ck = 2 Dans la mthode de Lagrange, plutt que de diviser lintervalle [a k ; b k ] en deux intervalles de mme longueur, on dcoupe [a k ; b k ] en [a k ; c k ] et [c k ; b k ] o c k est labscisse du point dintersection de la droite passant par (a k , f (a k )) et (b k , f (b k )) et laxe des abscisses, i.e. est solution de lquation f (b k ) f ( a k ) (c a k ) + f ( a k ) = 0 bk ak qui est ck = ak bk ak a k f (b k ) b k f ( a k ) f (a k ) = . f (b k ) f ( a k ) f (b k ) f ( a k )

Dans les deux cas, pour litration suivante, on pose soit [a k +1 ; b k +1 ] = [a k ; c k ] soit [a k +1 ; b k +1 ] = [c k ; b k ] de sorte ce que f (a k +1 ) f (b k +1 ) < 0. La suite (c k )k N converge vers x puisque la longueur de ces intervalles tend vers 0 quand k tend vers +. Les algorithmes scrivent alors comme suit : D ICHOTOMIE : Require: a , b > a , , f : [a , b ] R k 0 ak a bk b ak + bk xk 2 while b k a k > or | f (x k )| > do if f (a k ) f (x k ) < 0 then a k +1 a k b k +1 x k else a k +1 x k b k +1 b k end if a k +1 + b k +1 x k +1 2 k k +1 end while L AGRANGE : Require: a , b > a , , f : [a , b ] R k 0 ak a bk b bk ak xk ak f (a k ) f (b k ) f ( a k ) while b k a k > or | f (x k )| > do if f (a k ) f (x k ) < 0 then a k +1 a k b k +1 x k else a k +1 x k b k +1 b k end if b k +1 a k +1 x k +1 a k +1 f (a k +1 ) f (b k +1 ) f (a k +1 ) k k +1 end while

10

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

Exemple
Soit f (x ) = 39 43x + 39x 2 5x 3 . On cherche a estimer x [1; 5] tel que f (x ) = 0. y D ICHOTOMIE f (5) = 2 f (x ) = 39 + (43 + (39 5x )x )x

f (3) = 1 f (2.5) = 0.3984375 1 f (2) = 0.1875 2 2.5 3 5 x

f (1) = 1 I 1 = [1; 3] I 2 = [2; 3] I 3 = [2; 2.5] y f (5) = 2 L AGRANGE

I 0 = [1; 5]

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

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

2.11 2.3 5 x

f (1) = 1 ] I 1 = [1; 2.3 ] I 2 = [2.11; 2.3

I 0 = [1; 5]

Avec la mthode de la dichotomie, les itrations sachvent la m -me tape quand |x m x | | I m | < , o est une a tolrance xe et | I m | dsigne la longueur de lintervalle I m . Clairement I k = b2 k , donc pour avoir une erreur | x m x | < , on doit prendre le plus petit m qui vrie ba . m log2 Notons que cette ingalit est gnrale : elle ne dpend pas du choix de la fonction f .

Remarque

Exemple Fond dinvestissement


Le client dune banque dpose au dbut dune anne v euros dans un fonds dinvestissement et en retire, la n 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 nal M est reli aux taux dintrt annuel moyen T par la relation
n

M =v
k =1

(1 + T )k = v

1+T (1 + T )n 1 =v (1 + T )n 1 . (1 + T ) 1 T

On en dduit que T est racine de lquation algbrique non linaire f (T ) = 0 o f (T ) = v 1+T (1 + T )n 1 M . T

tudions la fonction f : f (T ) > 0 pour tout T > 0, limT 0+ f (T ) = nv M < (n 1)v , limT + f (T ) = +, f (T ) = v2 1 + (1 + T )n (T n 1) > 0 pour tout T > 0 (comparer le graphe de 1/(1 + T )n et de nT 1)
T

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 peut mme 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 zro dans lintervalle ]0.01, 0.1[. Si on applique la mthode de la dichotomie avec = 1012 , aprs 36 itrations la mthode converge vers 0.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. Par consquent, si le seul critre darrt est le contrle de la longueur de I k , on risque de rejeter de bonnes approximations de x . En fait, cette mthode ne prend pas sufsamment en compte le comportement rel de f . Il est par exemple frappant que la mthode ne converge pas en une seule itration quand f est linaire ( moins que le zro x ne soit le milieu de lintervalle de recherche initial).

Dnition Mthode de la Scante


Il sagit dune mthode trois niveaux : approcher les zros de f se ramne calculer la limite de la la suite rcurrente x 0 donn, x 1 donn, x k x k 1 x k +1 = x k f (x k ), f (x k ) f (x k 1 ) Cette mthode a ordre
1+ 5 2 .

Soit f : R R une fonction continue et soit x [a , b ] un zro de f . Pour calculer x k +1 on prend lintersection de laxe des abscisses avec la droite passant par les points (x k , f (x k )) et (x k 1 , f (x k 1 )), i.e. on cherche x solution du systme linaire y=
f (x k ) f (x k 1 ) (x x k ) + x k x k 1

Remarque Interprtation gomtrique de la mthode de la scante

f (x k ),

y = 0, ce qui donne x = xk On reconnat la mthode de la scante. x k x k 1 f (x k ). f (x k ) f (x k 1 )

1.2.2. Mthodes de point xe


En samusant avec une calculatrice de poche ou avec le code python ci-dessous
1 2 3 4 5

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

on peut vrier quen partant de la valeur 1 et en appuyant plusieurs fois de suite sur la touche cosinus, on obtient cette suite de valeurs : x 0 = 1, x 1 = cos(x 0 ) = 0.540302305868, x 2 = cos(x 1 ) = 0.857553215846, x 3 = cos(x 2 ) = 0.654289790498, . . . x 55 = 0.739085133171, . . . x 100 = 0.739085133215 qui tend vers la valeur 0.73908513 . . . . En effet, on a par construction x k +1 = cos(x k ) pour k = 0, 1, . . . (avec x 0 = 1). Si cette suite converge, sa limite satisfait lquation cos( ) = . Pour cette raison, est appel point xe de la fonction cosinus.

12

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y b f

y
x1 x3 x5 x7 x6 x4 x2

x6 x5 x4 x3 x2 x1

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

x0

x1

x2

x 3 x 4x 5

b x

x0

x2

x 4x 6 x 5 x 3

x1

b x

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

F IGURE 1.1.: Interprtation gomtrique du thorme de point xe

Dnition Point xe

Soit : R R une fonction. Si x R est tel que (x ) = x , on dit que x est un point xe de (limage de x par est lui-mme). On peut se demander comment exploiter cette procdure pour calculer les zros dune fonction donne. Remarquons quon peut voir comme un point xe du cosinus, ou encore comme un zro de la fonction f (x ) = x cos(x ). La mthode propose fournit donc un moyen de calculer les zros de f . Prcisons ce principe : soit f : [a , b ] R la fonction dont on cherche le zro. Il est toujours possible de transformer le problme chercher x tel que f (x ) = 0 en un problme quivalent (i.e. admettant les mmes solutions) chercher x tel que x (x ) = 0. Pour que les deux problmes soient quivalent, la fonction auxiliaire : [a , b ] R doit tre choisie de manire ce que (x ) = x si et seulement si f (x ) = 0. Clairement, il existe une innit de manires pour oprer cette transformation. Par exemple, on peut poser (x ) = x f (x ) ou plus gnralement (x ) = x + f (x ) avec R quelconque. On peut mme remplacer par une fonction de x pour autant quelle ne sannule pas.

Dnition Mthode de point xe

Supposons que x R soit un zro de f ou, de faon quivalente, un point xe de . Approcher les zros de f se ramne donc au problme de la dtermination des points xes de la fonction , ce qui se fait en construisant la suite rcurrente x k +1 = (x k ), x 0 donn. On utilise alors lalgorithme itratif suivant : Require: x 0 , , : [a , b ] R k 0 while |x k +1 x k | > do x k +1 (x k ) k k +1 end while Naturellement toute mthode de point xe nest pas forcement convergente. Par contre, si elle converge, cest--dire si la suite x k a une limite que nous notons x , et si est continue, alors cette limite est ncessairement un point xe de puisque x = lim x k +1 = lim (x k ) = lim x k = (x ).
k k k

On a le rsultat suivant : Thorme Convergence (globale) des itrations de point xe Considrons une fonction : [a ; b ] R. On se donne x 0 [a ; b ] et on considre la suite x k +1 = (x k ) pour k 0. Si les deux 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 xe x dans [a , b ] et la suite x k +1 = (x k ) converge vers x pour tout choix de x 0 dans [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 ( y k )k [a , b ]

qui converge vers un lment x de [a , b ], alors nous avons |(x ) ( y n )| K |x y n | et par suite limk ( y k ) = (x ). et, grce la condition de stabilit, on a g (a ) = (a ) a 0 et g (b ) = (b ) b 0. En appliquant le thorme des valeurs intermdiaires, on en dduit que g a au moins un zro dans [a , b ], i.e. a au moins un point xe dans [a , b ].

Existence Commenons par prouver lexistence dun point xe de . La fonction g (x ) = (x ) x est continue dans [a , b ]

Unicit Lunicit du point xe dcoule de la condition de contraction stricte. En effet, si on avait deux points xes distincts
x 1 et x 2 , alors | x 1 x 2 | = | ( x 1 ) ( x 2 )| K | x 1 x 2 | < | x 1 x 2 | ce qui est impossible.

Convergence Prouvons prsent que la suite x k converge vers lunique point xe x quand k tend vers + pour toute
donne initiale x 0 [a ; b ]. On a 0 |x k +1 x | = |(x k ) (x )| K |x k x | o K < 1 est la constante de contraction. En itrant k + 1 fois cette relation on obtient |x k +1 x | K k +1 |x 0 x |, i.e., pour tout k 0 |x k +1 x | K k +1 . |x 0 x |

En passant la limite quand k tend vers + on obtient |x k +1 x | tend vers zro.

Remarque
Si est de classe C 1 ([a , b ]) et si | (x )| < 1 pour tout x [a , b ], alors la condition de contraction stricte est satisfaite. De plus, on a x k +1 x lim = (x ). k x k x Ce thorme assure la convergence, avec un ordre 1, de la suite (x k )k N vers le point xe x pour tout choix dune valeur initiale x 0 [a ; b ]. Il constitue donc un exemple de rsultat de convergence globale. Mais en pratique, il est souvent difcile de dterminer a priori lintervalle [a ; b ] ; dans ce cas, le rsultat de convergence locale suivant peut tre utile.

Thorme d O STROWSKI ou de convergence (locale) des itrations de point xe

Soit x un point xe dune fonction continue et diffrentiable dans un intervalle [a ; b ] contenant x . Si | (x )| < 1, alors il existe un intervalle [c ; d ] [a ; b ] tel que la suite (x k )k converge vers x pour tout x 0 [c ; d ]. De plus, si 0 < (x ) < 1 la suite converge de faon monotone, cest--dire, lerreur x k x garde un signe constant quand k varie ; si 1 < (x ) < 0 la suite converge de faon oscillante, cest--dire, lerreur x k x change de signe quand k varie. Soit x un point xe dune fonction continue et diffrentiable dans un intervalle [a ; b ] contenant x et soit x k +1 = (x k ) la suite de point xe associe. Alors, si | (x )| > 1 la suite diverge ; plus prcisment, si (x ) > 1 la suite diverge de faon monotone, tandis que pour (x ) < 1 elle diverge en oscillant ; si | (x )| = 1, on ne peut en gnral tirer aucune conclusion : selon le problme considr, il peut y avoir convergence ou divergence. Par exemple, soit (x ) = x x 3 qui admet x = 0 comme point xe. On a (x ) = 1 et x k x pour tout x 0 [1; 1] car si x 0 = 1 alors x k = x pour tout k 1, si x 0 ] 1, 1[ alors x k ] 1, 1[ pour tout k 1 et la suite est monotone ; considrons maintenant (x ) = x + x 3 qui admet aussi x = 0 comme point xe. nouveau (x ) = 1 mais dans ce cas la suite diverge pour tout choix de x 0 = 0.

Remarque

Exemple
La fonction (x ) = cos(x ) vrie toutes les hypothses du thorme dO STROWSKI. En effet, | (x )| = | sin(x )| 0.67 < 1, donc il existe par continuit un intervalle [c , d ] qui contient x tel que | (x )| < 1 pour x [c , d ]. La fonction (x ) = x 2 1 possde deux points xes x 1 = (1 + 5)/2 et x 2 = (1 5)/2 mais ne vrie lhypothse pour aucun deux puisque |(x 1,2 )| = |(1 5)/2| > 1. Les itrations de point xe ne convergent dailleurs pas.

14

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

En gnral, la mthode de point xe ne converge pas pour des valeurs arbitraires de x 0 , mais seulement pour des valeurs sufsamment proches de x , cest--dire appartenant un certain voisinage de x . Au premier abord, cette condition semble inutilisable : elle signie 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 x 0 en effectuant quelques itrations de la mthode de dichotomie ou en examinant le graphe de f . Si x 0 est convenablement choisi alors la mthode de point xe converge.

Proposition Calcul de lordre de convergence dune mthode de point xe


Soit x un point xe dune fonction C p +1 pour un entier p 1 dans un intervalle [a ; b ] contenant x . Si (i ) (x ) = 0 pour 1 i p et (p +1) (x ) = 0, alors la mthode de point xe associe la fonction ditration est dordre p + 1.

Mthodes de point xe particulirement connues

Soit f : [a , b ] R une fonction continue (continment drivable pour la mthode de la corde 2 et la mthode de N EWTON ) et soit x un zro de f . Supposons que lon connaisse une valeur x 0 proche de x . Approcher les zros de f se ramne au problme de la dtermination des points xes de la fonction , ce qui se fait en construisant la suite rcurrente x k +1 = (x k ), x 0 donn. Considrons les fonctions suivantes qui dnissent des mthodes clbres : Mthode de la Corde 1 : Mthode de la Corde 2 : Mthode de Newton : ba f (x k ) f (b ) f ( a ) f (x k ) ( x k ) = x k f (x 0 ) ( x k ) = x k ( x k ) = x k f (x k ) f (x k ) ordre : 1 ordre : 1 ordre : 2 1 si x est une racine simple sinon

Preuve de lordre de convergence de la mthode de Newton


Soit la mthode de Newton pour le calcul de point xe u n +1 = (u n ) en posant zro de f . Cette mthode peut tre mise sous la forme dune itration de ( x ) = x Si f ( ) = 0 (i.e. si est racine simple), on trouve (x ) = 1 (x ) = ( f (x ))2 f (x ) f (x ) f (x ) f (x ) = , ( f (x ))2 ( f (x ))2 ( ) = 0, ( )= f ( ) . f ( ) f (x ) . f (x )

f (x ) f (x ) f (x ) f (x )( f (x ))2 + 2 , f (x ) ( f (x ))2 ( f (x ))3

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 )m h (x ) o h est une fonction telle que h ( ) = 0. On a alors ( x ) = 1 (x ) = ( x )h ( x ) f (x ) = 1 , f (x ) mh (x ) + (x )h (x ) mh (x ) + (x )h (x )
2

h (x ) m (m 1)h (x ) + 2(x )h (x ) + (x )2 h (x )

( ) = 1

1 . m

Si la valeur de m est connue a priori, on peut retrouver la convergence quadratique en modiant la mthode de Newton comme suit : f (x ) ( x ) = x m . f (x )

Remarque Interprtation gomtrique de la mthode de N EWTON et des mthodes de la corde

Soit f : R R une fonction continment drivable et soit x un zro simple de f , cest--dire f (x ) = 0 et f (x ) = 0. Supposons que lon connaisse une valeur x k proche de x . Pour calculer x k +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 (x k , f (x k )), i.e. on cherche x solution du systme linaire y = f (x k )(x x k ) + f (x k ), y = 0. On obtient x = xk ce qui correspond la mthode de N EWTON. y f y = f (x 1 )(x x 1 ) + f (x 1 ) f (x k ) f (x k )

x x2

x1

x0

y = f (x 0 )(x x 0 ) + f (x 0 ) Soit f : R R une fonction continue et soit x [a , b ] un zro de f . Cette fois-ci, pour calculer x k +1 on prend lintersection de laxe des abscisses avec la droite passant par le point (x k , f (x k )) 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 ) (x x k ) + b a

f (x k ),

y = 0, ce qui donne x = xk ba f (x k ). f (b ) f ( a )

Il sagit de la mthode de la corde 1. Cette mthode permet dviter qu chaque itration on ait valuer f (x k ) car on f (b ) f (a ) remplace f (x k ) par b a . y f

y= y=

f (b ) f (a ) (x x 0 ) + b a

f (x 0 )

f (b ) f (a ) (x x 1 ) + b a

f (x 1 )

x 1x 2 x x0

b x

16

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

Une variante de la mthode de la corde consiste calculer x k +1 comme lintersection entre laxe des abscisses et la droite passant par le point (x k , f (x k )) et parallle la droite tangente au graphe de f passant par le point (x 0 , f (x 0 )), i.e. on cherche x solution du systme linaire y = f (x 0 )(x x k ) + f (x k ), y = 0, ce qui donne x = xk Dans cette variante on remplace f (x k ) par f (x 0 ). y f y = f (x 0 )(x x 0 ) + f (x 0 ) f (x k ) f (x 0 )

x x2 x1 x0 x

y = f (x 0 )(x x 1 ) + f (x 1 )

Exemple
On se trouve en possession dune calculatrice qui ne sait effectuer que les oprations addition, soustraction et multiplication. Lorsque a > 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 Selon la formule de N EWTON on a
2 x k +1 = (1 + a )x k + x k ,

1 a x

une rcurrence qui ne requiert pas de divisions. Pour a = 7 et partant de x 0 = 0.2 par exemple, on trouve x 1 = 0,12, x 2 = 0,139 2,x 3 = 0,142 763 520 0, x 4 = 0,142 857 081 5, etc. Cette suite converge vers 1/7 0,142 857 142 857.

Exemple Comparaison des mthodes de Newton pour diffrentes formulation de la fonction initiale
Dans R + on veut rsoudre lquation x = e 1/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 + R x x e 1/x En utilisant la mthode de Newton on trouve la formule itrative x k +1 = x k 2. Si on pose y = 1/x , alors on a lquivalence
1/x k f (x k ) x e 1/xk 2 xk e = x k k 1/x = x k x k . k f (x k ) x 2 + e 1/xk 1+ e
2 xk

x = e 1/x

y = e y ,

G. Faccanoni

17

1. Rsolution dquations non linaires


donc la solution x de lquation (1.1) est la rciproque du zro de la fonction g : R + R y 1 ye y En utilisant la mthode de Newton on trouve la formule itrative y k +1 = y k et x k = 1/ y k . 3. Lquation (1.1) est encore quivalente chercher le zro de la fonction h : R + R x 1 x ln(x ) En utilisant la mthode de Newton on trouve la formule itrative x k +1 = x k h (x k ) 1 x k ln(x k ) 1 + xk = xk + = . h (x k ) 1 + ln(x k ) 1 + ln(x k ) 1 yk e yk e yk yk g (yk ) = yk = yk + y g (yk ) (1 + y k )e k 1 + yk

Jeudi 31 janvier 2013

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 x 0 = 1.8 on trouve les suites suivantes : Formule 1 1,762 878 141 2 1.7632228030 1.7632228344 Formule 2 1.7418849724 1.7751466845 1.7564077294 Formule 3 1.7634610883 1.7632228446 1.7632228344

x1 = x2 = x3 = La solution est x 1,763 222 834 35.

Attention
noter que mme si la mthode de N EWTON permet en gnral dobtenir une convergence quadratique, un mauvais choix de la valeur initiale peut provoquer la divergence de cette mthode (notamment si la courbe reprsentative de f prsente au point dabscisse x 0 un tangente peu prs horizontale). Do limportance dune tude pralable soigne de la fonction f (cette tude est dailleurs ncessaire pour toute mthode de point xe).

Critres darrt
Supposons que (x n )n soit une suite qui converge vers x zro de la fonction f . Nous avons le choix entre deux types de critres darrt pour interrompre le processus itratif dapproximation de x : ceux bass sur le rsidu et ceux bass sur lincrment. Nous dsignerons par une tolrance xe pour le calcul approch de x et par e n = x x n lerreur absolue. Nous supposerons de plus f continment diffrentiable dans un voisinage de la racine. Contrle du rsidu : les itrations sachvent ds que | f (x n )| < . Il y a des situations pour lesquelles ce test savre trop restrictif ou, au contraire, trop optimiste. si | f (x )| 1 alors |e n | : le test donne donc une indication satisfaisante de lerreur ; si | f (x )| 1, le test nest pas bien adapt car |e n | peut tre assez grand par rapport ; si enn | f (x )| 1 alors |e n | et le test est trop restrictif. Dans lexemple prcdent f (x ) = 2 2 1 : le test est trop restrictif (comparer la colonne | f (x n )| la colonne |x x n |).

Contrle de lincrment : les itrations sachvent ds que |x n +1 x n | < . Soit (x n )n la suite produite par la mthode de point xe x n +1 = (x n ). Comme x = (x ) et x n +1 = (x n ), on obtient par un dveloppement au premier ordre e n +1 = x x n +1 = (x ) (x n ) = (n )(x x n ) = (n )e n , n I x , x n I x ,xn tant lintervalle dextrmits x et x k . En utilisant lidentit e n = (x x n +1 ) + (x n +1 x n ) = e n +1 + (x n +1 x n ) = (n )e n + (x n +1 x n ), on en dduit que en = x n +1 x n . 1 (n )

Par consquent, ce critre fournit un estimateur derreur satisfaisant si (x ) 0 dans un voisinage de x . Cest le cas notamment des mthodes dordre 2, dont la mthode de Newton. Cette estimation devient dautant moins bonne que sapproche de 1.

18

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y f

f (x k ) f x ek xk x x ek xk f (x k ) x

F IGURE 1.2.: Deux situations pour lesquelles le rsidu e k = x k x est un mauvais estimateur derreur : | f (x )| >> 1 ( gauche), | f (x )| << 1 ( droite), pour x dans un voisinage de x .

Conclusion

1. Les mthodes pour le calcul des zros dune fonction f sont gnralement itratives ;

2. la mthode de dichotomie permet le calcul dun zro dune fonction f en construisant une suite dintervalles dont la longueur est divise par deux chaque itration. Cette mthode est convergente ds que f est continue sur lintervalle initial et a des signes opposs aux extrmits de cet intervalle ; 3. la mthode de N EWTON permet le calcul dun zro x de f en faisant appel aux valeurs de f et de sa drive. Une condition ncessaire de convergence est que la donne initiale appartienne un certain voisinage (assez petit) de x ; 4. la convergence de la mthode de N EWTON nest quadratique que quand x est un zro simple de f , autrement elle est linaire ; 5. une valeur x telle que (x ) = x est appele point xe de la fonction . Pour la calculer, on utilise des mthodes itratives de la forme x k +1 = (x k ), appeles itrations de point xe ou mthode du point xe ; 6. la mthode du point xe converge sous des conditions portant sur la fonction ditration et sa drive premire. La convergence est typiquement linaire, mais devient quadratique quand (x ) = 0 ; 7. il est possible dutiliser des itrations de point xe pour calculer les zros dune fonction f .

Ce quon na pas dit


1. La mthode de N EWTON peut tre tendue au cas dun systme dquations non linaires ; 2. pour toute mthode de point xe, non ncessairement convergente, il est toujours possible de construire une nouvelle suite en utilisant la mthode dA ITKEN qui converge en gnral plus vite ; 3. si f est une fonction polynomiale, des mthodes spciques ont t tudies (on peut citer, outre la mthode de N EWTON -H RNER, les mthodes bases sur les suites de S TURM, les mthodes de M LLER et de B AIRSTOW ; une autre technique consiste voir les zros dun polynme comme les valeurs propres dune matrice particulire, appele matrice compagnon, et utiliser des algorithmes de recherche de valeurs propres) ; 4. les mthodes les plus sophistiques pour le calcul des zros dune fonction combinent diffrents algorithmes.

G. Faccanoni

19

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

dichotomie, 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 sont les extrmits de lintervalle de recherche pour les mthodes de dichotomie et de L AGRANGE, x_init est la donne initiale pour les mthodes de N EWTON et de point xe, maxITER est le nombre maximal ditrations et tol est la tolrance. Elles
renvoient Mthodes numriques.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

/////////////

Codes Python

////////////

#!/usr/bin/python #-*- coding: Utf-8 -*import math, sys def dichotomie(f,a,b,tol,maxITER): fa = f(a) if abs(fa)<=tol: return a fb = f(b) if abs(fb)<=tol: return b if fa*fb > 0.0: print "La racine nest pas encadree" sys.exit(0) n = int(math.ceil(math.log(abs(b-a)/tol)/math.log(2.0))) for k in range(min(n+1,maxITER)): c = (a+b)*0.5 fc = f(c) if fc == 0.0: return c if fc*fb < 0.0: a = c fa = fc else: b = c fb = fc return (a+b)*0.5 def lagrange(f,a,b,tol,maxITER): fa = f(a) if abs(fa)<=tol: return a fb = f(b) if abs(fb)<=tol: return b if fa*fb > 0.0: print "La racine nest pas encadree" sys.exit(0) k = 0 while ( ((abs(b-a)>tol) or (abs(fc)>tol)) and (k<maxITER) ): k += 1 c = a-fa*(b-a)/(fb-fa) fc = f(c) if fc == 0.0: return c if fc*fb < 0.0: a = c fa = fc else: b = c fb = fc return a-fa*(b-a)/(fb-fa) def newton(f,x_init,tol,maxITER): k = 0

20

G. Faccanoni

Jeudi 31 janvier 2013


x = x_init fx = f(x) h = tol dfx = (f(x+h)-fx)/h # calcul approche de f(x) while ( (abs(fx)>tol) and (k<maxITER) ): x = x - fx/dfx fx = f(x) dfx = (f(x+h)-fx)/h k += 1 if k==maxITER: print "Pas de convergence" else: return x

1. Rsolution dquations non linaires

57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

def point_fix(f,x_init,tol,maxITER): k = 0 x = x_init while ( (abs(phi(x)-x)>tol) and (k<maxITER) ): x = phi(x) k += 1 if k==maxITER: print "Pas de convergence" else: return x

Exemple dutilisation
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

# CHOIX DU CAS TEST exemple = 2 # DEFINITION DU CAS TEST if exemple==1 : tol = 1.0e-9 maxITER = 100 def f(x): return (x+1)*(x-2) def phi(x): return x**2-2 elif exemple==2 : tol = 1.0e-9 maxITER = 100 def f(x): return x**2-2 def phi(x): return x**2+x-2 else: print "Cas test non defini" sys.exit(0)

108

109 110 111

112

# CALCUL a = -3. b = 0. print "A) Zero calcule ,b,tol,maxITER) print "B) Zero calcule tol,maxITER) a = 0. b = 3. print "C) Zero calcule ,b,tol,maxITER) print "D) Zero calcule tol,maxITER)

par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a par la methode de Lagrange dans lintervalle [", a, ",", b,"] : ", lagrange(f,a,b,

par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a par la methode de Lagrange dans lintervalle [", a, ",", b,"] : ", lagrange(f,a,b,

113 114

G. Faccanoni

21

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

115 116

117

x_init = 0. print "E) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol ,maxITER) 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) x_init = 1. print "G) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol ,maxITER) 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)

118 119 120

121

122 123 124

125 126 127

128 129

# Dans python il existe un module: from scipy.optimize import x_init = 0. print "** Zero calcule par ) x_init = 1. print "** Zero calcule par )

module qui implement deja ces methodes, comparons nos resultats avec ceux du fsolve le module scipy.optimize a partir du point x_0 =",x_init," : ", fsolve(f,x_init

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


Exercice 1.1

Exercices
f (x ) = x 3 4x 8.95



Dcrire les mthodes de la dichotomie et de L AGRANGE et les utiliser pour calculer le zro de la fonction

dans lintervalle [2; 3] avec une prcision de 102 .

C ORRECTION . En partant de I 0 = [a , b ], les mthodes de la dichotomie et de L AGRANGE produisent une suite de sousintervalles I k = [a k , b k ], k 0, avec I k I k 1 , k 1, et tels que f (a k ) f (b k ) < 0. Dans notre cas on a k 0 ak 2 bk 3 while |b k a k | > 0.01 do x k g (a k , b k ) k k +1 3 3 if (a k 4a k 8.95)(x k 4x k 8.95) < 0 then a k +1 a k b k +1 x k else a k +1 x k b k +1 b k end if end while avec g (a k , b k ) =
a k +b k 2 a k f (b k )b k f (a k ) f (b k ) f (a k )

pour la mthode de la dichotomie, pour la mthode de la L AGRANGE.

k 0 1 2 3 4 5 6 k 0 1 2 3 4 5 6

ak 2.000000 2.500000 2.500000 2.625000 2.687500 2.687500 2.703125 ak 2.000000 2.596666667 2.690262642 2.702092263 2.703541518 2.703718378 2.703739951

xk 2.5000000 2.7500000 2.6250000 2.6875000 2.7187500 2.7031250 2.7109375 xk 2.596666667 2.690262642 2.702092263 2.703541518 2.703718378 2.703739951 2.703742582

Dichotomie signe de f (a k ) L AGRANGE bk signe de f (a k ) 3.00000 3.00000 3.00000 3.00000 3.00000 3.00000 3.00000 bk 3.00000 3.00000 2.75000 2.75000 2.75000 2.71875 2.71875

signe de f (x k ) + + + signe de f (x k )

signe de f (b k ) + + + + + + + signe de f (b k ) + + + + + + +

Exercice 1.2
Dterminer la suite des premiers 3 itrs des mthodes de dichotomie dans lintervalle [1, 3] et de Newton avec x 0 = 2 pour lapproximation du zro de la fonction f (x ) = x 2 2. Combien de pas de dichotomie doit-on effectuer pour amliorer dun ordre de grandeur la prcision de lapproximation de la racine ?

C ORRECTION . On cherche les zros de la fonction f (x ) = x 2 2 : Mthode de la dichotomie : en partant de I 0 = [a , b ], la mthode de la dichotomie produit une suite de sous-intervalles I k = [a k , b k ] avec I k +1 I k et tels que f (a k ) f (b k ) < 0. Plus prcisment b0 on pose a 0 = a , b 0 = b , x 0 = a0 + 2 ,

G. Faccanoni

23

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

y
7

f (x )

y f (x )

1 4 7 16 1

5 4 3 2 2 3

x
I0

17 12 3 2 2

I2 I3 I4

I1

(a) Mthode de la dichotomie.

(b) Mthode de Newton.

F IGURE 1.3.: Approximation du zro de la fonction f (x ) = x 2 2.

pour k 0 si f (a k ) f (x k ) < 0 on pose a k +1 = a k , b k +1 = x k sinon on pose a k +1 = x k , b k +1 = b k a +b et on pose x k +1 = k +1 2 k +1 . Voir la gure 1.3a. Mthode de Newton : x2 2 1 f (x k ) 1 = xk + . x k +1 = x k = xk k f (x k ) 2x k 2 xk Voir la gure 1.3b. Donc on a le tableau suivant x0 Dichotomie Newton 2 2
3 2 3 2

x1 = 1,5 = 1,5
5 4 17 12

x2 = 1,25 = 1,416
17 24 11 8

x3 = 1,375 1,4142156

+ 12 17

On rappelle quavec la mthode de la dichotomie, les itration sachvent la m -me tape quand |x m x | | I m | < , o a est une tolrance xe et | I m | dsigne la longueur de lintervalle I m . Clairement I k = b2 k , donc pour avoir | x m x | < on doit prendre ba m log2 . Amliorer dun ordre de grandeur la prcision de lapproximation de la racine signie avoir |x k x | = donc on doit effectuer k j = log2 (10) |x j x | 10

3,3 itrations de dichotomie.

Exercice 1.3
1. Donner la suite dnissant la mthode de Newton pour la recherche dun zro de fonction. Justier lexpression de 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

C ORRECTION . 1. Supposons f C 1 et f (x ) = 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 x k y (x ) = f (x k ) + f (x ) (x x k ) et en faisant comme si x k +1 vriait y (x k +1 ) = 0, on obtient x k +1 = x k f (x k ) . f (x k )

tant donn une valeur initiale x (0) , cette formule permet de construire une suite x k . 2. Algorithmes pour une convergence = 106 : Require: x 0 , x f (x ) while |x k +1 x k | > 106 do f (x ) x k +1 x k f (xk ) k end while 3. La relation prcdent peut tre mise sous la forme dune itration de point xe x k +1 = g (x k ) avec g (x ) = x f (x ) . f (x )
f (x ) f (x )

Si x est racine simple, cest--dire si f (x ) = 0, on trouve g (x ) = 0 et g (x ) =


1 m

: la mthode de Newton est donc

dordre 2. Si la racine x est de multiplicit m > 1, alors g (x ) = 1 et la mthode nest que dordre 1. Si la valeur de m est connue priori, on peut retrouver la convergence quadratique de la mthode de Newton en modiant la mthode comme suit : f (x k ) . x k +1 = x k m f (x k )

Exercice 1.4
On veut calculer le zro de la fonction f (x ) = x 2 2 dans lintervalle [0; 2]. 1. On applique la mthode de L AGRANGE : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera au plus petit k qui vrie | f (x k )| < 104 ). k 0 1 . . . ak 0.00000 xk 1.00000 bk 2.00000 signe de f (a k ) f (x k ) -1.00000 signe de f (b k ) + | x k 2| 0.41421

2. On applique la mthode de N EWTON : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera au plus petit k qui vrie | f (x k )| < 104 ). Le point de dpart x 0 est donn. k 0 1 . . . C ORRECTION . 1. En partant de I 0 = [a , b ], la mthode de L AGRANGE produit une suite de sous-intervalles I k = [a k , b k ], k 0, avec I k I k 1 , k 1, et tels que f (a k ) f (b k ) < 0. Dans notre cas on a k 0 ak 0 bk 2 xk ak 2 while |x k 2| > 0.0001 do xk xk 1.00000 f (x k ) | x k 2|

a k b k +2 a k +b k 2 2 if (a k 2)(x k 2) < 0 then a k +1 a k

G. Faccanoni

25

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

b k +1 x k else a k +1 x k b k +1 b k end if k k +1 end while k ak xk 0 0.00000 1.00000 1 1.00000 1.33333 2 1.33333 1.40000 3 1.40000 1.41176 4 1.41176 1.41379 5 1.41379 1.41414 6 1.41414 1.41420

bk 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000

signe de f (a k )

| f ( x k )| |-1.00000|>0.0001 |-0.22222|>0.0001 |-0.04000|>0.0001 |-0.00692|>0.0001 |-0.00119|>0.0001 |-0.00020|>0.0001 |-0.00004|<0.0001

signe de f (b k ) + + + + + + +
f (x ) f (x )

| x k 2| 0.41421 0.08088 0.01421 0.00245 0.00042 0.00007 0.00001

2. La mthode de Newton est une mthode de point xe avec fonction ditration (x ) = x rithme suivant : k 0 x k 1.00000 2 while |x k 2| > 104 do x x k +1 2k + x1 k k k +1 end while k 0 1 2 3 xk 1.00000 1.50000 1.41667 1.41422 | f ( x k )| |-1.00000|>0.0001 |0.25000|>0.0001 |0.00695|>0.0001 |0.00002|<0.0001

ce qui donne lalgo-

| x k 2| 0.41421 0.08579 0.00246 0.00001

Exercice 1.5
Pour calculer les racines de la fonction f (x ) = x 3 x 2 + 8x 8 on utilise 4 mthodes de point xe diffrentes dcrites par les fonctions ditration suivantes : 1 ( x ) = x 3 + x 2 7 x + 8 2 ( x ) = 8 x3 8x 3 ( x ) = 1 3 1 2 1 4 x + x + x+ 10 10 5 5 4 ( x ) = 2x 3 x 2 + 8 3x 2 2x + 8

Dans le tableau suivant sont reportes les suites des itres obtenues par ces quatre mthodes. Mthode A x0 x1 x2 x3 x4 x5 x6 0.5000000000000000 0.9125000000000001 0.9897857421875000 0.9989578145726552 0.9998955643403695 0.9999895542527895 0.9999989554034564 Mthode B 0.500000000000000 1.032258064516129 1.000235245684712 1.000000012299503 1.000000000000000 1.000000000000000 1.000000000000000 Mthode C 0.5000000000000000 4.625000000000000 101.9160156250000 1.069697123778202 106 1.224001861234915 1018 1.833775789385161 1054 6.166499545700052 10162 Mthode D 0.5000000000000000 1.050000000000000 0.9845143884892086 1.004312677086027 0.9987590594698483 1.000353832012369 0.9998988463640411

x Montrer que = 1 est lunique racine relle de f . y Associer chaque mthode sa fonction ditration (justier chaque rponse).
C ORRECTION . Les fonctions i sont de classe C au voisinage de . De plus, on remarque que f (x ) = (x 1)(x 2 + 8), donc lunique racine relle de f est = 1. On sait que si |i ( )| < 1, alors il existe un intervalle [c ; d ] tel que la suite (x k )k converge vers pour tout x 0 [c ; d ] ; plus prcisment, si 0 < i ( ) < 1 la suite converge de faon monotone, cest--dire, lerreur x k garde un signe constant quand k varie, tandis que si 1 < i ( ) < 0 la suite converge de faon oscillante, cest--dire, lerreur x k change de signe quand k varie ; si |i ( )| > 1 la suite diverge ; plus prcisment, si i ( ) > 1 la suite diverge de faon monotone, tandis que pour i ( ) < 1 elle diverge en oscillant ;

26

G. Faccanoni

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 convergence ou divergence. (j) (p +1) Enn, si i ( ) = 0 pour 1 j p et i ( ) = 0, alors la mthode de point xe associe la fonction ditration i est dordre p + 1. Calculons donc i ( ) pour i = 1, 2, 3, 4 : 1. 1 (x ) = 3x 2 + 2x 7 et 1 (1) = 8 : la suite diverge en oscillant (colonne C) ; 2. 2 (x ) =
3x 3 (8x )+(8x 3 ) (8x )2

et 2 (1) = 14 49 : la suite converge de faon oscillante (colonne D) ;


4 10

1 1 3 2 3. 3 (x ) = 10 x + x + et 3 (1) = 5 5 4. 4 (x ) =

: la suite converge de faon monotone (colonne A ou B) ; et 4 (1) = 0 : la suite converge lordre au moins 2 (colonne B).

(6x 2 2x )(3x 2 2x +8)(2x 3 x 2 +8)(6x 2) (3x 2 2x +8)2

Exercice 1.6
Entre deux murs (verticaux) parallles, on place deux chelles en les croisant. La premire fait 3 m de long, la seconde 2 m. On constate quelles se croisent une hauteur de 1 m. Quelle est la distance entre les deux murs ?

C ORRECTION . Avec un peu de trigonomtrie, on obtient une mise en quation de cette distance d sous la forme : d = 1 1 1 2 sin() = 3 sin() et 2 cos( + 1 2 = 1. 2 ) + 3 cos() = 1. Il reste rsoudre
4d 9d

Exercice 1.7
Soit la fonction f (x ) = cosh(x ) + cos(x ) . Pour = 1, 2, 3 trouver (graphiquement) un intervalle qui contient le zro de f . Calculer ce dernier par la mthode de dichotomie avec une tolrance de 1010 . Utiliser ensuite la mthode de Newton. Pourquoi cette mthode nest-elle pas prcise quand = 2 ?

C ORRECTION .

tude de f . On se rappelle que cosh(x ) = e

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 = 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 f 2 (x ) = f 2 a (x ) = f 2 (x ) = f 2 (x ) = 0 et (I V ) f2 (x ) = 0), pour = 3, f 3 admet deux zros distincts, un dans lintervalle ] 3, 1[ et lautre dans ]1, 3[.
2
y y = f 1 (x ) y = f 2 (x ) y = f 3 (x )

x +e x

et sinh(x ) =

e x e x 2

Mthode de la dichotomie. Dans le cas = 2, la mthode de dichotomie ne peut pas tre utilise car il est impossible
de trouver un intervalle ]a , b [ sur lequel f 2 (a ) f 2 (b ) < 0. Pour = 3, en partant de [a , b ] = [3, 1], la mthode de dichotomie converge en 34 itrations vers la valeur x = 1.85792082914850 avec f 3 (x ) 3.6 1012 . De mme, en prenant [a , b ] = [1, 3], la mthode de dichotomie converge en 34 itrations vers la valeur x = 1.85792082914850 avec f 3 (x ) 3.6877 1012 .

Mthode de Newton. Considrons le cas o = 2. En partant de la donne initiale x 0 = 1, la mthode de N EWTON

converge vers la valeur x = 1.4961 104 en 31 itrations avec = 1010 tandis que la racine exacte de f 2 est 0. Cet cart est d au fait que f 2 est quasiment constante au voisinage de sa racine, donc le problme de recherche du zro est mal conditionn. La mthode converge vers la mme solution et avec le mme nombre ditrations mme si on prend gal au zro machine. Considrons le cas = 3. La mthode de Newton avec gal au zro machine converge vers 1.85792082915020 aprs 9 itrations en partant de x 0 = 1, alors que si x 0 = 1, elle converge aprs 9 itrations vers 1.85792082915020.

G. Faccanoni

27

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

Voici les instructions :


130 131 132 133 134 135 136 137 138 139 140

def f(x): return math.cosh(x)+math.cos(x)-gamma maxITER = 100 gamma = 3 tol = 1.0e-15 a = -3. b = -1. x_init = -1. print "Zero calcule tol,maxITER) print "Zero calcule maxITER) a = 1. b = 3. x_init = 1. print "Zero calcule tol,maxITER) print "Zero calcule maxITER)

par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b, par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,

141

142 143 144 145

par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b, par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,

146

147 148 149 150 151

152 153

gamma = 2 tol = 1.0e-10 x_init = -1. print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol, maxITER) x_init = 1. 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 gaz


Nous voulons dterminer le volume V occup par un gaz dont la temprature est T et dont la pression est p . Lquation dtat (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 coefcients qui dpendent du gaz considr, N est le nombre de molcules contenues dans le volume V 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 CO 2 , les coefcients a et b dans prennent les valeurs suivantes : a = 0.401 Pa m3 et b = 42.7 106 m3 . Trouver le volume occup par 1000 molcules de CO 2 la temprature T = 300 K et la pression p = 3.5 107 Pa par la mthode de dichotomie, avec une tolrance de 1012 (la constante de Boltzmann vaut k = 1.380 650 3 1023 J K1 ). C ORRECTION . On doit calculer les zros de la fonction f (V ) = pV + aN 2 /V abN 3 /V 2 pN b kN T , o N est le nombre de molcules. On a limV 0+ f (V ) = et limV + f (V ) = + f (V ) = p aN 2 /V 2 + 2abN 3 /V 3 = p + aN 2 (2bN /V 1)/V 2 p f (V ) = 0 si et seulement si aN 2 V 3 V = 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 et f (0.06) > 0. On peut calculer ce zro en utilisant la mthode de dichotomie comme suit :
154 155 156 157 158 159 160 161

def f(V): a = 0.401 b = 42.7e-6 N = 1000. T = 300. p = 3.5e7 k = 1.3806503e-23 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 164 165 166 167

tol = 1.0e-12 left = 0.01 right = 0.06 print "Zero calcule par la methode de dichotomie dans lintervalle [", left, ",", right,"] : ", dichotomie (f,left,right,tol,maxITER)

ce qui donne V = 0.042 699 999 999 9 m3 .

Exercice 1.9
Soit A est un nombre positif donn et considrons lalgorithme suivant : tant donn une valeur x 0 , on calcule x k +1 = x k +
2 A xk

k = 0, 1, 2, . . . A soit A . A | alors la suite x k converge vers

1. Montrer que si la suite x k converge, alors sa limite est soit

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

3. Vrier graphiquement que si x 0 est proche de A mais diffrent de A , alors la suite x k ne converge pas vers A. 4. Vrier que si x 0 = 1, alors lalgorithme concide avec la mthode de la corde 2 pour rsoudre x 2 A = 0. 5. Proposer un algorithme plus efcace pour calculer la racine carre dun nombre positif A . C ORRECTION . 1. Supposons que x k converge vers . En passant la limite dans la formule de rcurrence on obtient = + cest--dire
2

A 2

= A et donc = A .

2. La mthode peut scrire sous la forme dune mthode de point xe o la fonction est dnie par ( x ) = x + A x2 . 2

Si A ]0, 4[ et = A , puisque (x ) = 1 x , alors | ( )| = |1 A | < 1 : on peut appliquer le thorme dO STROWSKI donc il existe > 0 tel que, si |x 0 A | alors la suite x k converge vers A . 3. On a reprsent dans la gure ci-dessous le graphe de la fonction lorsque A = 1/2. Si on choisit x 0 < A alors la suite diverge vers ; si A < x 0 < A alors la suite converge (de manire monotone croissante) vers A ; si A < x 0 < 2 + A alors la suite converge (de manire monotone croissante aprs la premire itration) vers A ; si x 0 > 2 + A alors la suite diverge vers . y y =x

A
x5 x4

x0 x1 x2

x3 x

x4

x2 x1

2+ A x

4. Soit f la fonction dnie par f (x ) = x 2 A . La mthode de la corde 2 pour rsoudre f (x ) = 0 scrit dans ce cas x k +1 = x k x2 A f (x k ) = xk k , f (x 0 ) 2x 0 k = 0, 1, 2, . . . .

G. Faccanoni

29

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

Si on choisit x 0 = 1, cette mthode scrit donc x k +1 = x k x2 A f (x k ) = xk k , f (x 0 ) 2 k = 0, 1, 2, . . . .

Ainsi on conclut que la mthode donne concide avec la mthode de la corde 2 pour rsoudre x 2 A = 0 lorsque x 0 = 1 comme point de dpart. 5. Si on choisit la mthode de Newton pour rsoudre f (x ) = 0 avec f (x ) = x 2 A , on a x k +1 = x k x2 A f (x k ) = xk k , f (x k ) 2x k k = 0, 1, 2, . . . .

Cette mthode est plus efcace que la prcdente car elle converge lordre 2 pour tout x 0 > 0.

Exercice 1.10
Soit f : R R la fonction dnie par f (x ) = x 3 2. On veut approcher le zro de f par la mthode de point xe suivante : x 0 donn, x k +1 = g (x k ) pour tout k 0, (1.2)

2 avec g : R R la fonction dnie par g (x ) = (1 )x 3 + 1 R. 3 x + 2( 1) + 3x 2 , 1. Pour quelles valeurs du paramtre la mthode de point xe (1.2) est-elle consistante (i.e. est un point xe de g) ?

2. Pour quelles valeurs du paramtre la mthode de point xe (1.2) est-elle dordre 2 ? 3. Existe-t-il des valeurs du paramtre pour lesquelles la mthode de point xe (1.2) est-elle dordre 3 ? C ORRECTION . Comme est le zro de f , on a 3 = 2. 1. La mthode de point xe (1.2) est consistante pour tout R car g () = (1 )3 + 1 2 2 2 (3 2) + 2( 1) + 2 = (1 )(3 2) + 1 + 2 = + 2 = = . 3 3 3 3 3 3 32

2. La mthode de point xe (1.2) est au moins dordre 2 si g () = 0. On a g () = 3(1 )2 + 1 4 = 3(1 )2 + 1 = (1 )(32 + 1) 3 33

donc la mthode de point xe (1.2) est au moins dordre 2 si = 1. 3. Pour que la mthode de point xe (1.2) soit dordre 3 il faudrait g () = g () = 0. Puisque g () = 0 si et seulement si = 1 et g 1 () = 4 = 0, il nest pas possible davoir une convergence dordre suprieur 2. 4

Exercice 1.11
On considre le problme du calcul de [0, ] tel que = 1 1 4 cos( ). 1. Montrer quon peut utiliser la mthode de la dichotomie pour approcher . Que vaut lapproximation de itrations ? Quel est lerreur maximale quon obtient aprs 3 itrations ? k [a k , b k ]
k

aprs 3

0 [0, ]
2

2. On considre la mthode de point xe suivante : x 0 [0, ], x k +1 = g (x k ) pour tout k 0, avec g : [0, ] R la fonction dnie par g (x ) = 1 1 4 cos(x ). 2.1. tudier graphiquement la convergence de cette mthode. 2.2. Montrer rigoureusement que la mthode converge pour tout x 0 [0, ]. 2.3. Montrer que lerreur satisfait lingalit |x k | C k |x 0 |. Donner une estimation de la constante C et lutiliser pour minorer le nombre ditrations ncessaires pour approcher 103 prs. (1.3)

30

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires


1C . Quelle valeur de faut-il choisir

2.4. Montrer que si on utilise le critre darrt |x k +1 x k | alors |x k +1 | pour approcher 103 prs ? C ORRECTION .

1. Soit f : [0, ] R la fonction dnie par f (x ) = 1 1 4 cos(x ) x . Elle est de classe C , f (0) = 3/4 > 0 et f () = 5/4 < 0, le thorme des valeurs intermdiaires permet de conclure quil existe au moins un [0, ] tel que f ( ) = 0. De plus, comme f (x ) = 1 4 cos(x ) 1 < 0, ce zro est unique. On peut alors utiliser la mthode de la dichotomie pour approcher et lon a

k [a k , b k ]
k

0 [0, ]
2

1 0, 2
4

4, 2 3 8

3 4, 8 5 16

2. On considre la mthode de point xe de fonction ditration g . 2.1. tude graphique de la convergence : y


1 g est de classe C , g (0) = 3/4, g () = 5/4, g (x ) = 4 sin(x ) [0, 1/4], g est croissante sur [0, ]. La suite x n est monotone croissante si x 0 < et monotone dcroissante si x 0 > .

5 4 3 4
x0 xx x 1 22 x 1 x0

x
1 4k

2.2. g ([0, ]) = [3/4, 5/4] [0, ] et |g (x )| 1/4 < 1 : la mthode de point xe converge vers . Donc, pour approcher k = 6.
4k

pour tout x 0 [0, ]. |x 0 |


3

2.3. Pour tout k N il existe k compris entre et x k tel que |x k | = |g (x k 1 ) g ( )| |g (k )||x k 1 | 10


3

prs, il faut prendre le plus petit k N qui vrie k log4 (10 ) 5.9, i.e.

2.4. Pour tout k N on a |x k | |x k +1 x k | |x k +1 x k + x k | = |x k +1 | C |x k | avec C = 1/4 do |x k +1 | 1 |x k +1 x k | . 1 C 1 C

Pour que lerreur soit infrieur 103 il faut alors choisir (1 C )103 .

Exercice 1.12
On considre le problme du calcul de [0, ] tel que = 1 + 1 2 sin( ). 1. Montrer quon peut utiliser la mthode de la dichotomie pour approcher . Que vaut lapproximation de itrations ? 2. On considre la mthode de point xe suivante : x 0 [0, ], x k +1 = g (x k ) pour tout k 0,
1 avec g : [0, ] R la fonction dnie par g (x ) = 1 + 2 sin(x ).

aprs 3

(1.4)

2.1. tudier graphiquement la convergence de cette mthode. 2.2. Montrer rigoureusement que la mthode converge pour tout x 0 [0, ]. 2.3. Montrer que lerreur satisfait lingalit |x k | C k |x 0 |. 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 |x k +1 x k | alors |x k +1 | 1 C . Quelle valeur de faut-il choisir 3 pour approcher 10 prs ? (Rappel : |a c | |c b | |a b | |a c | + |c b | pour tout a , b, c R)

C ORRECTION .
1. Soit f : [0, ] R la fonction dnie par f (x ) = 1 + 1 2 sin(x ) x . Elle est de classe C , f (0) = 1 > 0 et f () = 1 < 0, le thorme des valeurs intermdiaires permet de conclure quil existe au moins un [0, ] tel que f ( ) = 0. De plus, comme f (x ) = 1 2 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 [a k , b k ]
k

0 [0, ]
2

1 0, 2
4

4, 2 3 8

3 8 ,2 7 16

2. On considre la mthode de point xe de fonction ditration g . 2.1. tude graphique de la convergence : y g est de classe C , g (0) = g () = 1, g (x ) = 1 2 cos(x ) [1/2, 1/2], g est croissante sur [0, 2 ], dcroissante sur [ 2 , ] et g (/2) = 3/2 <

3 2

1
x0 x1 x2

2.2. g ([0, ]) = [1, 3/2] [0, ] et |g (x )| 1/2 < 1 : la mthode de point xe converge pour tout x 0 [0, ]. 2.3. Pour tout k N il existe k compris entre et x k tel que |x k | = |g (x k 1 ) g ( )| |g (k )||x k 1 | . Donc, pour approcher k = 12.
2k

10

prs, il faut prendre le plus petit k N qui vrie k log2 (10 ) 11.7, i.e.

1 2k

|x 0 |

2.4. Pour tout k N on a [|x k | |x k +1 x k | |x k +1 x k + x k | = |x k +1 | C |x k | do |x k +1 | 1 |x k +1 x k | . 1 C 1 C

Pour que lerreur soit infrieur 103 il faut alors choisir 2 103 .

Exercice 1.13
Le but de cet exercice est de calculer la racine cubique dun nombre positif a . Soit g la fonction dnie sur R + par 2 1 a g (x ) = x + 3 3 x2 1. Faire ltude complte de la fonction g . 2. Comparer g lidentit. 3. Soit la suite (x n )n N dnie par x n +1 = g (x n ), x 0 > 0. laide des graphe de g et de lidentit sur R + , dessiner la suite (x n )n N sur laxe des abscisses. Observer graphiquement la convergence. 4. Justier mathmatiquement la convergence observe graphiquement. En particulier, montrer que cette suite est dcroissante partir du rang 1. 5. Calculer lordre de convergence de la suite. 6. crire lalgorithme dni par la suite (x n )n N qui permet de dterminer
3

(a > 0 x).

a une prcision de 106 .

7. Expliciter la mthode de Newton pour la recherche du zro de la fonction f dnie par f (x ) = x 3 a . Que remarque-t-on ? C ORRECTION .
1 a 2 1. tude de la fonction g : R + R dnie par g (x ) = 3 x + 3 x 2 : g (x ) > 0 pour tout x R +; lim g (x ) = lim g (x ) = + ; x 0 + g (x ) x + x g (x ) = 2 3

lim

x + 2 lim g (x ) 2 3 et x + 3x a 1 x 3 ;

2 = 0 donc y = 2 3 x est un asymptote et lon a g (x ) > 3 x pour tout x > 0 ;

g est croissante sur [ 3 a , +[, dcroissante sur [0, x = 3 a est un minimum absolu et g ( 3 a ) = 3 a , a g (x ) = 2 > 0 : g est convexe sur R +. x4

a] ;

32

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y i (x )

y i (x )

g (x ) 2 y=3 x
3

g (x )

x0 3

x4 x3

x2

x1

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

(b) tude graphique de la convergence de la mthode de point xe.

F IGURE 1.4.: Exercice 1.13

x g (x )

0 +

a +

+
3

g (x ) a

2. Graphe de g compar au graphe de i (x ) = x : voir la gure 1.4a. On vrie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x ) et la droite dquation y = x : g (x ) = x 2 1 a x+ =x 3 3 x2 x3 = a.

3. tude graphique de la convergence de la mthode de point xe : voir la gure 1.4a. 4. On en dduit que pour tout x > 0 on a g (x ) 3 a . Donc, pour tout k > 0, x k = g (x k 1 ) 3 a . Vrions les hypothses du thorme de point xe qui fournit une condition sufsante de convergence de la suite : 4.1. pour tout x dans [ 3 a , +[ on a g (x ) > 3 a donc g ([ 3 a , +[) [ 3 a , +[ (i.e. lintervalle 3 a , +[ est stable) ; 4.2. g C 1 ([ 3 a , +[) ; 4.3. pour tout x dans [ 3 a , +[ on a a 2 | g ( x )| = 1 3 < 1 3 x donc g est contractante. Alors la mthode converge vers x point xe de g . De plus, pour tout x [ 3 a , +[ on a x = g (x ) x = mthode permet donc de calculer de faon itrative la racine cubique de a . 5. tant donn que g (x ) = 0, la mthode de point xe converge lordre 2. 6. Algorithme de point xe : Require: x 0 > 0 while |x k +1 x k | > 106 do x k +1 g (x k ) end while Quelques remarques propos du critre darrt bas sur le contrle de lincrment. Les itrations sachvent ds que |x k +1 x k | < ; 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 (x k )| = |g (z k )ek | g (x ) = 2a =0 x4
3

a : la

G. Faccanoni

33

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

avec z k compris entre x et x k . Donc |x k +1 x k | = |ek +1 ek | = |g (z k ) 1|ek Puisque g (x ) = 0, on a bien |x k +1 x k | ek .


f (x ) . Ici elle scrit f (x )

| g ( x ) 1 | ek .

7. La mthode de Newton est une mthode de point xe avec g (x ) = x x k +1 = x k

x3 a f (x k ) 1 2 a a = xk k 2 = xk xk + 2 = xk + 2 f (x k ) 3 3 3x k 3x k 3x k

autrement dit la mthode de point xe assigne est la mthode de Newton (quon sait tre dordre de convergence gale 2 lorsque la racine est simple).

Exercice 1.14

On veut rsoudre lquation e x = x avec 0 < < 1. 1. Vrier que cette quation admet une unique solution, note 2. Soit g : R R la fonction dnie par g (x ) = e
x

, dans R.

. On dnit la suite rcurrente u0 R u n +1 = g (u n ). (1.5)

On veut montrer que u n converge vers . Pour cela, comparer dabord le graphe de g lidentit et observer graphiquement la convergence, ensuite justier mathmatiquement la convergence observe graphiquement. 3. crire la mthode de Newton pour rsoudre lquation e x = x avec 0 < < 1. Parmi la mthode de Newton et la mthode de point xe (1.5), laquelle faut-il prfrer vis--vis de la vitesse de convergence ? C ORRECTION . 1. Deux mthodes (quivalentes) possibles : Mthode 1 : La fonction g : x e x est continue monotone dcroissante, limx e x = + et limx + e x = 0 ; par consquente elle intersecte la droite dquation y = x une et une seule fois. Notons ce point . Comme la fonction x e x est positive pour tout x R tandis que la fonction x x est positive si et seulement si x > 0, on en dduit que > 0. De plus, comme g (1) = e < 1, on peut conclure que ]0; 1[. Mthode 2 : La fonction f : x e x x est continue monotone dcroissante, limx e x x = + et limx + e x x = ; par le thorme des valeurs intermdiaires on conclut quil existe un et un seul R tel que 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) < e 1 1 < 0, on peut conclure que ]0; 1[. 2. Le graphe de la fonction g est celui en gure 1.14. On en dduit que la suite (u n )n converge pour tout u 0 R ; g (R) =]0; +[ et g (]0; +[) =]0; 1[ ainsi u 1 ]0; +[ et u n ]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 pourra pas utiliser les thormes du type monotone+borne=convergente pour prouver la convergence, dautre part on 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 ssi e x > ssi x > ln()/. Comme 0 < < 1, on conclut que |g (x )| < 1 pour tout x 0. Cette tude prliminaire suggre dutiliser le thorme de point xe dans lintervalle ]0; +[. On a g C (]0; +[), g (]0; +[) ]0; +[, |g (x )| < 1 pour tout x ]0; +[, on peut alors utiliser le thorme de point xe pour conclure que la suite (u n )n N converge vers pour tout u 0 ]0; +[. Comme g (x ) ]0; +[ pour tout x R, alors u n ]0; +[ pour tout n N , on peut donc conclure que la suite (u n )n N converge vers pour tout u 0 R. 3. Soit f (x ) = e x x . La mthode de Newton (qui sapplique f et non g ) dnit la suite rcurrente u0 R
e u n u n +1 = u n e un 1 .
u n

(1.6)

La mthode de point xe (1.5) nest que dordre 1 car g ( mthode de point xe, est dordre 2.

) = 0 tandis que la mthode de Newton, qui est encore une

34

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

i (x )

i (x )

g (x ) x

x0

x2

x3

x1

g (x ) x

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

(b) tude graphique de la convergence de la mthode de point xe.

F IGURE 1.5.: Exercice 1.14

Exercice 1.15
Soit f une application de R dans R dnie par f (x ) = exp(x 2 ) 4x 2 . 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 xe x k +1 = (x k ), x 0 ]0, 1[, avec lapplication de R dans R dnie par (x ) = prciser lordre de convergence.
exp(x 2 ) . 2

(1.7)

Examiner la convergence de cette mthode et en

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 xe (1.7), quelle est la plus efcace ? Justier la rponse. C ORRECTION . On cherche les zros de la fonction f (x ) = exp(x 2 ) 4x 2 .

1. On remarque que f (x ) = f (x ) : la fonction est paire. On fait donc une brve tude sur [0, +[ : f (0) = 1 et lim f (x ) = +,
x +

f (x ) = 0 pour x = 0 et x = ln 4 et on a f (0) = 1 et f ( ln 4) = 4(1 ln 4) < 0 ; f est croissante pour x > dcroissante pour 0 < x < ln 4. On a une racine dans lintervalle ] , ln 4[, une racine dans lintervalle ] ln 4, 0[, une racine dans lintervalle ]0, ln 4[, une racine dans lintervalle ] ln 4, [. Voir la gure 1.6a pour le graphe de f sur R.

ln 4 et

2. Puisque f (0) = 1 > 0 et f (1) = e 4 < 0, pour le thorme des valeurs intermdiaires il existe au moins un x ]0, 1[ tel que f (x ) = 0. Puisque f (x ) = 2x exp(x 2 ) 8x = 2x (exp(x 2 ) 22 ) < 2x (e 4) < 0 pour tout x ]0, 1[, ce x est unique. Voir la gure 1.6b. 3. tude de la convergence de la mthode (1.7) : 3.1. pour tout x dans ]0, 1[ on a 0< donc : ]0, 1[]0, 1[ ; 3.2. C 1 (]0, 1[) ; 3.3. pour tout x dans ]0, 1[ on a | ( x )| = x exp(x 2 ) = x (x ) < |x | < 1 2 exp(x 2 ) < 4 e <1 4

donc est contractante. Alors la mthode (1.7) converge vers x point xe de . De plus, pour tout x ]0, 1[, x = (x ) 2x = exp(x 2 ) 4x 2 = exp(x 2 ) f (x ) = 0;

G. Faccanoni

35

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

y f (x )
1

y f (x ) 1
ln 4

0 x x

1 x

4(1ln 4)

(a) Graphe de f (x ) = exp(x 2 ) 4x 2 .

(b) Zoom.

y
y

F IGURE 1.6.: Exercice 1.15

x
0 x 1

x
x

F IGURE 1.7.: Exercice 1.15 : convergence de la mthode de point xe. donc x , point xe de , est un zro de f . tant donn que (x ) = x (x ) = x 2 = 0, la mthode de point xe (1.7) converge seulement lordre 1. 4. La mthode de Newton est une mthode de point xe avec (x ) = x x k +1 = x k
f (x ) . Ici donc elle scrit f (x )

0
Exercice 1.16
On cherche valuer dnie par rcurrence

2 2 2 2 exp(x k ) 4x k exp(x k ) 4x k f (x k ) = xk = x . k 2 2 f (x k ) 2x k exp(x k ) 8x k 2x k (exp(x k ) 4)

5. Puisque x est une racine simple de f , la mthode de Newton converge lordre 2 tandis que la mthode de point xe (1.7) converge seulement lordre 1 : la mthode de Newton est donc plus efcace.

5 laide dun algorithme nautorisant que les oprations lmentaires. Soit (x n )n N la suite x 0 = 1, x n +1 =

10x n
2 xn +5

n N.

36

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y 5
5 3

i (x )

i (x )

g (x )

g (x )

x0

x1

x2

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

(b) tude graphique de la convergence de la mthode de point xe x k +1 = g (x k ).

F IGURE 1.8.: Exercice 1.16

1. Montrer que si la suite converge, alors elle converge vers 0 ou 2. Soit la fonction g dnie sur [1; 5] par g (x ) =
10x . tudier x 2 +5

5.

g et la comparer lidentit. 5. Conclure.

3. Montrer que la suite (x n )n N est croissante et majore par 4. Dterminer lordre de convergence de cette suite. C ORRECTION . 1. Supposons quil existe R tel que x n .
n +

Par dnition de convergence on a = 10 5, 0, 5 . 2 +5 et par consquent On prouve par rcurrence que si x 0 = 0 alors x n = 0 pour tout n N donc = 0, si x 0 > 0 alors x n > 0 pour tout n N donc 0, si x 0 < 0 alors x n < 0 pour tout n N donc 0. Comme x 0 = 1 > 0, alors x n > 0 pour tout n N et 0, 5 . 2. Soit la fonction g dnie sur [1; 5] par g (x ) = g (x ) > 0 pour tout x [1; 5] ; 5 g (1) = 3 , g ( 5) = 5 ;
x 5 g (x ) = 10 (x 2 +5)2 ;
2

10x . On tudie la fonction x 2 +5

g:

g est croissante sur [1; 5[ et g ( 5) = 0. Graphe de g compar au graphe de i (x ) = x : voir la gure 1.8a. On vrie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x ) et la droite dquation y = x dans [1; 5] : g (x ) = x 10x =x x2 + 5 x 2 = 5.

3. On a g (x ) [5/3; 5] pour tout x [1; 5] et on a vu au point prcdent que g est croissante et g ( 5) = De plus, g (x ) x car 10x 10x g (x ) = 2 = x, x + 5 ( 5)2 + 5

5.

par consquent la suite x k +1 = g (x k ) x k est croissante. Comme g (x ) ( 5) = 5 alors la suite x k +1 = g (x k ) 5 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, 5 , on conclut que x n 5. Pour ltude graphique de la convergence de la mthode de point xe voir la gure 1.8b.
n +

Dans ce cas, on ne peut pas utiliser le thorme de point xe pour prouver la convergence de la suite sur lintervalle [1; 5]. En effet g est au moins de classe C 1 ([1; 5]) g ([1; 5]) = [5/3; 5] [1; 5] mais 0 g (x ) < 1 ssi x [ 10 + 5 5; 5] (et on a 10 + 5 5 > 1).

G. Faccanoni

37

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

En revanche, on peut utiliser le thorme de point xe pour prouver la convergence de la suite sur lintervalle [5/3; 5] car g est au moins de classe C 1 ([5/3; 5]) g ([5/3; 5]) [5/3; 5] 0 g (x ) < 1 pour tout x [5/3; 5]. 4. Comme g ( 5) = 0 et g ( 5) = 0, la mthode de point xe associe la fonction ditration g est dordre 2.

Exercice 1.17
Lobjectif de cet exercice est de dterminer le zro dune fonction C 2 (R, R) vriant 2 < f (x ) < 1 sur R. On dnit la suite {x n }n N de R par la rcurrence suivante x n +1 = g (x n ) = x n + f (x n ), o > 0 et x 0 R sont donns. 1. Montrer que lim f (x ) = + et lim f (x ) = .
x x +

2. En dduire quil existe un unique

lment de R tel que f ( ) = 0.

3. Montrer que si 0 < < 1, la fonction g dnie par g (x ) = x + f (x ) vrie 1 < 1 2 < g (x ) < 1 4. En dduire la convergence de la suite {x n }n N si 0 < < 1. 5. La suite converge-t-elle pour = f 7. Peut-on choisir = f
1 ( ) 1 ( )

sur R.

?
1 . f ( )

6. Donner lordre de convergence de la suite {x n }n N pour 0 < < 1 en distinguant le cas = dun point de vue pratique ?
1 ( )

8. On choisit alors dapprocher = f

par n = f

1 (x n )

et la suite {x n }n N est dnie par

x n +1 = g (x n ) = x n + n f (x n ). Quel est le nom de cette mthode itrative ? Montrer que la suite {x n }n N converge quel que soit x 0 R. C ORRECTION . 1. Puisque f est de classe C 2 (R, R) et f (x ) < 0 sur R alors f est monotone dcroissante. De plus, f (x ) < 1 sur R donc
x

lim f (x ) = +

x +

lim f (x ) = .

NB : seul la condition f (x ) < 1 permet de conclure car une fonction peut tre monotone dcroissante mais avoir une limite nie ! En effet, la condition f (x ) < 1 garantie que la fonction dcroit plus vite quune droite comme on peut facilement vrier : f (x ) f (x ) lim = lim 1. x x x 1 2. Puisque lim f (x ) = + > 0 et lim f (x ) = < 0, pour le thorme des valeurs intermdiaires il existe au moins un R tel que f ( ) = 0. Puisque f (x ) < 0 pour tout x R, ce
x x +

est unique.

3. Considrons la fonction g dnie par g (x ) = x + f (x ) alors g est de classe C 2 (R, R) et g (x ) = 1 + f (x ) Puisque f (x ) < 1 et 0 < < 1 on a g (x ) < 1 < 1 et puisque f (x ) > 2 et 0 < < 1 alors g (x ) > 1 2 > 1 Autrement dit | g ( x )| < 1 4. Soit 0 < < 1. On tudie la suite x n +1 = g (x n ) et on va vrier quil sagit dune mthode de point xe pour le calcul du zro de f . sur R. sur R. sur R sur R.

38

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

4.1. On vrie dabord que, si la suite converge vers un point xe de g , ce point est bien un zro de f (ici le rciproque est vrai aussi) : soit R, alors = g ( ) = + f ( ) 0 = f ( ) f ( ) = 0;

4.2. vrions maintenant que la suite converge vers un point xe 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 : R R ; 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 x n +1 = g (x n ) converge vers point xe de g et zro de f . 5. Si = f
1 ( )

alors x n +1 = g (x n ) = x n f (x n ) , f ( )

qui converge car 2 < f ( ) < 1 ssi 6. tant donn que

1 2

< < 1 et donc on rentre dans le cas de 0 < < 1. g ( ) = 1+f ( )

la mthode de point xe converge lordre 2 si f ( ) = 1, la mthode de point xe converge lordre 1 si 2 < f ( ) < 0 mais f ( ) = 1, la mthode de point xe ne converge pas si f ( ) < 2 ou f ( ) > 0. tant donn que 2 < f ( ) < 1 et que 0 < < 1 on peut conclure que , la mthode de point xe converge lordre 2 si = f 1 ( ) la mthode de point xe converge lordre 1 si = f 7. Dun point de vue pratique on ne peut pas choisir = f 8. Si on choisit dapprocher = f 1 ( ) par n = f (1 xn )
1 . ( ) 1 ( )

car on ne connat pas .

et on considre la suite {x n }n N dnie par

x n +1 = g (x n ) = x n + n f (x n ), on obtient la mthode de Newton (qui est dordre 2). De plus, comme 2 < f (x ) < 1 on rentre dans le cas 0 < < 1 donc la suite {x n }n N converge quel que soit x 0 R .

Exercice 1.18 Recherche de zro dune fonction non-linaire


Lobjectif de cet exercice est de dterminer le zro dune fonction f C 2 (R, R) vriant 1 < f (x ) < 2 sur R. On dnit la suite {x n }n N de R par la rcurrence suivante x n +1 = g (x n ), o > 0 et x 0 R sont donns et la fonction g : R R est dnie par g (x ) = x f (x ). 1. Montrer que lim f (x ) = , lim f (x ) = + et en dduire quil existe un unique R tel que f ( ) = 0.
x x +

2. Montrer que si 0 < < 1, la fonction g vrie |g (x )| < 1 sur R. En dduire la convergence de la suite {x n }n N pour tout ]0; 1[ quel que soit x 0 R. 3. Donner lordre de convergence de la suite {x n }n N en fonction de ]0; 1[. 4. Comme dun point de vue pratique on ne peut pas choisir = f 1 , on va lapprocher par n = ( ) la suite {x n }n N dnie par x n +1 = x n n f (x n ).
1 f (x n )

et on obtient

Quel est le nom de cette mthode itrative ? Montrer que la suite {x n }n N converge quel que soit x 0 R. C ORRECTION . 1. Puisque f est de classe C 2 (R, R) et f (x ) > 0 sur R alors f est monotone croissante. De plus, f (x ) > 1 sur R donc
x

lim f (x ) =

x +

lim f (x ) = +.

NB : seul la condition f (x ) > 1 permet de conclure car une fonction peut tre monotone croissante mais avoir une limite nie ! En effet, la condition f (x ) > 1 garantie que la fonction croit plus vite quune droite comme on peut facilement vrier : f (x ) [H ] f (x ) = lim 1. lim x x x 1 Puisque lim f (x ) = < 0 et lim f (x ) = + > 0, pour le thorme des valeurs intermdiaires il existe au moins un R tel que f ( ) = 0. Puisque f (x ) > 0 pour tout x R, ce
x x +

est unique.

G. Faccanoni

39

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 < < 1 on a 1 < 1 2 < g (x ) = 1 f (x ) < 1 < 1 Autrement dit | g ( x )| < 1 On tudie alors la suite x n +1 = g (x n ) et on va vrier quil sagit dune mthode de point xe pour le calcul du zro de f . 2.1. On vrie dabord que, si la suite converge vers un point xe de g , ce point est bien un zro de f (ici le rciproque est vrai aussi) : soit R, alors = g ( ) = f ( ) 0 = f ( ) f ( ) = 0;
=0

sur R.

2.2. vrions maintenant que la suite converge vers un point xe de g (et donc, grce ce quon a vu au point prcdant, elle converge vers lunique zro de f ) : g C 1 (R, R) et pour tout x dans R on a prouv que |g (x )| < 1, i.e. g est contractante, alors la suite x n +1 = g (x n ) converge vers point xe de g et zro de f . 3. tant donn que g ( ) = 1f ( ) avec 0 < f ( ) < 2 et 0 < < 1, on peut conclure que la mthode de point xe converge lordre 2 si = la mthode de point xe converge lordre 1 si = 4. Dun point de vue pratique on ne peut pas choisir = par n =
1 f (x n ) 1 , f ( ) 1 . f ( )

1 f ( )

car on ne connat pas . Si on choisit dapprocher =

1 f ( )

et on considre la suite {x n }n N dnie par x n +1 = x n n f (x n ),

on obtient la mthode de N EWTON (qui est dordre 2). De plus, comme 1 < f (x ) < 2 alors 0 < n < 1 donc la suite {x n }n N converge quel que soit x 0 R.

Exercice 1.19
Soit g la fonction dnie sur R + par g (x ) = 2x 3 + 4x 2 + 10 . 3x 2 + 8x

1. Faire ltude complte de la fonction g . (On admettra que x 3 + 4x 2 10 = 0 admet comme unique solution m 1,36 et que g (m ) = m .) 2. Comparer g lidentit. 3. Soit la suite (x n )n N dnie par x n +1 = g (x n ), x 0 > 0. laide des graphe de g et de lidentit sur R + , dessiner la suite (x n )n N sur laxe des abscisses. Observer graphiquement la convergence. En particulier, montrer que cette suite est dcroissante partir du rang 1. 4. Expliciter (sans la vrier) la condition ncessaire pour la convergence observe graphiquement. 5. crire lalgorithme dni par la suite (x n )n N qui permet de dterminer le point xe une prcision de . 6. Expliciter la mthode de Newton pour la recherche du zro de la fonction f dnie par f (x ) = x 3 + 4x 2 10. Que remarque-t-on ? 7. Donner lordre de convergence de la suite. C ORRECTION . 1. tude de la fonction g : R + R dnie par g (x ) = g (x ) > 0 pour tout x R +; lim g (x ) = lim g (x ) = + ;
x 0 + x + g (x ) 2 = lim g (x ) 2 3 et x + 3x x + x 3 2 4)(x +4x 10) g (x ) = 2(3x + ; x 2 (3x +8)2 2x 3 +4x 2 +10 3x 2 +8x

lim

2 4 = 4 9 donc y = 3 x 9 est un asymptote ;

40

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y y i (x ) i (x )

g (x ) 2 y=3 x4 9

g (x )

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

x0

x4 x3

x2

x1

(b) tude graphique de la convergence de la mthode de point xe.

F IGURE 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 g (x ) + g (x ) m 2. Graphe de g compar au graphe de i (x ) = x : voir la gure 1.9a. On vrie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x ) et la droite dquation y = x : g (x ) = x 2x 3 + 4x 2 + 10 =x 3x 2 + 8x x 3 + 4x 2 10 = 0 x =m f (x ) = 0. 0 m + + +

3. Pour ltude graphique de la convergence de la mthode de point xe voir la gure 1.9b. 4. On en dduit que pour tout x > 0 on a g (x ) m . Donc, pour tout k > 0, x k = g (x k 1 ) m . Pour tudier la convergence de la mthode vrions si on peut appliquer le thorme de point xe : 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 )| = Si les conditions prcdentes sont vries alors la mthode converge vers m point xe de g . De plus, pour tout [m , +[ : = g () = m donc le point xe de g est racine de f . 5. Algorithme de point xe : Require: x 0 > 0 Require: g : x g (x ) while |x k +1 x k | > do x k +1 g (x k ) end while 6. La mthode de Newton est une mthode de point xe avec g (x ) = x x k +1 = x k
f (x ) . Ici donc elle scrit f (x ) (6x 2 +8x )g (x )(6x +8) 3x 2 +8x

< 1 alors g est contractante.

x 3 + 4x 2 10 f (x k ) = xk k 2 k = g (x k ) f (x k ) 3x k + 8x k

G. Faccanoni

41

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

autrement dit la mthode de point xe assigne est la mthode de Newton. 7. tant donn que la mthode de point xe donne est la mthode de Newton et que la racine m de f est simple, elle converge lordre 2. Quelques remarques propos du critre darrt bas sur le contrle de lincrment. Les itrations sachvent ds que |x k +1 x k | < ; 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 (x k )| = |g (z k )ek | avec z k compris entre m et x k . Donc |x k +1 x k | = |ek +1 ek | = |g (z k ) 1|ek
3x +4 Puisque g (x ) = 2 x 2 (3 f (x ), alors g (m ) = 0 donc on a bien |x k +1 x k | x +8)2

| g (m ) 1 | e k . ek .

Exercice 1.20
1 4 On se propose de calculer 4 1 3 en trouvant les racines relles de lapplication f de R dans R dnie par f (x ) = x 3 . 1. Situer les 2 racines de f (i.e. indiquer 2 intervalles disjoints qui contiennent chacun une et une seule racine). En particulier, montrer quil y a une racine x comprise entre 0 et 1.

2. Soit g la fonction dnie sur [0; 1] par g (x ) = x (9x 4 + 5) . 3(5x 4 + 1)

2.1. Faire ltude complte de la fonction g et la comparer lidentit. 2.2. Soit la suite (x n )n N dnie par x n +1 = g (x n ), x 0 ]0; 1[. laide des graphe de g et de lidentit sur [0; 1], dessiner la suite (x n )n N sur laxe des abscisses. Observer graphiquement la convergence. 2.3. Justier mathmatiquement la convergence observe graphiquement. 2.4. Calculer lordre de convergence de la suite. 2.5. crire lalgorithme dni par la suite (x n )n N qui permet de dterminer 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 xe x k +1 = g (x k ), quelle est la plus efcace ? Justier la rponse. C ORRECTION . 1. f est paire ; comme f (x ) = 4x 3 , 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 ) = 2.1. g (x ) =
4 4

1 3

une prcision de .

x (9x 4 +5) 3(5x 4 +1) 5 3

pour x 0.
2

g (x ) 0 pour tout x 0 et g (x ) = 0 ssi x = 0 ;


5(9x 8 6x 4 +1) 3(5x 4 +1)2

3x 4 1 5x 4 +1

donc g (x ) 0 pour tout x ]0; 1[ et g (x ) = 0 ssi x =


320x 3 (3x 4 1) (5x 4 +1)3

1 3 . De plus,

1 3

1 3. 10 3x 4 1 32x 3 20 32x 3 3 5x 4 +1 (5x 4 +1)2 = 3 g (x ) (5x 4 +1)2 4 1 x 0; 4 1 3 , convexe pour x > 3.

Enn, g (x ) =

donc g (x ) = 0 ssi x = 0 ou x =

1 3,

g est

concave pour Pour le graphe de g compar au graphe de i (x ) = x pour x [0; 1] voir la gure 1.10a. On vrie 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 (9x 4 + 5) =x 3(5x 4 + 1) 9x 4 + 5 = 3(5x 4 + 1) x4 = 1 3 f (x ) = 0.

2.2. Pour ltude graphique de la convergence de la mthode de point xe voir la gure 1.10b. 2.3. tudions la convergence de la mthode. On remarque que
4 9x k +5 x k +1 = > 1 x k < 4 xk 3(5x k + 1)
4

1 3

42

G. Faccanoni

Jeudi 31 janvier 2013

1. Rsolution dquations non linaires

y i (x )
4

y g (x ) y=3 5x
4

i (x )
1 3

g (x )

1 3

1 3

x0 x1

x2

x3

x4

1 3

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

(b) tude graphique de la convergence de la mthode de point xe.

F IGURE 1.10.

donc la suite rcurrente x 0 0;


4

1 3

x k +1 = g (x k ) est monotone croissante et majore par


4 4

1 3

: elle est donc convergente vers

1 3.

Comme

= g ( ) ssi

1 3 , on conclut quelle converge vers

1 3 . De mme, la suite rcurrente

x0

1 3;0

x k +1 = g (x k ) est monotone dcroissante et minor par =


4 4

1 3

: elle est donc convergente vers

1 3.

Comme

= g ( ) ssi

1 3 , on conclut quelle converge vers

1 3.

Par consquent, quelque soit le point initiale, la mthode de point xe donne converge vers 4 1 3 point xe de g (et racine de f ). Soulignons quon ne peut pas utiliser le thorme de point xe pour prouver la convergence de la mthode car g nest pas contractante sur [0; 1]. En effet, dans [0; 1] on a |g (x )| < 1 g (x ) < 1 5(3x 4 1)2 < 3(5x 4 + 1)2 15x 8 + 30x 4 1 > 0 x 4 > 1 +
2 25x 22x +1 2.4. Si on pose x = 4 1 = 3 alors g (x ) = x , g (x ) = 0, g (x ) = 0 et g (x ) = 320x (5x 4 +1)4 suite converge lordre 3.
8 4

16 ]0; 1[. 15

15 3 2

: on conclut que la

2.5. Algorithme de point xe : Require: x 0 > 0 Require: g : x g (x ) while |x k +1 x k | > do x k +1 g (x k ) end while 3. Entre la mthode de Newton et la mthode de point xe x k +1 = g (x k ), la plus efcace est la mthode de point xe x k +1 = g (x k ) car elle est dordre 3 tandis que celle de Newton nest que dordre 2.

Exercice 1.21
Comparer les mthodes de la dichotomie, de Lagrange et de Newton pour approcher la racine x 0.5149332646611294 de la fonction f (x ) = cos2 (2x ) x 2 sur lintervalle ]0, 1.5[ avec une prcision de 1016 . Pour la mthode de Newton on prendra x 0 = 0.75.

G. Faccanoni

43

1. Rsolution dquations non linaires

Jeudi 31 janvier 2013

C ORRECTION . On modie les fonctions donnes la page 20 pour que les mthodes sarrtent lorsque le nombre ditrations est gal maxITER :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

import math, sys def dichotomie(f,a,b,tol,maxITER): fa = f(a) if abs(fa)<=tol: return a fb = f(b) if abs(fb)<=tol: return b if fa*fb > 0.0: print "La racine nest pas encadree" sys.exit(0) n = int(math.ceil(math.log(abs(b-a)/tol)/math.log(2.0))) for k in range(min(n+1,maxITER)): c = (a+b)*0.5 fc = f(c) if fc == 0.0: return c if fc*fb < 0.0: a = c fa = fc else: b = c fb = fc return (a+b)*0.5 def lagrange(f,a,b,tol,maxITER): fa = f(a) if abs(fa)<=tol: return a fb = f(b) if abs(fb)<=tol: return b if fa*fb > 0.0: print "La racine nest pas encadree" sys.exit(0) k = 0 fc = 2.*tol while ( (abs(b-a)>tol) and (abs(fc)>tol) and (k<maxITER) ): k += 1 c = a-fa*(b-a)/(fb-fa) fc = f(c) if fc == 0.0: return c if fc*fb < 0.0: a = c fa = fc else: b = c fb = fc return a-fa*(b-a)/(fb-fa) def newton(f,x_init,tol,maxITER): k = 0 x = x_init fx = f(x) h = tol dfx = df(x) while ( (abs(fx)>tol) and (k<maxITER) ): x = x - fx/dfx fx = f(x) dfx = df(x)

44

G. Faccanoni

Jeudi 31 janvier 2013


k += 1 return x

1. Rsolution dquations non linaires

63 64

Ensuite on construit une matrice dont la premire colonne contient le nombre ditrations, la deuxime colonne lerreur absolue obtenue par la mthode de la dichotomie avec le nombre ditrations indiqu dans la premire colonne, la troisime colonne lerreur absolue obtenue par la mthode de L AGRANGE et la dernire par la mthode de N EWTON.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

def f(x): return (math.cos(2.*x))**2-x**2 def df(x): return -4.*math.cos(2.*x)*math.sin(2.*x)-2.*x exact = 0.5149332646611294 nITER = 10 tol = sys.float_info.epsilon a = 0. b = 1.5 x_init = 0.75

XXX Dic Lag New

= = = =

[] [] [] []

for i in range(nITER): maxITER = i XXX.append(maxITER) Dic.append(abs(exact-dichotomie(f,a,b,tol,maxITER))) Lag.append(abs(exact-lagrange(f,a,b,tol,maxITER))) New.append(abs(exact-newton(f,x_init,tol,maxITER))) print "%2.g %15.17f %15.17f %15.17f" % (XXX[i], Dic[i], Lag[i], New[i])

On obtient ainsi le tableau

maxITER
0 1 2 3 4 5 6 7 8 9

Dichotomie 0.23506673533887057 0.13993326466112943 0.04756673533887057 0.04618326466112943 0.00069173533887057 0.02274576466112943 0.01102701466112943 0.00516763966112943 0.00223795216112943 0.00077310841112943

L AGRANGE 0.14588447288050665 0.03464350570111258 0.00260088757041255 0.00002318596617201 0.00000020304484416 0.00000000177782544 0.00000000001556633 0.00000000000013634 0.00000000000000122 0.00000000000000000

N EWTON 0.23506673533887057 0.07773975719741250 0.00023079676801208 0.00000001670020067 0.00000000000000011 0.00000000000000000 0.00000000000000000 0.00000000000000000 0.00000000000000000 0.00000000000000000

On afche enn les erreurs absolues |x x maxITER | en fonction du nombre ditrations pour chaque mthode avec une chelle logarithmique pour laxe des ordonnes.
91 92 93 94 95 96 97

from matplotlib.pylab import * xlabel(Iterations) ylabel(Absolute error) axis([0.,nITER,0.,0.1]) semilogy(XXX,Dic,"r-o",XXX,Lag,"g-o",XXX,New,"y-o") legend([Dichotomie,Lagrange,Newton]) 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 N EWTON est dordre 2 tandis que la mthode de L AGRANGE est dordre 1.

46

G. Faccanoni

2. Interpolation
tant donn n + 1 points (x i , y i )
n i =0 , trouver un polynme

p = p (x ) tel que p (x i ) = y i

tant donn n + 1 couples (x i , y i ), le problme consiste trouver une fonction = (x ) telle que (x i ) = y i ; on dit alors que interpole { y i } aux nuds {x i }. Les quantits y i peuvent, par exemple, reprsenter les valeurs aux nuds x i dune fonction f connue analytiquement ou des donnes exprimentales. Dans le premier cas, lapproximation a pour but de remplacer f par une fonction plus simple en vue dun calcul numrique dintgrale ou de drive. Dans lautre cas, le but est davoir une reprsentation synthtique de donnes exprimentales dont le nombre peut tre trs lev. On parle dinterpolation polynomiale quand est un polynme, dapproximation trigonomtrique quand est un polynme trigonomtrique et dinterpolation polynomiale par morceaux (ou dinterpolation par fonctions splines) si est polynomiale par morceaux.

2.1. Position du problme


Notons 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 , x 2 , . . . , x m . Supposons que lon veuille chercher un polynme P m de degr m 0 qui, pour des valeurs x 0 , x 1 , x 2 , . . . , x m distinctes donnes (appels nuds dinterpolation), prenne les valeurs y 0 , y 1 , y 2 , . . . , y m respectivement, cest--dire P m (x i ) = y i 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 ] : P m (x ) = a 0 + a 1 x + a 2 x 2 + + a m x m , o a 0 , a 1 , a 2 , . . . , a m sont des coefcients qui devront tre dtermins. Les (m + 1) relations (2.1) scrivent alors m a0 + a1 x0 + . . . an x0 = y0 a + a x + . . . a x m = y 0 1 1 n 1 1 . . . m an + a1 xm + . . . am xm = ym Puisque les valeurs x i et y i sont connues, ces relations forment un systme linaire de (m + 1) quations en les (m + 1) inconnues a 0 , a 1 , a 2 , . . . , a m quon peut mettre sous la forme matricielle 1 m 1 x0 . . . x0 a0 y0 1 x m . . . x1 a1 y 1 1 . . = . . (2.2) . . . . . . . . . . . . 1 xm ...
m xm

am

ym

Ainsi, le problme consistant chercher le polynme P m 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. Cette mthode pour trouver le polynme P m nest donc pas une bonne mthode en pratique. Dans la suite on va tudier une mthode plus astucieuse pour construire le polynme P m .

1 1. La matrice . . .

m 1 x 0 ... x 0 m x 1 ... x 1

m 1 x m ... x m

. . .

sappelle matrice de VANDERMONDE. . . .

47

2. Interpolation

Jeudi 31 janvier 2013

2.2. Interpolation de L AGRANGE


Quand on crit le polynme P m dans la base canonique de Rm [x ], le problme est de dterminer les (m + 1) coefcients a 0 , a 1 , a 2 , . . . , a m tels que P m (x ) = a 0 + a 1 x + a 2 x 2 + + a m x m . On se demande sil existe une autre base { L 0 , L 1 , L 2 , . . . , L m } de Rm [x ] telle que le polynme P m scrit P m (x ) = y 0 L 0 (x ) + y 1 L 1 (x ) + y 2 L 2 (x ) + + y m L m (x ). Les (m + 1) relations (2.1) imposent la condition : L i (x j ) ce qui donne
n

1 si i = j 0 sinon

pour 0 i , j m ,

L i (x ) =
j =0 j =i

x xj xi x j

(x x 0 )(x x 1 ) (x x i 1 )(x x i +1 ) (x x m ) . (x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i +1 ) (x i x m )

Clairement, le numrateur de L i (x ) est un produit de m termes (x x j ) avec i = j et est donc un polynme de degr m . Le dnominateur est une constante et il est facile de vrier que L i (x ) Rm [x ], L i (x j ) = 0 si i = j , 0 i m , L i (x i ) = 1. De plus, les polynmes L 0 , L 1 , L 2 , . . . , L m sont linairement indpendants car si lquation m i =0 i L i (x ) = 0 doit tre satism faite pour tout x R alors m L ( x ) = 0 doit tre vraie pour tout j = 0, 1, . . . , m et puisque j i =0 i i i =0 i L i (x j ) = j , on conclut que tous les j sont nuls. Par consquent, la famille { L 0 , L 1 , L 2 , . . . , L m } 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 nimporte quelles valeurs y 0 , y 1 , y 2 , . . . , y m donnes. Ceci montre que le systme linaire (2.2) a toujours une unique solution.

Dnition Interpolation de Lagrange


tant donn m + 1 points distincts x 0 , . . . , x m et m + 1 valeurs correspondantes y 0 , . . . , y m , il existe un unique polynme P m Rm [x ] tel que P m (x i ) = y i , pour i = 0, . . . m quon peut crire sous la forme
m

P m (x ) =
i =0

y i L i ( x ) Rm [ x ]

o L i (x ) =
j =0 j =i

x xj xi x j

Cette relation est appele formule dinterpolation de L AGRANGE et les polynmes L i sont les polynmes caractristiques (de L AGRANGE).

Exemple
Pour m = 2 le polynme de Lagrange scrit P (x ) = y 0 (x x 1 )(x x 2 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) + y1 + y2 (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 )

Exemple
On cherche le polynme dinterpolation de L AGRANGE qui en 1 vaut 8, en 0 vaut 3 et en 1 vaut 6. On a P (x ) = y 0 (x x 1 )(x x 2 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) + y1 + y2 (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 ) x (x 1) (x + 1)(x 1) (x + 1)x =8 +3 +6 = 4x 2 x + 3. 2 1 2

Remarque
Si m est petit il est souvent plus simple de calculer directement les coefcients a 0 , a 1 , . . ., a m en rsolvant le systme linaire (2.2).

48

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Soit f : R R une fonction continue donne et soit x 0 , x 1 , x 2 , . . . , x m , (m +1) points distincts donns. Interpoler la fonction f aux points x i , 0 i m signie chercher un polynme P m de degr m tel que P m (x i ) = f (x i ) La solution de ce problme est donc donne par
m

pour 0 i m .

(2.3)

P m (x ) =
i =0

f ( x i )L i ( x ) R m [ x ]

o L i (x ) =
j =0 j =i

x xj xi x j

et le polynme P m est appele interpolant de f de degr m aux points x 0 , x 1 , x 2 , . . . , x m .

Exemple

Soit f : R R la fonction dnie par f (x ) = e x . On cherche linterpolant de f aux points 1, 0, 1. On a P (x ) = f (x 0 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) (x x 1 )(x x 2 ) + f (x 1 ) + f (x 2 ) (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 ) 1 x (x 1) (x + 1)(x 1) (x + 1)x e 2 e 1 1 = x + x + 1. + +e = 1 e 2 1 2 2e 2 2 2e

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

1 e

Proposition Erreur
Si y i = f (x i ) pour i = 0, 1, . . . , n , f : I R tant une fonction donne de classe C n +1 ( I ) o I est le plus petit intervalle contenant les nuds { x i }n , lerreur dinterpolation au point x I est donn par i =0 E n (x ) f (x ) P n (x ) = o I et n +1 (x )
n i =0

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

(x x j ).

videmment, E n (x i ) = 0 pour i = 0, 1, . . . , n . De plus, dans le cas dune distribution uniforme de nuds, i.e. quand x i = x i 1 + h avec i = 1, 1, . . . , n et h > 0 et x 0 donns, max|E n (x )|
x I

maxx I | f (n +1) (x )| n +1 h . 4(n + 1)

Attention
priori on pourrait penser que cette erreur tend vers 0 quand n + puisque lim h n +1 = 0. 4(n + 1)
n +

n +

En ralit il existe des fonctions f pour lesquelles maxx I |E n (x )| +. Ce rsultat frappant indique quen augmentant 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 RUNGE
Ce phnomne est bien illustr par la fonction de RUNGE : soit la fonction f : [5, 5] R dnie par f (x ) = est inniment drivable sur [5, 5] et | f (n ) (5)| devient trs rapidement grand lorsque n tend vers linni. Si on considre une distribution uniforme des nuds on voit que lerreur tend vers linni quand n tend vers linni. Ceci est li au fait que la quantit
h maxx [5,5] | f (n +1) (x )| tend plus vite vers linni que 4( n +1) tend vers zro. La gure 2.1a montre ses polynmes interpolants de degrs 3, 5 et 10 pour une distribution quirepartie des nuds. Cette absence de convergence est galement mise en vidence par les fortes oscillations observes sur le graphe du polynme dinterpolation (absentes sur le graphe de f ), particulirement au voisinage des extrmits de lintervalle. Ce comportement est connu sous le nom de phnomne de RUNGE. On peut viter le phnomne de RUNGE en choisissant correctement la distribution des nuds dinterpolation. Sur un intervalle [a , b ], on peut par exemple considrer les nuds de C HEBYSHEV-G AUSS -L OBATTO (voir gure 2.1b)
n +1

1 . La fonction f 1+ x 2

xi =

a +b b a cos i , 2 2 n

pour i = 0, . . . , n

Pour cette distribution particulire de nuds, il est possible de montrer que, si f est drivable sur [a , b ], alors P n converge vers f quand n + pour tout x [a , b ]. Les nuds de C HEBYSHEV-G AUSS -L OBATTO, qui sont les abscisses des nuds quirpartis sur le demi-cercle unit, se trouvent lintrieur de [a , b ] et sont regroups prs des extrmits de lintervalle. Ces gures ont t obtenue par les instructions suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

from matplotlib.pylab import * def lagrange(t,x,y): p = 0 n = len(x) L = [1 for i in range(n)] for i in range(n): for j in range(n): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) p += y[i]*L[i] return p def f(x): return 1./(1.+x**2)

"Noeuds quirpartis"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

x1 x2 x3 y1 y2 y3

= = = = = =

linspace(-5,5,3) linspace(-5,5,5) linspace(-5,5,10) f(x1) f(x2) f(x3)

# Calcul des polynomes en plusieurs points dun intervalle pour affichage t = arange(-5,5,.1) l1t = [] l2t = [] l3t = [] for k in t: l1t.append(lagrange(k,x1,y1)) l2t.append(lagrange(k,x2,y2)) l3t.append(lagrange(k,x3,y3)) plot(t,f(t),r-,t,l1t,b:,t,l2t,m-.,t,l3t,y--) legend([f,p_3,p_5,p_10],loc=lower center) axis([-5, 5, -0.5, 1]) show()

"Noeuds de C HEBYSHEV-G AUSS -L OBATTO"


1 2 3 4 5

def Tchebychev(a,b,n): return [0.5*(a+b)-0.5*(b-a)*cos(pi*i/(n-1)) for i in range(n)] x1 = Tchebychev(-5,5,3) x2 = Tchebychev(-5,5,5)

50

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

1.0 0.8 0.6 0.4 0.2 0.0 0.2 0.4 4 2

1.0 0.8 0.6 0.4 0.2 0.0

f p_3 p_5 p_10


0
(a)

0.2 0.4 2 4 4 2

f p_3 p_5 p_10


0
(b)

F IGURE 2.1.: Interpolation de L AGRANGE, exemple de RUNGE

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

x3 y1 y2 y3

= = = =

Tchebychev(-5,5,10) [f(x) for x in x1] [f(x) for x in x2] [f(x) for x in x3]

# Calcul des polynomes en plusieurs points dun intervalle pour affichage t = arange(-5,5,.1) l1t = [] l2t = [] l3t = [] for k in t: l1t.append(lagrange(k,x1,y1)) l2t.append(lagrange(k,x2,y2)) l3t.append(lagrange(k,x3,y3)) plot(t,f(t),r-,t,l1t,b:,t,l2t,m-.,t,l3t,y--) legend([f,p_3,p_5,p_10],loc=lower center) axis([-5, 5, -0.5, 1]) show()

2.3. Polynme dH ERMITE ou polynme osculateur


On peut gnraliser linterpolation de L AGRANGE pour prendre en compte, en plus des valeurs nodales, les valeurs de la drive du polynme interpolateur dans ces nuds. Considrons n + 1 triplets (x i , y i , y i ), le problme est de trouver un polynme m (x ) = a 0 + a 1 x + . . . a m x m Pm tel quel m (x i ) = y i , m (x i ) = 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 :

Thorme
tant donn n + 1 points distincts x 0 , . . . , x n et n + 1 couples correspondantes ( y 0 , y 0 ), . . . , ( y n , y n ), il existe un unique

G. Faccanoni

51

2. Interpolation

Jeudi 31 janvier 2013

polynme 2n +1 P2n +1 tel que 2n +1 (x i ) = y i et 2n +1 (x i ) = y i , pour i = 0, . . . n quon peut crire sous la forme L i (x ) ci A i (x ) B i (x )
n

= =

j =0 j =i n j =0 j =i

x x j x i x j 1 x i x j

, ,

Q (x ) =
i =0

y i A i (x ) + y i B i (x ) P2n +1

= (1 2(x x i )c i )(L i (x ))2 , = (x x i )(L i (x ))2 ,

quon peut rcrire comme L i (x )


n

Q (x ) =
i =0

( y i D i (x ) + y i (x x i ))(L i (x ))2

1 ci = x i x j , j = 0 j =i D (x ) = 1 2(x x )c . i i i

j =0 j =i n

x x j x i x j

Cette relation est appele formule dinterpolation de H ERMITE.

Exemple
Pour n = 2 le polynme de Hermite scrit Q (x ) = y 0 1 2(x x 0 ) + y 1 1 2(x x 1 ) 1 1 + x0 x1 x0 x2 (x x 1 )(x x 2 ) 2 (x x 1 )(x x 2 ) 2 + y 0 (x x 0 ) (x 0 x 1 )(x 0 x 2 ) (x 0 x 1 )(x 0 x 2 ) (x x 0 )(x x 2 ) 2 (x x 0 )(x x 2 ) 2 + y 1 (x x 1 ) (x 1 x 0 )(x 1 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x x 0 )(x x 1 ) 2 (x x 0 )(x x 1 ) 2 + y 2 (x x 2 ) , (x 2 x 0 )(x 2 x 1 ) (x 2 x 0 )(x 2 x 1 )

1 1 + x1 x0 x1 x2 1 1 + y 2 1 2(x x 2 ) + x2 x0 x2 x1

quon peut rcrire comme Q (x ) = y 0 1 2(x x 0 ) + y 1 1 2(x x 1 ) 1 1 + x0 x1 x0 x2 + y 0 (x x 0 ) + y 1 (x x 1 ) + y 2 (x x 2 ) (x x 1 )(x x 2 ) 2 (x 0 x 1 )(x 0 x 2 ) (x x 0 )(x x 2 ) 2 (x 1 x 0 )(x 1 x 2 ) (x x 0 )(x x 1 ) 2 . (x 2 x 0 )(x 2 x 1 )

1 1 + x1 x0 x1 x2 1 1 + + y 2 1 2(x x 2 ) x2 x0 x2 x1

Remarque
Si n est petit on peut calculer directement les coefcients a 0 , a 1 , . . ., a 2n +1 en rsolvant le systme linaire de 2n + 2 quations 2n +1 = y0 a 0 + a 1 x 0 + . . . a 2n +1 x 0 2n +1 a + a x + . . . a x = y1 0 1 1 2n +1 1 ... a + a x + . . . a x 2n +1 = y
n 1 n 2n +1 n

2n +11 a 1 + a 2 x 0 + . . . 2n + 1a 2n +1 x 0 = y0 2n +11 a 1 + a 2 x 0 + . . . 2n + 1a 2n +1 x 1 = y1 . . . 2n +11 a n + a 1 x n + . . . 2n + 1a 2n +1 x n = yn

i.e.

1 1 . . . 1 0 0 . . . 0

x0 x1 xn x0 x1 xn

... ... . . . ... ... ... . . . ...

2n +1 x0 2n +1 a0 x1 a 1 . . . . . . 2n +1 xn = 2n +11 . . 2n + 1 x 0 . 2n +11 2n + 1 x 1 . . . . . . a 2n +1 2n +11 2n + 1 x n


(2n +2)1

y0 y1 . . . yn y0 y1 . . . yn
(2n +2)1

(2n +2)(2n +2)

52

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

On veut voir si avec linterpolation dH ERMITE on arrive mieux approcher la fonction de RUNGE. Soit la fonction f : [5, 5] R dnie par f (x ) = 1 2 . La gure ci-dessous montre les polynmes interpolants de degrs 3, 5 et 10 pour une distribution quirepartie 1+ x des nuds.
1.0

Exemple RUNGE

0.5

0.0

0.5

1.0

f q_3 q_5 q_10


4 2 0 2 4

Cette gure a t obtenue par les instructions :


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

from matplotlib.pylab import * def hermite(t,x,y,dy): p = 0 n = len(x) L = [1 for i in range(n)] c = [0 for i in range(n)] for i in range(n): for j in range(len(x)): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) c[i] += 1./(x[i]-x[j]) p += (y[i]*(1.-2.*(t-x[i])*c[i])+dy[i]*(t-x[i]))*L[i]**2 return p def f(x): return 1./(1.+x**2) def df(x): return -2.*x/(1.+x**2)**2 # INPUT x1 = linspace(-5,5,3) x2 = linspace(-5,5,5) x3 = linspace(-5,5,10) y1 = f(x1) y2 = f(x2) y3 = f(x3) dy1 = df(x1) dy2 = df(x2) dy3 = df(x3) # Calcul des polynomes en plusieurs points dun intervalle pour affichage t = arange(-5,5,.1) h1t = [] h2t = [] h3t = [] for k in t: h1t.append(hermite(k,x1,y1,dy1)) h2t.append(hermite(k,x2,y2,dy2)) h3t.append(hermite(k,x3,y3,dy3)) plot(t,f(t),r-,t,h1t,b:,t,h2t,m-.,t,h3t,y--) legend([f,q_3,q_5,q_10],loc=lower center) axis([-5, 5, -1, 1]) show()

G. Faccanoni

53

2. Interpolation

Jeudi 31 janvier 2013

Mme avec linterpolation dH ERMITE on voit que lerreur tend vers linni quand n tend vers linni pour une distribution uniforme des nuds.

Algorithmes
L AGRANGE : n Require: t , n , (x i , y i ) i =0 p 0 for i = 0 to n do Li 1 for j = 0 to n do if j = i then t xj Li Li xi x j end if end for p p + yi Li end for return p H ERMITE : n Require: t , n , (x i , y i , y i ) i =0 p 0 for i = 0 to n do Li 1 for j = 0 to n do if j = i then t xj Li Li xi x j 1 ci + ci xi x j end if end for p p + y i (1 2(t x i ) c i ) + y i (t x i ) L 2 i end for return p

2.4. Splines : interpolation par morceaux


Linterpolation aux nuds de Chebyshev fournit une approximation prcise de toute fonction rgulire f dont lexpression est connue. Quand f nest pas rgulire ou quand f nest connue quen certains points (qui ne concident pas avec les nuds de Chebyshev), on peut recourir une autre mthode dinterpolation, appele interpolation composite.

Dnition
tant donn n + 1 points distincts x 0 , . . . , x n de [a ; b ] avec a = x 0 < x 1 < < x n = b , la fonction s k : [a ; b ] R est une spline de degr k relative aux nuds {x i } si s k (x )|[xi ;xi +1] Rk [x ], i = 0, 1, . . . , n 1, s k C k 1 ([a ; b ]).

videmment tout polynme de degr k est une spline, mais en pratique une spline est constitue de polynmes diffrents sur chaque sous-intervalle. Il peut donc y avoir des discontinuits de la drive k -ime aux nuds internes x 1 , . . . , x n 1 .

2.4.1. Interpolation linaire composite


tant donn une distribution (non ncessairement uniforme) de nuds x 0 < x 1 < < x n , on approche f par une fonction continue qui, sur chaque intervalle [x i , x i +1 ], est dnie par le segment joignant les deux points (x i , f (x i )) et (x i +1 , f (x i +1 )). Cette fonction est appele interpolation linaire par morceaux (ou spline linaire).

Dnition Splines linaires


tant donn n + 1 points distincts x 0 , . . . , x n de [a ; b ] avec a = x 0 < x 1 < < x n = b , la fonction : [a ; b ] R est une spline linaire relative aux nuds {x i } si (x )|[xi ;xi +1] R1 , i = 0, 1, . . . , n 1, C 0 ([a ; b ]). Autrement dit, dans chaque sous-intervalle [x i ; x i + 1], la fonction : [x i , x i +1 ] R est le segment qui connecte le point (x i , y i ) au point (x i +1 , y i +1 ) ; elle scrit donc (x )|[xi ;xi +1] = y i + y i +1 y i (x x i ) x i +1 x i

54

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Il est intressant de noter que la commande plot(x,y), utilise pour afcher le graphe dune fonction f sur un intervalle donn [a , b ], remplace en fait la fonction par une interpole linaire par morceaux, les points dinterpolation tant les composantes du vecteur x.

Proposition Erreur
Si y i = f (x i ) pour i = 0, 1, . . . , n et f : [a ; b ] R est une fonction donne de classe C 2 ([a ; b ]), alors on peut majorer lerreur dinterpolation au point x [a ; b ] par max | f (x ) (x )| (b a )2 max | f (x )|. x [a ;b ] 8

x [a ;b ]

Par consquent, pour tout x dans lintervalle [a ; b ], (x ) tend vers f (x ) quand n +, condition que f soit assez rgulire. Le principale dfaut de cette interpolation par morceaux est que nest que continue. Or, dans des nombreuses applications, il est prfrable dutiliser des fonctions ayant au moins une drive continue. On peut construire pour cela une fonction s 3 comme linterpolation dH ERMITE des points (x i , f (x i ), f (x i )) et (x i +1 , f (x i +1 ), f (x i +1 )) sur chaque [x i ; x i + 1] pour i = 0, 1, . . . , n 1.

2.5. Approximation de drives


Soit f : R R une fonction de classe C 1 (R), x i R et f sa drive. On sait que f (x i ) = lim f (x i + h ) f (x i ) h f (x i ) f (x i h ) = lim h 0 h f (x i + h /2) f (x i h /2) = lim . h 0 h
h 0

Une ide naturelle pour calculer numriquement f (x i ) consiste donc se donner une valeur de h positive assez petite et calculer f ( x i ) + h f (x i ) f (x i + h ) f (x i ) , h f (x i ) f (x i h ) f ( x i ) , h f (x i ) h f (x i + h ) f (x i h ) f ( x i ) h f ( x i ) , 2h (2.4) (2.5) (2.6)

f (x i + h ) f (x i )

f (x )

On les appelles taux daccroissement ou diffrences nies droite (ou progressive) + , h gauche (ou rtrograde) , h centre h .

f (x i h ) h xi h xi h xi + h x

Si f est de classe C 3 , en crivant le dveloppement de Taylor de f en x autour du point x i f (x i h ) = f (x i ) h f (x i ) + h 2 f (x i ) + O (h 3 ), on obtient f (x i + h ) f (x i ) f (x i ) + h f (x i ) + h 2 f (x i ) + O ((h )3 ) f (x i ) = = f (x i ) + O (h ), h h f ( x i ) f ( x i h ) f ( x i ) f ( x i ) + h f ( x i ) h 2 f ( x i ) + O (h 3 ) = = f (x i ) + O (h ), h h f ( x i + h ) f ( x i h ) f ( x i ) + h f ( x i ) + (h )2 f ( x i ) + O (h 3 ) f ( x i ) + h f ( x i ) (h )2 f ( x i ) = = f (x i ) + O (h 2 ). 2h 2h Donc, si f est assez rgulire, les diffrences nies convergent vers f (x i ) lorsque h tend vers zro. De plus, pour les diffrences nies gauche et droite la convergence est dordre 1 alors que la diffrence nie centre converge lordre 2.

G. Faccanoni

55

2. Interpolation

Jeudi 31 janvier 2013

Exemple
On compare pour diffrentes valeurs de h les valeurs donnes par ces trois formules pour la drive de la fonction sinus en 0 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

from math import * def DFgauche(f,x,h): return (f(x+h)-f(x))/h def DFdroite(f,x,h): return (f(x)-f(x-h))/h def DFcentree(f,x,h):
return (f(x+0.5*h)-f(x-0.5*h))/h

# TEST def f(x): return sin(x) x = 0 for i in range(1,13): h = 10**(-i) dfg = DFgauche(f,x,h) dfd = DFdroite(f,x,h) dfc = DFcentree(f,x,h) 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 2 3 4 5 6 7 8 9 10 11 12

1e-01 1e-02 1e-03 1e-04 1e-05 1e-06 1e-07 1e-08 1e-09 1e-10 1e-11 1e-12

0.998334166468282 0.999983333416666 0.999999833333342 0.999999998333333 0.999999999983333 0.999999999999833 0.999999999999998 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000

0.998334166468282 0.999983333416666 0.999999833333342 0.999999998333333 0.999999999983333 0.999999999999833 0.999999999999998 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000

0.999583385413567 0.999995833338542 0.999999958333334 0.999999999583333 0.999999999995833 0.999999999999958 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000

Dnition Erreur de troncature


Les diffrences | f ( x i ) + h |, | f ( x i ) h |, sont appeles erreur de troncature. Elles sont dordre h et on dit que les diffrences nies sont consistantes lordre 1 en h . De mme, lerreur de troncature | f ( x i ) h |, est dordre h 2 et on dit que la diffrence nie est consistante lordre 2 en h . Elle est ainsi plus prcise que les formules de diffrences nies progressives et rtrogrades.

Remarque Erreurs darrondis


ailleurs, daprs lingalit de Taylor-Lagrange, on a | f (x i ) | h |f (x i ) t( )| h 2 h max | f
| f (x )| ( x )| + 2 h .

Les erreurs de troncature diminuent lorsque h diminue. En revanche, les erreurs darrondis augmentent lorsque h diminue. En effet, le calcul de se fait avec une prcision absolue de lordre de 2 | f (x )|/h o 1015 . Par h
h 2

max | f (x )|. Lingalit triangulaire entrane alors


h 2

Une tude rapide de la fonction h max | f


| f (x )| . (x )|

max | f (x )| + 2

| f (x )| h

montre que cette

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

Pour une fonction sufsamment rgulire, il

est donc judicieux de choisir une valeur de h qui soit de lordre de

, cest--dire de lordre de 108 .

56

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Exemple
Par exemple, en utilisant le code de lexemple prcdent pour calculer la drive premire de la fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 + x en 0, on obtient

1e-01 1e-02 1e-03 1e-04 1e-05 1e-06 1e-07 1e-08 1e-09 1e-10 1e-11 1e-12 1e-13 1e-14

0.488088481701516 0.498756211208895 0.499875062460964 0.499987500623966 0.499998750003172 0.499999875058776 0.499999988079480 0.499999996961265 0.500000041370185 0.500000041370185 0.500000041370185 0.500044450291171 0.499600361081320 0.488498130835069

0.513167019494862 0.501256289338003 0.500125062539047 0.500012500624925 0.500001250003379 0.500000124969979 0.500000012504387 0.500000008063495 0.500000041370185 0.500000041370185 0.500000041370185 0.500044450291171 0.500710584105946 0.499600361081320

0.500156421150636 0.500001562517094 0.500000015625002 0.500000000157597 0.500000000014378 0.499999999958867 0.499999999181711 0.499999996961265 0.500000041370185 0.500000041370185 0.500000041370185 0.500044450291171 0.498490138056695 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 (x i ) et on a lestimation derreur : f (x i + h ) 2 f (x i ) + f (x i h ) h2 f (x i ) + h f (x i ) + (h )2 f (x i ) + O ((h )3 ) 2 f (x i ) + f (x i ) h f (x i ) + (h )2 f (x i ) = h2 = f (x i ) + O (h 2 ). f (x i + h ) 2 f (x i ) + f (x i h ) . (h )2

Conclusion

1. Approcher un ensemble de donnes ou une fonction f dans [a , b ] consiste trouver une fonction f capable de les reprsenter avec sufsamment de prcision ; linterpolation polynomiale consiste dterminer un polynme p tel que p (x i ) = y i , o les { x i } sont des nuds donns et les y i sont soit de la forme f (x i ) , soit des valeurs prescrites ; 2. si les n + 1 nuds { x i } sont distincts, il existe un unique polynme de degr infrieur ou gal n qui interpole les valeurs donnes y i aux nuds { x i } ; 3. pour une distribution de nuds quidistants dans [a , b ], lerreur dinterpolation en un point quelconque de [a , b ] ne tend pas ncessairement vers 0 quand n tend vers linni. Nanmoins, il existe des nuds particuliers, par exemple ceux de C HEBYSHEV, pour lesquels on a cette proprit de convergence pour toutes les fonctions continment diffrentiables ;

4. linterpole linaire par morceaux dune fonction f est la fonction continue, linaire par morceaux, , qui interpole f en un ensemble de nuds { x i }. Avec cette approximation, on vite le phnomne de RUNGE quand le nombre de nuds augmente.

Ce quon na pas dit


1. 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 efcace qui permet le calcul des coefcients 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 fois continment drivable. 3. Augmenter le degr dun polynme dinterpolation de Lagrange namliore pas toujours lapproximation dune fonction donne. Ce problme peut tre rsolu avec linterpolation composite (avec des fonctions linaires par morceau ou 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 de lintervalle 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. En particulier, linterpolation composite, base sur des fonctions linaires par morceaux ou des splines cubiques, est bien adapte quand le domaine est subdivis en polygones en 2D (triangles ou quadrilatres) ou en polydres en 3D (ttradres ou prismes).

58

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Voici 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 ordonnes des points dinterpolation et dy est une liste qui contient la valeur de la drive aux points dinterpolation. Elles renvoient lvaluation du polynme en t. Mthodes numriques.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

/////////////

Codes Python

////////////

def lagrange(t,x,y): p = 0 n = len(x) L = [1 for i in range(n)] for i in range(n): for j in range(n): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) p += y[i]*L[i] return p def hermite(t,x,y,dy): p = 0 n = len(x) L = [1 for i in range(n)] c = [0 for i in range(n)] for i in range(n): for j in range(len(x)): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) c[i] += 1./(x[i]-x[j]) p += (y[i]*(1.-2.*(t-x[i])*c[i])+dy[i]*(t-x[i]))*L[i]**2 return p

et voici un exemple dutilisation de ces fonctions : Cas test.


24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

from matplotlib.pylab import * # INPUT x = [1,2,3,4,5] y = [0,1,0,1,0] dy = [-1,1,0,-1,0] # Calcul des polynomes en un point t = 1.5 print "La valeur du polynome de Lagrange en", t, "est", lagrange(t,x,y) print "La valeur du polynome de Hermite en", t, "est", hermite(t,x,y,dy) # Calcul des polynomes en plusieurs pointd dun intervalle pour affichage axis([0, 6, -2, 2]) t = arange(0,6,.1) lt = [] ht = [] for k in t: lt.append(lagrange(k,x,y)) ht.append(hermite(k,x,y,dy)) plot(x,y,ro,t,lt,b,t,ht,m) show()

G. Faccanoni

59

2. Interpolation

Jeudi 31 janvier 2013


Exercice 2.1

Exercices



Construire le polynme de Lagrange P qui interpole les points (0, 2), (1, 1), (2, 2) et (3, 3).

C ORRECTION .

Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

x xj . x x
i j

p n (x ) =
i =0

yi

j =0 j =i

Ici n = 3 donc on a y P (x ) = y 0 (x x 1 )(x x 2 )(x x 3 ) (x x 0 )(x x 2 )(x x 3 ) + y1 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 3 ) (x x 0 )(x x 1 )(x x 2 ) + y2 + y3 = (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) 3 P (x )

=2

(x 1)(x 2)(x 3) (x 0)(x 2)(x 3) + (0 1)(0 2)(0 3) (1 0)(1 2)(1 3) (x 0)(x 1)(x 3) (x 0)(x 1)(x 2) +2 +3 = (2 0)(2 1)(2 3) (3 0)(3 1)(3 2) (x 1)(x 2)(x 3) x (x 2)(x 3) + 3 2 x (x 1)(x 2) 1 8 x (x 1)(x 3) + = x 3 + 2x 2 x + 2. 2 3 3
3 i i =0 a i x

Sinon, comme on cherche p (x ) = solution du systme linaire

un polynme de degr 3, il sagit de trouver les 4 coefcients a 0 , a 1 , a 2 et a 3

a 0 + a 1 0 + a 2 02 + a 3 03 = 2 a + a 1 + a 12 + a 13 = 1 0 1 2 3 a 0 + a 1 2 + a 2 22 + a 3 23 = 2 a 0 + a 1 3 + a 2 32 + a 3 33 = 3 1 1 1 1 0 1 2 3 0 1 4 9 0 1 8 27 L L L 2 2 1 2 L 3 L 3 L 1 1 L 4 L 4 L 1 2 3 1 0 0 0 0 1 2 3 0 1 4 9 0 1 8 27

i.e.

1 1 1 1 1 0 0 0

0 1 2 3 0 1 0 0

0 1 4 9 0 1 2 6

0 a0 2 a 1 1 1 = 8 a 2 2 27 a 3 3 0 1 6 24 2 1 L 4 L 4 3L 3 2 4 1 0 0 0 0 1 0 0 0 1 2 0 0 1 6 6 2 1 2 2

2 L 3 L 3 2L 2 1 L 4 L 4 3L 2 0 1

8 donc a 3 = 1 3 , a 2 = 2, a 1 = 3 et a 0 = 2.

Exercice 2.2
Trouver le polynme de lespace vectoriel Vec{1 + x 2 , x 4 } qui interpole les points (0, 1) et (1, 3).

C ORRECTION . Il sagit de trouver un polynme p (x ) qui soit combinaison linaire des deux polynmes assigns (i.e. p (x ) = (1 + x 2 ) + (x 4 )) 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, 1 y 3 p (x )

do = 1 et = 1. Le polynme cherch est donc le polynme p (x ) = 1 + x 2 + x 4 .

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 (x 1). C ORRECTION . Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

x xj . x j =0 i x j
j =i

p n (x ) =
i =0

yi

1. Ici n = 3 donc on a P (x ) = y 0 (x x 1 )(x x 2 )(x x 3 ) (x x 0 )(x x 2 )(x x 3 ) + y1 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 3 ) (x x 0 )(x x 1 )(x x 2 ) + y2 + y3 (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) = (x + 1)x (x 1) x (x 1)(x 2) (x + 1)(x 1)(x 2) + (x + 1)x (x 2) + = 3 2 2

1 1 = x 3 + x 2 + x + 1. 3 3 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 signie quil existe un polynme R (x ) tel que Q (x ) P (x ) = R (x )(x + 1)x (x 1). 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 en facteur 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 ) = y 0 (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) (x x 1 )(x x 2 ) + y1 + y2 (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 )

= x (x 1) (x + 1)(x 1) + (x + 1)x = x 2 + 1. Ainsi Q (x ) P (x ) = y 0 (x x 1 )(x x 2 ) x x3 (x x 0 )(x x 2 ) x x3 1 + y1 1 (x 0 x 1 )(x 0 x 2 ) x0 x3 (x 1 x 0 )(x 1 x 2 ) x1 x3 (x x 0 )(x x 1 ) x x3 (x x 0 )(x x 1 )(x x 2 ) + y2 1 y3 (x 2 x 0 )(x 2 x 1 ) x2 x3 (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) (x x 0 )(x x 1 )(x x 2 ) (x x 0 )(x x 1 )(x x 2 ) y1 = y0 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 2 ) (x x 0 )(x x 1 )(x x 2 ) y2 y3 (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) y0 y1 = + (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) y2 y3 + + (x x 0 )(x x 1 )(x x 2 ) (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) (x + 1)x (x 1) = 3

G. Faccanoni

61

2. Interpolation

Jeudi 31 janvier 2013

et = 1 3 . Sinon directement 1 1 1 1 (x + 1)x (x 1) Q (x ) P (x ) = x 2 + 1 + x 3 x 2 + x 1 = x 3 + x = = x (x + 1)(x 1) 3 3 3 3 3 avec = 1 3. y Q (x )

3 x3 2 x0 x2 P (x ) x1

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 , x 2 } qui interpole les trois points (1, 1), (0, 0) et (1, 1). C ORRECTION . 1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

x xj . x x
i j

p n (x ) =
i =0

yi

j =0 j =i

Ici n = 2 donc on a y e P (x ) = y 0 (x x 1 )(x x 2 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) + y1 + y2 = (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 ) x (x 1) (x + 1)x =e (x + 1)(x 1) + e = 2 2 2 = (e 1)x + 1. P (x )

1 2.

62

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Il suft de changer les coefcients y i dans lexpression prcdente : x (x 1) (x + 1)x = x 2 . 2 2

y 1 0 1 x

Q (x ) =

Q (x )

3. Il sagit de trouver un polynme p (x ) qui soit combinaison linaire des deux polynmes assigns (i.e. p (x ) = + x + x 2 ) 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 ) = x 2 . En fait, il sufsait de remarquer que le polynme Q Vec{1, x , x 2 } 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 (x 1). Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

C ORRECTION .

x xj . x x
i j

p n (x ) =
i =0

yi

j =0 j =i

1. Ici n = 3 donc on a P (x ) = y 0 (x x 1 )(x x 2 )(x x 3 ) (x x 0 )(x x 2 )(x x 3 ) + y1 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 3 ) (x x 0 )(x x 1 )(x x 2 ) + y2 + y3 (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) x (x 1)(x 2) (x + 1)(x 1)(x 2) (x + 1)x (x 1) + (x + 1)x (x 2) + = 6 2 2

1 1 2 = x 3 + x 2 + x + 1. 6 2 3 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 signie quil existe un polynme R (x ) tel que Q (x ) P (x ) = R (x )(x + 1)x (x 1). 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 en facteur 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 ) = y 0 (x x 1 )(x x 2 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) + y1 + y2 (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 )

G. Faccanoni

63

2. Interpolation

Jeudi 31 janvier 2013

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

1 1 = x 2 + x + 1. 2 2 Ainsi Q (x ) P (x ) = y 0 x x3 (x x 0 )(x x 2 ) x x3 (x x 1 )(x x 2 ) 1 + y1 1 (x 0 x 1 )(x 0 x 2 ) x0 x3 (x 1 x 0 )(x 1 x 2 ) x1 x3 (x x 0 )(x x 1 ) x x3 (x x 0 )(x x 1 )(x x 2 ) + y2 1 y3 (x 2 x 0 )(x 2 x 1 ) x2 x3 (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) (x x 0 )(x x 1 )(x x 2 ) (x x 0 )(x x 1 )(x x 2 ) = y0 y1 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 2 ) (x x 0 )(x x 1 )(x x 2 ) y2 y3 (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) y0 y1 = + (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) y2 y3 (x x 0 )(x x 1 )(x x 2 ) + + (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) (x + 1)x (x 1) = 6

et = 1 6 . Sinon directement 1 1 1 1 2 1 1 1 Q (x ) P (x ) = x 2 + x + 1 + x 3 x 2 x 1 = x 3 x = x (x 2 1) = x (x + 1)(x 1) 2 2 6 2 3 6 6 6 avec = 1 6. Q (x ) y 3 x3 2 x2 1 x0 x1 P (x )

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 ? C ORRECTION . 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 {(x i , y i )}n scrit i =0
n n

x xj . x x
i j

p n (x ) =
i =0

yi

j =0 j =i

64

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Ici n = 2 donc on a P (x ) = y 0 = (x x 1 )(x x 2 ) (x x 0 )(x x 2 ) (x x 0 )(x x 1 ) + y1 + y2 + (x 0 x 1 )(x 0 x 2 ) (x 1 x 0 )(x 1 x 2 ) (x 2 x 0 )(x 2 x 1 )

x (x 1) (x + 1)(x 1) (x + 1)x + + = 2 1 2 = x (x 1) (x + 1)(x 1) + x (x + 1) 2 2 = ( ) x 2 + . 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 a 0 + a 1 x qui ne peut pas tre pair.

Exercice 2.7
Vrier que le polynme dinterpolation dH ERMITE dune fonction f en un point concide avec le polynme de TAYLOR dordre 1 de f en ce point. C ORRECTION . Le polynme dinterpolation dH ERMITE en un point (x 0 , f (x 0 ), f (x 0 )) est lunique polynme q R1 [x ] qui vrie q (x 0 ) = f (x 0 ) et q (x 0 ) = f (x 0 ). On cherche alors a 0 et a 1 tels que q (x ) = a 0 + a 1 x : q (x 0 ) = f (x 0 ), q (x 0 ) = f (x 0 ), donc q (x ) = f (x 0 ) + (x x 0 ) f (x 0 ). a 0 + a 1 x 0 = f (x 0 ), a 1 = f (x 0 ), a 0 = f (x 0 ) x 0 f (x 0 ), a 1 = f (x 0 ),

Exercice 2.8
Soit f une fonction de classe C 1 et x 0 D f . Soit le polynme dinterpolation de L AGRANGE de f en x 0 et h le polynme dinterpolation dH ERMITE en x 0 . Calculer h (x ) (x ). C ORRECTION . Le polynme dinterpolation de L AGRANGE de f en x 0 est lunique polynme R0 [x ] qui vrie (x 0 ) = f (x 0 ), donc (x ) = f (x 0 ). Le polynme dinterpolation dH ERMITE de f en x 0 est lunique polynme h R1 [x ] qui vrie h (x 0 ) = f (x 0 ) et h (x 0 ) = f (x 0 ). On cherche alors a 0 et a 1 tels que h (x ) = a 0 + a 1 x : h (x 0 ) = f (x 0 ), h (x 0 ) = f (x 0 ), a 0 + a 1 x 0 = f (x 0 ), a 1 = f (x 0 ), a 0 = f (x 0 ) x 0 f (x 0 ), a 1 = f (x 0 ),

donc h (x ) = f (x 0 ) + (x x 0 ) f (x 0 ) et h (x ) (x ) = f (x 0 ) + (x x 0 ) f (x 0 ) f (x 0 ) = (x x 0 ) f (x 0 ).

Exercice 2.9
Soit f : R R une fonction de classe C 1 (R) qui sannule au moins une fois et dont la drive ne sannule pas. Soit x 0 D f donn. Pour i N construisons la suite (x i )i comme suit : x i +1 est la racine du polynme interpolateur dH ERMITE de f en x i . Quelle mthode reconnait-on ? Justier la rponse.

C ORRECTION . Le polynme dH ERMITE dune fonction f en x i a quation q (x ) = f (x i ) + (x x i ) f (x i ) : il sagit de la droite tangente au graphe de f en x i . On cherche x i +1 tel que f (x i ) + (x x i ) f (x i ) = 0, do x i +1 = x i dnie par rcurrence x 0 donne, x i +1 = x i
f (x i ) , f (x i ) f (x i ) . f (x i )

On a alors la suite

qui correspond la mthode de N EWTON pour lapproximation de la racine de f .

Exercice 2.10
Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dHermite (de degr 3) de f vriant

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 .

C ORRECTION . On a deux points dinterpolation (n = 1), on cherche alors un polynme de R3 [x ]. On a deux mthodes pour calculer le polynme interpolateur dH ERMITE :

Premire mthode : le polynme interpolateur dHermite scrit


n

p (x ) =

i =0 Pour n = 1 on a alors

y i (1 2(x x i )c i ) + y i (x x i )

( x x j )2

j =0 (x i x j j =i

)2

ci =

1 . x xj j =0 i
j =i

p (x ) = y 0 1 2(x x 0 ) + y 1 1 2(x x 1 )

1 x0 x1 1 x1 x0

(x x 1 ) (x 0 x 1 ) (x x 0 ) (x 1 x 0 )

+ y 0 (x x 0 )
2

(x x 1 ) (x 0 x 1 ) (x x 0 ) (x 1 x 0 )

+ y 1 (x x 1 )

Dans notre cas x 0 = 1, x 1 = 1, y 0 = f (1), y 1 = f (1), y 0 = f (1), y 1 = f (1) donc p (x ) = 1 f (1)(x + 2)(x 1)2 + f (1)(x + 1)(x 1)2 + f (1)(2 x )(x + 1)2 + f (1)(x 1)(x + 1)2 4 1 = f (1)(x 3 3x + 2) + f (1)(x 3 x 2 x + 1) + f (1)(x 3 + 3x + 2) + f (1)(x 3 + x 2 x 1) 4 2 f (1) + f (1) + 2 f (1) f (1) 3 f (1) 3 f (1) f (1) f (1) = + x 4 4 f (1) f (1) 2 f (1) + f (1) f (1) + f (1) 3 x + x . + 4 4

Le polynme interpolateur dHermite est donc le polynme p (x ) = + x + x 2 + x 3 o = 2 f (1) + 2 f (1) + f (1) f (1) , 4 f (1) + f (1) = , 4 = 3 f (1) + 3 f (1) 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 polynme p (x ) = + x + x 2 + x 3 tel que 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 : 1 1 [A|b] = 0 0 1 1 1 1 1 2 0 0 1 1 2 2 1 0 2 2 1 1 3 3 1 2 2 2 f (1) f (1) L 2 L 2 L 1 f (1) f (1) f (1) f (1) f (1)
f (1) f (1) f (1) 2 f (1) f (1) f (1) 2

p (1) = f (1),

p (1) = f (1),

p (1) = f (1),

1 0 L 4 L 4 1 L 2 3 0
L 3 L 3 1 2 L2

1 1 f (1) 0 2 f (1) f (1) 2 3 f (1) 2 3 f (1) 1 1 1 1 0 2 L 4 L 4 +L 3 0 2 0 0 2 2 0 0 0 4 1 0 0 0 1 2 1 1

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


f (1) f (1) 2

66

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

ainsi = 2 f (1) + 2 f (1) + f (1) f (1) , 4 f (1) + f (1) = , 4 = 3 f (1) + 3 f (1) 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). C ORRECTION . 1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

p n (x ) =
i =0

yi

j =0 j =i

x xj . x x
i j

Ici n = 3 et y i = 0 pour i = 0, 1, 2, 3 donc p 3 (x ) = 0. 2. Comme les points donns appartiennent tous la droite dquation y = 0, il sagit de construire les polynmes de degr 4 qui ont 4 racines relles distinctes { x 1 , x 2 , x 3 , x 4 }. Ils sont tous de la forme r a (x ) = a (x x 1 )(x x 2 )(x x 3 )(x x 4 ) ; ici donc r a (x ) = a (x + 1)x (x 1)(x 2) = a (x 4 2x 3 x 2 + 2x ). 3. tant donn n +1 points distincts x 0 , . . . , x n et n +1 couples correspondantes ( y 0 , y 0 ), . . . , ( y n , y n ), le polynme dH ERMITE Q de degr N = 2n + 1 tel que Q (x i ) = y i et Q (x i ) = y i , pour i = 0, . . . n scrit n x x j L i (x ) = x i x j , j = 0 j =i n 1 ci = x x j , j =0 i j =i A ( x ) = (1 2(x x i )c i )(L i (x ))2 , i B i (x ) = (x x i )(L i (x ))2 .

Q (x ) =
i =0

y i A i ( x ) + y i B i ( x ) RN [ x ]

Ici n = 1 et le polynme de Hermite scrit Q (x ) = y 0 A 0 + y 0 B 0 + y 1 A 1 + y 0 B 1 = B 0 B 1 = (x x 0 ) = x x1 x0 x1


2

(x x 1 )

x x0 x1 x0

= (x + 1)

x 2 3

(x 2)

x +1 3

(x 2)2 (x + 1) (x 2)(x + 1)2 3(x 2)(x + 1) x 2 + x + 2 = = . 9 9 3

Si on a oubli la formule, il suft de remarquer quon cherche un polynme de degr 3 qui a comme racines 1 et 2 et donc qui scrit Q (x ) = (x + 1)(x 2)(ax + b ) = ax 3 + (a + b )x 2 + (b 2a )x 2b ; de plus on sait que Q (1) = 1 et Q (2) = 1, on trouve alors a et b en rsolvant le systme linaire 3a (1)2 + 2(a + b )(1) + (b 2a ) = 1, 3a (2) + 2(a + b )(2) + (b 2a ) = 1,
2

3a + 2a 2b b 2a = 1, 12a 4a + 4b b 2a = 1,

a = 0, b = 1/3.

x 2) On obtient le polynme Q (x ) = (x +1)( . 3 Une autre ide pour calculer le polynme Q sans utiliser la formule ni la remarque prcdente est de calculer directement le polynme selon la dnition : on cherche un polynme de degr 3, donc de la forme Q (x ) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 , qui vrie Q (1) = 0, Q (2) = 0, Q (1) = 1 et Q (2) = 1. On doit alors rsoudre le systme linaire a 0 a 1 +a 2 a 3 x 3 = 0 a +2a +4a +8a x 3 = 0 0 1 2 3 3 a 2 a + 3 a =1 1 2 3x 3 a 1 +4a 2 +12a 3 x = 1

G. Faccanoni

67

2. Interpolation

Jeudi 31 janvier 2013

quon peut rcrire sous la forme Aa = b avec 1 1 1 1 2 4 A= 0 1 2 0 1 4

1 8 , 3 12

a0 a 1 a= a 2 a3

et

0 0 b= 1 1

On utilise la mthode dlimination de Gauss : 1 1 1 1 0 1 0 2 4 8 L 2 L 2 L 1 (A|b) = 0 1 2 3 1 0 1 4 12 1


L 3 L 3 L 2 /3 L 4 L 4 L 3 /3

1 0 0 0 et nalement on obtient a 3 = 0, do Q (x ) = x 2 + x + 2 . 3 y 1 a2 = , 3

1 0 0 0

1 3 1 1

1 2 2 4

1 9 3 12

0 0 1 1 0 0 L 4 L 4 +L 3 1 1 2 a0 = , 3 1 0 0 0 1 3 0 0 1 2 3 0 1 9 0 9 0 0 1 0

1 3 0 0

1 2 3 3

1 9 0 9

1 a1 = , 3

y = x +1

r a (x )

2 Q (x )

x y = x + 2

P (x )

Exercice 2.12
Lesprance de vie dans un pays a volue dans le temps selon le tableau suivant : Anne 1975 1980 1985 1990 Esprance 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 interpolation linaire par morceaux. C ORRECTION . Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}n scrit i =0
n n

p n (x ) =
i =0

yi

j =0 j =i

x xj . x x
i j

Ici n = 3 et si on choisit de poser x 0 = 0 pour lanne 1975, x 1 = 5 pour lanne 1980 etc., on a P (x ) = y 0 (x x 0 )(x x 2 )(x x 3 ) (x x 1 )(x x 2 )(x x 3 ) + y1 (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) (x x 0 )(x x 1 )(x x 3 ) (x x 0 )(x x 1 )(x x 2 ) + y2 + y3 = (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) (x 5)(x 10)(x 15) (x 0)(x 10)(x 15) + 74,2 (0 5)(0 10)(0 15) (5 0)(5 10)(5 15) (x 0)(x 5)(x 15) (x 0)(x 5)(x 10) + 75,2 + 76,4 = (10 0)(10 5)(10 15) (15 0)(15 5)(15 10) 72,8(x 5)(x 10)(x 15) + 3 74,2x (x 10)(x 15) 3 75,2x (x 5)(x 15) + 76,4x (x 5)(x 10) 750

= 72,8

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 sousestim en 1977 et sur-estim en 1988 par rapport linterpolation prcdente car 72,8 lesprance de vie en 1977 correspond 74,2 50 2 + 72,8 = 73,36 < P (2), 74,2 lesprance de vie en 1983 correspond 75,2 105 8 + 73,2 = 74,8 P (8), 76,474,2 lesprance de vie en 1988 correspond 1510 13 + 72,8 = 75,92 > P (13). y 76,4 75,86 75,2 74,81 74,2 73,45 72,8 1975 1977 1980 1983 1985 1988 1990 x P (x )

Exercice 2.13
Pour calculer le zro dune fonction y = f (x ) inversible sur un intervalle [a ; b ] on peut utiliser linterpolation : aprs avoir n valu f sur une discrtisation x i de [a ; b ], on interpole lensemble ( y i , x i ) i =0 et on obtient un polynme x = p ( y ) tel que f (x ) = 0 x = p (0). Utiliser cette mthode pour valuer lunique racine de la fonction f (x ) = e x 2 dans lintervalle [0; 1] avec trois points dinterpolation. Comparer ensuite le rsultat obtenu avec lapproximation du zro de f obtenue par la mthode de Newton en 3 itrations partir de x 0 = 0.

C ORRECTION .

Calculons dabord les valeurs interpoler i 0 1 2 xi 0


1 2

yi 1 e 2 e 2

Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {( y i , x i )}n scrit i =0
n n

y yj . y j =0 i y j
j =i

pn (y ) =
i =0

x i

Ici n = 2 donc on a p ( y ) = x0 = ( y y 1 )( y y 2 ) ( y y 0 )( y y 2 ) ( y y 0 )( y y 1 ) + x1 + x2 ( y 0 y 1 )( y 0 y 2 ) ( y 1 y 0 )( y 1 y 2 ) ( y 2 y 0 )( y 2 y 1 )

1 ( y + 1)( y e + 2) ( y + 1)( y e + 2) + . 2 ( e 2 + 1)( e 2 e + 2) (e 2 + 1)(e 2 e + 2)


1 e +2 2 ( e 2+1)( e 2e +2)

Par consquent une approximation de la racine de f est p (0) = La mthode de Newton scrit x 0 = 0,
xk

+ (e 2+1)(e 2

e +2

e +2)

0.7087486785.

2 x k +1 = x k e e xk = xk 1 + e 2 xk ,

G. Faccanoni

69

2. Interpolation

Jeudi 31 janvier 2013

on obtient ainsi la suite k 0 1 2 3 xk 0 1


2 e 0.7357588825 2e 2 0.6940422999 e 2 ee

Remarque : comme il ny a que trois points dinterpolation, on pourrait calculer directement le polynme interpolateur de f plutt que de sa fonction rciproque et chercher les zros de ce polynme directement car il sagit dun polynme de degr 2. Cependant cette ide ne peu pas tre gnralise au cas de plus de trois points dinterpolation car on ne connait pas de formule gnrale pour le calcul des zros dun polynme de degr n 3.

Exercice 2.14
Soit f une fonction continue dont on connait les valeurs uniquement pour t entier, cest--dire on suppose connues les valeurs f () pour tout Z. Si t R \ Z, on dnit une approximation p (t ) de f (t ) en interpolant la fonction f par un polynme de degr 3 aux quatre points entiers les plus proches de t . Calculer p (t ) et crire un algorithme qui fournit p (t ).

C ORRECTION . points ce qui donne

Soit

= E [t ] la partie entire 2 de t . Alors t [ ; + 1] et il sagit de dnir le polynme p interpolant les ( 1, f ( 1)), (, f ()), ( + 1, f ( + 1)), ( + 2, f ( + 2)),

3 3

P (t ) =
i =0

f ( 1 + i )

t +1 j t ( 1 + j ) = f ( 1 + i ) ( 1 + i ) ( 1 + j ) ij i =0 j =0 j =0
j =i j =i

f ( 1) f ( ) = (t )(t 1)(t 2) + (t + 1)(t 1)(t 2) 6 2 f ( + 1) f ( + 2) (t + 1)(t )(t 2) + (t + 1)(t )(t 1) 2 6 Require: f : Z R, t E [t ] x0 1 x1 x2 + 1 x3 + 2 y 0 for i = 0 to 3 do L1 for j = 0 to 3 do if j = i then t xj L L xi x j end if end for y y + f (x i ) L end for return 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 et E (2.3) = 3. La fonction partie entire est aussi note [x ] (ou x par les anglo-saxons). On a toujours E (x ) x < E (x ) + 1 avec galit si et seulement si x est 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 tre exprim par E (x + 0.5).

70

G. Faccanoni

Jeudi 31 janvier 2013

2. Interpolation

Exercice 2.15
1. Calculer le polynme p de L AGRANGE qui interpole la fonction f (x ) = x 2 = 4. Esquisser les graphes de f et de p pour x [1, 4].
4 x

aux points dabscisse x 0 = 1, x 1 = 2 et

dans lintervalle [2, 4]. Cal2. Vrier que lerreur (x ) f (x ) p (x ) prend sa valeur maximale en un unique point x 101 prs (on pourra utiliser la mthode de dichotomie). culer ensuite x 3. Comparer la fonction avec lestimation thorique de lerreur. C ORRECTION .
7 2 1. f est une hyperbole et p est la parabole qui passe par les points (1, 4), (2, 2) et (4, 1) : p (x ) = 1 2x 2x +7

y 4 2 1 1 2 p f 4 x

1 2 7 4 4 7+ 7 2. On a (x ) f (x ) p (x ) = x 2 x 2 x . Comme (x ) = 2 x x 2 , il sagit de trouver x tel que (x ) = 0. Une simple 7 comparaison des graphes des fonctions u : x 2 x et v : x x42 montre que (x ) = 0 admet une solution dans lintervalle [1, 2] et une solution dans lintervalle [2, 4] (en effet, (1) = u (1) v (1) = 2.5 4 < 0, (2) = u (2) v (2) = 1.5 1 > 0 et (4) = u (4) v (4) < 0). On a (x ) = 1 + 8/x 3 : lerreur tant convexe pour x < 2 et concave pour x > 2, on [2, 4]. On cherche alors x [2, 4] tel que (x ) = 0 par la mthode conclut quelle prend sa valeur maximale pour x = x

de dichotomie. Pour que lerreur soit infrieur 101 , il faut E log2 k [a k , b k ]

42 101

+ 1 = E 2 log2 (2) + log2 (5) + 1 = 5 tapes : 4 3, 25 8 0.125 > 101


49 16

0 1 2 3 7 [2, 4] [3, 4] 3, 2 3, 13 4 7 13 25 3 k 2 4 8 bk ak 2 > 101 1 > 101 0.5 > 101 0.25 > 101 99 32 = 3.09375 et vaut (x ) 0.01166653913. Lerreur prend sa valeur maximale pour x

5
49 25 16 , 8 99 32

0.0625 < 101

3. Comparons ce rsultat avec lestimation thorique de lerreur. n = 2 et f est de classe C ([1, 4]), donc pour tout x [1, 2] il existe x [1, 4] tel que ( x ) = Comme (x ) =
4 x

f ( x ) 3 (x 1)(x 2)(x 4) = 4 (x 3 7x 2 + 14x 8). 3! x


4

1 2 7+ 7 2 x 2 x , on obtient x =

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 une somme nie. Le choix de la subdivision de lintervalle dintgration et celui des coefcients qui interviennent dans la somme approchant lintgrale sont des critres essentiels pour minimiser lerreur. Ces mthodes se rpartissent en deux grandes catgories : les mthodes composes dans lesquelles la fonction est remplace par un polynme dinterpolation sur chaque intervalle lmentaire [x i , x i +1 ] de la subdivision de [a , b ] (i.e. [a , b ] = i [x i , x i +1 ]) et les mthodes de Gauss fondes 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 dnie I ( f ) = a f (x )dx peut tre difcile, voire impossible. On appelle formule de quadrature ou formule dintgration numrique toute formule permettant de calculer une approximation de I ( f ). Une possibilit consiste remplacer f par une approximation f n , o n est un entier positif, et calculer I ( f n ) au lieu de I ( f ). En posant I n ( f ) = I ( f n ) (la dpendance par rapports aux extrmits a et b sous-entendue), on a
b b

In ( f ) =

f n (x )dx ,

n 0.

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


b

En ( f )

| f ( x ) f n ( x )| d x (b a ) f f n

Lapproximation f n doit tre facilement intgrable, ce qui est le cas si, par exemple, f n est un polynme. En effet, si f n = n i i =0 i x Rn [x ], alors
b b n i =0

I ( f ) In ( f ) =

f n (x )dx =

i x i d x =

n i =0

b a

x i dx =

i x i +1 i + 1 i =0
n

b a

b i +1 a i +1 i . i +1 i =0
n

Une approche naturelle consiste prendre f n = n f = n i =0 f (x i )L i (x ), le polynme dinterpolation de L AGRANGE de f i =n sur un ensemble de n + 1 nuds distincts {x i }i =0 . Ainsi on dduit
n b n

In ( f ) =
i =0

f (x i )

L i (x )dx

L i (x ) =
j =0 j =i

x xj xi x j

Il sagit dun cas particulier de la formule de quadrature suivante


n

In ( f ) =
i =0

i f (x i )

qui est une somme pondre des valeurs de f aux points x i : on dit que ces points sont les nuds de la formule de quadrature et que les nombres i R sont les coefcients ou encore les poids. La formule de quadrature de L AGRANGE peut tre gnralise au cas o on connat les valeurs de la drive de f : ceci conduit la formule de quadrature dH ERMITE. Les formules de Lagrange et dH ERMITE sont toutes les deux des formules de quadrature interpolatoires, car la fonction f est remplace par son polynme dinterpolation.

Dnition Degr dexactitude


On dnit le degr dexactitude dune formule de quadrature comme le plus grand entier r 0 pour lequel I n (q ) = I (q ) pour tout polynme q Rr [x ].

73

3. Quadrature

Jeudi 31 janvier 2013

Astuce
Si q est un polynme de Rr [x ], il existe 0 , 1 , . . . , r tels que q (x ) =
r k =0

b k a x

r xk . k =0 k

Alors I (q ) =

b a q (x ) dx

dx

de vrier que I n (x k ) = I (x ) pour tout k = 0 . . . r .

r k =0 k

k I (x k ) . Pour vrier quune formule de quadrature I n a degr dexactitude r il suft alors

Thorme
Toute 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 au moins gale n est ncessairement de type interpolatoire. Le degr dexactitude peut mme atteindre 2n + 1 dans le cas des formules de quadrature de Gauss.

Dnition Stabilit
Une formule de quadrature I n ( f ) =
n i =0 i

f (x i ) est dite stable sil existe M R + tel que

n i =0 |i | M .

Thorme

Une mthode de quadrature de type interpolation est convergente sur C [a ; b ] ssi les formules sont stables.

Dnition Formule de quadrature composite


On 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 = j = 0, 1, . . . , m . On utilise alors sur chaque sous-intervalle une formule interpolatoire de nuds
(j) n . Puisque k k =0 m 1 (j) n xk k =0 b a m

pour

et de poids

I(f ) =

f (x )dx =
j =0

y j +1 yj

f (x )dx ,

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


m 1 n

I n ,m ( f ) =
j =0 k =0

k f (x k ).

(j)

(j)

Astuce Changement de variable afne


Souvent on dnit dabord une formule de quadrature sur lintervalle [0; 1] ou sur lintervalle [1; 1] et puis on la gnralise lintervalle [x i ; x i +1 ] par un changement de variable afne. 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 b c

g ( y )d y =

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

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


d c b

g ( y )d y = m

f (mx + q )dx .

Pour dterminer cette transformation afne, on doit rsoudre le systme linaire c = ma + q , d = mb + q . On obtient m= Par consquent y = d c cb ad x+ do ba ba
d c

d c , ba

q=

cb ad . ba

f ( y )d y =

d c ba

f
a

cb ad d c x+ dx . ba ba

74

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

Exemple
Transformer lintervalle [0; 1] dans lintervalle [x i ; x i +1 ] par un changement de variable afne. On a y = (x i +1 x i )x + x i et
x i +1 1 xi

f ( y )d y = (x i +1 x i )

f ((x i +1 x i )x + x i )dx .
x i +x i +1 etc. 2

On voit que lorsque x = 0 alors y = x i , lorsque x = 1 alors y = x i +1 , ou encore lorsque x = 1/2 alors y =

Exemple
Transformer lintervalle [1; 1] dans lintervalle [x i ; x i +1 ] par un changement de variable afne. x x i x 1 x i x x i On a y = i +1 x + i+ , quon peut rcrire y = x i + (1 + x ) i +1 et 2 2 2
x i +1 xi

f ( y )d y =

x i +1 x i 1 x i +1 x i f x i + (1 + x ) dx . 2 2 1

3.2. Exemples de formules de quadrature interpolatoires


Dnition Formule du rectangle gauche
La formule du rectangle gauche est obtenue en remplaant f par une constante gale la valeur de f en la borne gauche de lintervalle [a ; b ] (polynme de degr 0), ce qui donne I 0 ( f ) = (b a ) f (a ). Si f C 1 ([a ; b ]) alors lerreur de quadrature est E0( f ) = h2 | f ()|, 2 h = b a, ]a ; b [.

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

Remarque Formule composite


a On dcompose maintenant lintervalle dintgration [a ; b ] en m sous-intervalles de largeur H = bm avec m 1 En introduisant les nuds de quadrature x k = a + k H pour k = 0, 1, . . . , m 1 on obtient la formule composite du rectangle gauche m 1 m 1

I 0,m ( f ) = H
k =0

f (x k ) = H
k =0

f (a + k H ).

Si f C 1 ([a ; b ]) alors lerreur de quadrature est E 0,m ( f ) = ba H | f ( )| , 2 ]a ; b [.

Dnition Formule du rectangle droite


La formule du rectangle droite est obtenue en remplaant f par une constante gale la valeur de f en la borne droite de lintervalle [a ; b ] (polynme de degr 0), ce qui donne I 0 ( f ) = (b a ) f (b ). Si f C 1 ([a ; b ]) alors lerreur de quadrature est E0( f ) = h2 | f ()|, 2 h = b a, ]a ; b [.

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

G. Faccanoni

75

3. Quadrature

Jeudi 31 janvier 2013

Remarque Formule composite


a On dcompose maintenant lintervalle dintgration [a ; b ] en m sous-intervalles de largeur H = bm avec m 1 En introduisant les nuds de quadrature x k = a + (k + 1) H pour k = 0, 1, . . . , m 1 on obtient la formule composite du rectangle droite m 1 k =0 m 1 k =0

I 0,m ( f ) = H Si f C 1 ([a ; b ]) alors lerreur de quadrature est E 0,m ( f ) =

f (x k ) = H

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

ba H | f ( )| , 2

]a ; b [.

Dnition Formule du rectangle ou du point milieu


La formule du rectangle ou du point milieu est obtenue en remplaant f par une constante gale la valeur de f au milieu de [a ; b ] (polynme de degr 0), ce qui donne I 0 ( f ) = (b a ) f Si f C 2 ([a ; b ]) alors lerreur de quadrature est E0( f ) = h3 | f ( )| , 3 h= ba , 2 ]a ; b [. a +b . 2

Le degr dexactitude de la formule du point milieu est 1.

Remarque Formule composite


a On dcompose maintenant lintervalle dintgration [a ; b ] en m sous-intervalles de largeur H = bm avec m 1 En in2k +1 troduisant les nuds de quadrature x k = a + 2 H pour k = 0, 1, . . . , m 1 on obtient la formule composite du point milieu m 1 2k + 1 I o ,m ( f ) = H f a+ H . 2 k =0

Si f C 2 ([a ; b ]) alors lerreur de quadrature est E 0,m ( f ) = ba 2 H | f ( )| , 24 ]a ; b [.

Dnition Formule du trapze


La formule du trapze est obtenue en remplaant f par le segment qui relie (a , f (a )) (b, f (b )) (polynme de Lagrange de degr 1), ce qui donne ba I1( f ) = f ( a ) + f (b ) . 2 Si f C 2 ([a ; b ]) alors lerreur de quadrature est E1( f ) = h3 | f ( )| , 12 h = b a, ]a ; b [.

Le degr dexactitude de la formule du point milieu est 1, comme celle du point milieu.

Remarque Formule composite


Pour obtenir la formule du trapze composite, on dcompose lintervalle dintgration [a ; b ] en m sous-intervalles de a largeur H = bm avec m 1. En introduisant les nuds de quadrature x k = a + k H pour k = 0, 1, . . . , m 1 on obtient

I 1,m ( f ) =

H 2

m 1

f (x k ) + f (x k +1 ) = H
k =0

m 1 1 1 f (a ) + f ( a + k H ) + f (b ) . 2 2 k =1

76

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

Si f C 2 ([a ; b ]) alors lerreur de quadrature est E 0,m ( f ) = ba 2 H | f ( )| , 12 ]a ; b [.

Dnition Formule de Cavalieri-Simpson


La formule de Cavalieri-Simpson est obtenue en remplaant f par la parabole qui interpole (a , f (a )), (b, f (b )) et
a +b 2 ,f a +b 2

(polynme de Lagrange de degr 2), ce qui donne I2( f ) = ba a +b f (a ) + 4 f + f (b ) . 6 2

Si f C 4 ([a ; b ]) alors lerreur de quadrature est E2( f ) = h 5 (4) | f ( )| , 90 h= ba , 2 ]a ; b [.

Le degr dexactitude de la formule du point milieu est 3.

Remarque Formule composite


Pour obtenir la formule composite, on dcompose lintervalle dintgration [a ; b ] en m sous-intervalles de largeur H = b a 2m avec m 1. En introduisant les nuds de quadrature x k = a + k H pour k = 0, 1, . . . , m on obtient I 2,m ( f ) =
m 1 s 1 m 1 m 1 H H 2s + 1 f (a ) + 2 f ( x 2r ) + 4 f (x 2s +1 ) + f (b ) = f (a ) + 2 f (a + r H ) + 4 f a+ H + f (b ) . 3 3 2 r =1 s =0 r =1 s =0

Si f C 4 ([a ; b ]) alors lerreur de quadrature est E 2,m ( f ) = ba H 180 4


4

| f (4) ()|,

]a ; b [.

G. Faccanoni

77

3. Quadrature

Jeudi 31 janvier 2013

b
(a) Formule du rectangle gauche.

x0 = a

x1

x2

x3

x4 = b

(b) Formule du rectangle gauche composite.

b
(c) Formule du rectangle droite.

x0 = a

x1

x2

x3

x4 = b

(d) Formule du rectangle droite composite.

a +b 2

x 0 +x 1 2

x 1 +x 2 2

x 2 +x 3 2

x 3 +x 4 2

a
(e) Formule du point milieu.

x0 = a

x1

x2

x3

x4 = b

(f) Formule du point milieu composite.

a
(g) Formule du trapze.

x0 = a

x1

x2

x3

x4 = b

(h) Formule du trapze composite.

a +b 2

x0 = a

x1

x2

x3

x4 = b

(i) Formule de Cavalieri-Simpson.

(j) Formule de Cavalieri-Simpson composite.

F IGURE 3.1.: Formules de quadrature pour n = 0, 1, 2.

78

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

Algorithmes
M THODE DU RECTANGLE GAUCHE Require: f , a , b > a , n > 0 a h b n s 0 for i = 0 to n 1 do s s + f (a + i h ) end for return I hs M THODE DU POINT MILIEU Require: f , a , b > a , n > 0 a h b n s 0 for i = 0 to n 1 do s s+f a+ i + 1 2 h end for return I hs M THODE DE S IMPSON Require: f , a , b > a , n > 0 a h b2 n s1 0 s 2 f (a + h ) for i = 1 to n 1 do s 1 s 1 + f ( a + 2i h ) s 2 s 2 + f (a + (2i + 1)h ) end for return I h 3 f ( a ) + f (b ) + 2 s 1 + 4 s 2 M THODE DU RECTANGLE DROITE Require: f , a , b > a , n > 0 a h b n s 0 for i = 0 to n 1 do s s + f (a + (i + 1)h ) end for return I hs M THODE DES TRAPZES Require: f , a , b > a , n > 0 a h b n s 2 for i = 1 to n 1 do s s + f a +ih end for return I hs
f (a )+ f (b )

Conclusion

1. Une formule de quadrature est une formule permettant dapprocher lintgrale de fonctions continues sur un intervalle [a , b ] ; 2. elle sexprime gnralement comme une combinaison linaire des valeurs de la fonction en des points prdnis (appels noeuds) et avec des coefcients appels poids ; 3. le degr dexactitude dune formule de quadrature est le degr maximal des polynmes pouvant tre intgrs exactement. Le degr dexactitude vaut 1 pour les formules du point milieu et du trapze, 3 pour les formules de S IMPSON ;

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 dit


1. Les formules du point milieu, du trapze et de S IMPSON sont des cas particuliers dune classe de mthodes de quadrature appeles formules de N EWTON -C OTES. De mme, il existe des formules de quadrature trs utilises dite de Gauss-Legendre et de Gauss-Legendre-Lobatto. 2. Le degr dexactitude vaut 3 pour les formules de G AUSS, 2n + 1 pour les formules de G AUSS -L EGENDRE avec n + 1 points de quadrature, et 2n 1 pour celles de G AUSS -L EGENDRE -L OBATTO avec n + 1 points de quadratures ;

G. Faccanoni

79

3. Quadrature

Jeudi 31 janvier 2013

Voici cinq function python qui renvoient la valeur approche dune intgrale par les mthodes (composites n intervalles quirpartis) du rectangle gauche, du rectangle droite, du point de milieu, du trapze et de S IMPSON. En paramtre elles reoivent f, la fonction (mathmatique) intgrer, a et b sont les extrmits de lintervalle dintgration et n est le nombre de sous-intervalles de lintervalle [a , b ] (chaque sous-intervalle a largeur (b a )/n ). Elles renvoient la valeur b approche de a f (x ) dx . Mthodes numriques.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

/////////////

Codes Python

////////////

#!/usr/bin/python #-*- coding: Utf-8 -*import math, sys def rectangle_gauche_composite(f,a,b,n): h = (b-a)/n s = 0. for i in range(n): s += f(a+i*h) return h*s def rectangle_droite_composite(f,a,b,n): h = (b-a)/n s = 0. for i in range(n): s += f(a+(i+1)*h) return h*s def milieu_composite(f,a,b,n): h = (b-a)/n s = 0. for i in range(n): s += f(a+(i+0.5)*h) return h*s def trapeze_composite(f,a,b,n): h = (b-a)/n s = (f(a)+f(b))*0.5 for i in range(1,n): s += f(a+i*h) return h*s def simpson_composite(f,a,b,n): h = (b-a)/(2.*n) s1 = 0. s2 = f(a+h) for i in range(1,n): s1 += f(a+2*i*h) s2 += f(a+(2*i+1)*h) return (f(a)+f(b)+2.*s1+4.*s2)*h/3.

et voici quelques exemples dutilisation de ces mthodes


42 43 44 45 46 47 48 49 50 51 52 53 54

# CHOIX DU CAS TEST exemple = 1 # DEFINITION DU CAS TEST if exemple==1: n = 100 a = 0.0 b = 1.0 def f(x): return x**3 def primitive(x): return x**4/4. elif exemple==2:

80

G. Faccanoni

Jeudi 31 janvier 2013


n = 100 a = 0.0 b = 1.0 def f(x): return x**3 def primitive(x): return x**4/4.

3. Quadrature

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

elif exemple==3: n = 10 a = -10.0 b = 10.0 def f(x): return math.exp(-x**2) def primitive(x): return 0. # on ne connait pas la primitive else: print "Cas test non defini" sys.exit(0)

print print print print

"** "A) "B) "C)

Exacte : ", primitive(b)-primitive(a) Formule du point milieu composite : ", milieu_composite(f,a,b,n) Formule des trapezes composite : ", trapeze_composite(f,a,b,n) Formule de Simpson composite : ", simpson_composite(f,a,b,n)

81 82 83

# Dans python il existe un module qui implement deja ces methodes, comparons nos resultats avec ceux du module: from scipy import integrate results = integrate.quad(f,a,b) 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


Exercice 3.1
Estimer
5/2 0

Exercices



f (x ) dx partir des donnes x f (x ) 0 /2


1

/2 2

1 2

/2 1.6364
3

2 1.2500

/2 0.9565
5

en utilisant la mthode des trapzes composite. C ORRECTION . La mthode des trapzes composite m + 1 points pour calculer lintgrale dune fonction f sur lintervalle [a , b ] scrit m 1 b 1 ba 1 f ( a + i h ) + f (b ) f (a ) + avec h = . f ( t )d t h 2 2 m a i =1 Ici on a a = 0, b = 5/2, h = 1/2 donc
5/2

f (x ) dx
0

1 3 0.9565 = 4.057325 + 2 + 2 + 1.6364 + 1.2500 + 2 4 2

Exercice 3.2
Estimer 0 sin(x ) dx en utilisant la mthode des trapzes composite avec 8 et puis 16 sous-intervalles en prenant en compte lerreur. C ORRECTION . La mthode des trapzes composite m + 1 points pour calculer lintgrale dune fonction f sur lintervalle [a , b ] scrit m 1 b 1 1 ba f ( t )d t h f (a ) + f ( a + i h ) + f (b ) avec h = 2 2 m a i =1 et lerreur est donn par E = ba 2 h f () 12

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

sin(x ) dx
0

7 sin(0) sin() 1.97423 + sin(i /8) + 8 2 2 i =1

3 sin() 768 pour ]0; [. Comme on ne connait pas la valeur de , on ne peut pas connaitre E mais on peut en dterminer les bornes : E= E min = ainsi (1.97423 0)
0

et lerreur est

3 sin(0) = 0 768

E max =

3 3 sin(/2) = 768 768

0.04037

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

La valeur exacte est bien videmment 2. Avec 16 sous-intervalles on a h = /16 et les nouveaux noeuds se trouvent au milieux des sous-intervalles prcdents : x j = /16 + j /8 = (1 + 2 j )/16 pour j = 0, 1, . . . , 7, ainsi

sin(x ) dx
0

1.97423 + 2 16

7 j =0

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

et le limites de lerreur deviennent (observons que E est divis par 4 lorsque h est divis par 2) : E min = 0 ainsi 1.99358
0

E max

0.04037 = 0.01009 4

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

82

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

Exercice 3.3
On considre lintgrale
2

I= 1. Calculer la valeur exacte de I .

1 dx . x

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 ? Justier 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 lerreur de quadrature associe scrit, si f C 2 ([a ; b ]), |E m | = (b a )4 f () , 12m 2 ]a ; b [.

C ORRECTION . 1. Une primitive de


1 x

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 m 1 b 1 1 ba f ( a + i h ) + f (b ) f ( t )d t h f (a ) + avec h = . 2 2 m a i =1
1 , a = 1, b = 2, m = 3 do h = Ici on a f (x ) = x 1 3

et on obtient

1 1 1 1 1 3 3 1 21 f (1) + f (1 + 1/3) + f (1 + 2/3) + f (2) = + + + = = 0,7. 3 2 2 3 2 4 5 4 30

1 3. La valeur numrique obtenue la question prcdente est suprieure ln(2) car la fonction f (x ) = x est convexe. On peut se convaincre laide dun dessin que les trapzes sont au-dessus de la courbe y = 1/x , laire sous les trapzes sera donc suprieure laire sous la courbe. Pour bien visualiser la construction considrons m = 1 :

1 0

0.5
4. Lerreur est majore par

1 0.5 0 0.5 1 1.5 2

Cela reste vrai quelque soit le pas h choisi car la fonction est convexe ce qui signie quune corde dnie par deux points de la courbe y = 1/x sera toujours au-dessus de la courbe et par le raisonnement prcdant laire sous les trapzes sera suprieure laire exacte.

0.5 1 1.5 2
(b a )4 sup | f ()|. 12m 2 ]a ;b [ 1 2 1 max 3 = . 2 12m ]1;2[ 6m 2

|E |

Donc ici on a f (x ) = 1/x , f (x ) = 1/x 2 et f (x ) = 2/x 3 , ainsi |E | Pour que |E | < 104 il suft que ture est infrieure 104 .
1 6m 2

< 104 , i.e. m > 102 / 6 40,8. partir de 41 sous-intervalles, lerreur de quadra-

Exercice 3.4
On considre lintgrale
2

I=

ln(x ) dx .
1

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 valeur exacte ? Est-ce vrai quel que soit m ? (Justier la rponse.) 2. Quel nombre de sous-intervalles m faut-il choisir pour avoir une erreur E m infrieure 102 ? On rappelle que, pour une fonction f de classe C 2 , lerreur de quadrature E m associe la mthode des trapzes composite avec une discrtisation uniforme de pas h = (b a )/m de lintervalle [a , b ] en m sous-intervalles vrie |E m | = (b a ) 2 h f () , 12 ]a ; b [.

C ORRECTION . 1. La mthode des trapzes composite m + 1 points (m sous-intervalles) pour calculer lintgrale dune fonction f sur lintervalle [a , b ] scrit
b

f ( t )d t
a

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

m 1 1 1 f (a + i h ) + f (b ) f (a ) + 2 2 i =1 1 4

avec h =

ba . m

et on obtient

1 1 3 7 1 5 3 7 1 5 1 +f +f + f (2) = ln + ln + ln + ln(2) 0.3836995094. f (1) + f 4 2 4 2 4 2 4 4 2 4 2

=2 Une primitive de ln(x ) est F (x ) = x (ln(x ) 1). La valeur exacte est alors I = [x (ln(x ) 1)]x x =1 = 2 ln(2) 1 0.386294361. La valeur numrique obtenue est infrieure celle exacte quelque soit le pas h choisi car la fonction f est concave, ce qui signie quune corde dnie par deux points de la courbe y = ln(x ) sera toujours en-dessous de la courbe, donc laire sous les trapzes sera infrieure laire exacte. Pour bien visualiser la construction considrons m = 2 :

1 0

0.5

y 1 0.5 0 0.5 1 1.5 2 x

2. Lerreur est majore par

|E m |

(b a ) 2 (b a )3 h sup | f ()| = sup | f ()|. 12 12m 2 ]a ;b [ ]a ;b [


2

On a f (x ) = ln(x ), f (x ) = 1/x et f (x ) = 1/x , ainsi |E m | Pour que |E m | < 102 il suft que quadrature est infrieure 102 .
1 12m 2

0.5 1 1.5 2
1 1 1 max 2 = . 2 12m ]1;2[ 12m 2

< 102 , i.e. m > 10/ 12 2.886. partir de 3 sous-intervalles, lerreur de

Exercice 3.5 Intgration


tant donne lgalit =4
+ 0

e x dx

10

=4

e x dx +

avec 0 < < 1044 , utiliser la mthode des trapzes composite 10 intervalles pour estimer la valeur de .

C ORRECTION . La mthode des trapzes composite m intervalles pour calculer lintgrale dune fonction f sur lintervalle [a , b ] scrit m 1 b 1 1 ba f ( t )d t h f (a ) + f ( a + i h ) + f (b ) avec h = . 2 2 m a i =1 Ici on a f (x ) = e x , a = 0, b = 10, m = 10 do h = 1 et on obtient I 1 10 i 2 1 1 1 1 1 1 1 1 1 1 1 1 + e + 100 = + + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100 3.1422. 2 i =1 2e 2 e e e e e e e e e 2e
2

84

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

Exercice 3.6

Soit f une fonction C (R, R). 1. On considre lapproximation


1 1

f (x ) dx

2 2f 1 2 f (0) + 2 f 3

1 2

Quel est le degr dexactitude de cette formule de quadrature ?


=n 2. On se donne les points {x i }i de subdivision de lintervalle [a ; b ] : x i = a + i h avec h = i =0 ment de variable afne, en dduire une formule de quadrature pour lintgrale x i +1 xi b a n .

laide dun change-

f (x ) dx .
b a

En tirer une formule de quadrature composite pour lintgrale 3. crire lalgorithme pour approcher C ORRECTION . 1. On a k 0 1 2 3 4 p k (x ) = x k 1 x x2 x3 x
4 1 1 p k (x ) dx b a

f (x ) dx .

f (x ) dx .

2 3 (2p k (1/2) p k (0) + 2p k (1/2))

Degr dexactitude au moins 0 au moins 1 au moins 2 au moins 3 3

2 0 2/3 0 2/5

2 0 2/3 0 1/6

La formule est donc exacte de degr 3. 2. Soit x = mt + q , alors


x i +1 xi 1 1

f (x ) dx = m

f (mt + q ) dt

avec

x i = m + q , x i +1 = m + q ,

do le changement de variable x = x i + (t polynme de degr au plus 3)


x i +1 xi

x x i + 1) i +1 2

. On dduit la formule de quadrature (exacte sur lespace des


x +x i x i +1 +x i 2

f (x ) dx =

x i +1 x i 2

1 1

f x i + (t + 1)

x i + i +1 x i +1 x i x i +1 x i 2 dt 2f 2 3 2

x i +1 + x i +2f 2

+ x i +1

Soit h = x i +1 x i =

b a n . La formule prcdente se rcrit x i +1 xi

f (x ) dx

h h h 3h 2 f xi + f xi + + 2 f xi + 3 4 2 4

et la formule de quadrature composite dduite de cette approximation est


b a n 1

f (x ) dx =

x i +1

i =0 x i b

f (x ) dx

h n 1 h h 3h 2 f xi + f xi + + 2 f xi + 3 i =0 4 2 4

3. Algorithme dapproximation de a f (x ) dx Require: f , a , b > a , n > 0 a h b n s 0 for i = 0 to n 1 do x a +ih h 3h s s +2f x + h 4 f x + 2 +2f x + 4 end for return I h 3s

G. Faccanoni

85

3. Quadrature

Jeudi 31 janvier 2013

Exercice 3.7
=n Soit f une fonction C (R, R). On se donne les points {x i }i de subdivision de lintervalle [a ; b ] : x i = a + i h avec h = i =0 Le but de lexercice est de trouver une formule de quadrature 2n points pour approcher lintgrale b b a n .

f (x ) dx .
a

(3.1)

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

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

(3.2)

o 0 < < 1 est dterminer. 1. Choisir pour rendre la formule de quadrature exacte pour des polynmes de degr le plus lev possible. Quel est alors le degr dexactitude de cette formule de quadrature ? 2. laide dun changement de variable afne, tendre cette formule de quadrature pour lintgrale suivante :
x i +1 xi

f (x ) dx .

3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.1). Cette formule de quadrature est-elle stable ? 4. crire lalgorithme du calcul de F . C ORRECTION . 1. On a k 0 1 2 3 4 p k (x ) = x k 1 x x2 x3 x4
1 1 p k (x ) dx

2 0 2/3 0 2/5

p k () + p k () Degr dexactitude 2 au moins 0 0 au moins 1 22 1 si = 1/ 3, au moins 2 si = 1/ 3 Soit = 1/ 3 0 au moins 3 2/9 3


x i +1 x i 2

Donc la formule de quadrature a degr dexactitude 1 si = 1/ 3 et degr dexactitude 3 si = 1/ 3. 2. Par le changement de variable y = x i + (x + 1)
x i +1 xi

on dduit la formule de quadrature x i +1 x i dx 2 x i +1 x i + f xi + 1 + 2

f ( y ) dy =

x i +1 x i 2 x i +1 x i 2

1 1

f x i + (x + 1)
1 3

f xi + 1

1 3

x i +1 x i 2

a 3. Si h = x i +1 x i = b n (i.e. si on considre une subdivision de lintervalle [a ; b ] quirpartie) alors on trouve la formule de quadrature composite (i.e. sur n sous-intervalles et 2n points) b a

f (x ) dx

h n 1 f xi + h 1 2 i =0

1 3

+ f xi + h 1 +

1 3

h n 1 f a +h i +1 2 i =0

1 3

+ f a +h i +1+

1 3

Cette formule de quadrature est stable puisque tous les coefcients sont positifs. 4. Algorithme du calcul de F : Require: f , a , b > a , n > 0 a h b n 1 a + 1
1 3 1 3

2 a + 1 + h for i = 0 to n 1 do s s + f (1 + i h ) + f (2 + i h ) end for return I h 2s

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. crire le polynme p . 2. En dduire une mthode de quadrature pour approcher lintgrale
1

f (t ) dt .
1

3. tudier le degr dexactitude de la formule de quadrature ainsi trouve. 4. laide dun changement de variable afne, en dduire une formule de quadrature pour lintgrale
x 2i +2 x 2i

f (x ) dx .

5. Soit h = 2h .

b a 2n

et x i = a + i h pour i = 0, . . . , 2n . On subdivise lintervalle [a ; b ] en n intervalles [x 2i ; x 2i +2 ] de largeur a x0 h x 2i h x 2i +1 x 2i +2 b x 2n

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


b

f (x ) dx .
a

6. crire lalgorithme associ cette formule de quadrature. C ORRECTION . 1. On a trois points, donc le polynme interpolateur de Lagrange est un polynme de R2 [x ]. On cherche alors les coefcients , et du polynme p (x ) = + x + x 2 tels que (3.3a) f (1) = + , f (0) = , (3.3b) f (1) = + + . (3.3c) Lquation (3.3b) donne = f (0), la somme (3.3c)+(3.3a) donne = donne =
f (1) f (1) . 2 f (1) f (1) 2

et enn la soustraction (3.3c)(3.3a)

2. On en dduit la mthode de quadrature


1 1 1

f (t ) dt

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 3 4 p k (x ) = x k x3 x4


1 1 p k (x ) dx p k (1)+4p k (0)+p k (1) 3

0 2/5

0 2/3

Degr dexactitude au moins 3 3

La formule est exacte pour les polynmes de degr au plus 3. 4. Soit x = mt + q , alors
x 2i +2 x 2i 1 1

f (x ) dx = m

f (mt + q ) dt

avec

x 2i = m + q , x 2i +2 = m + q ,

do le changement de variable x = x 2i + (t polynme de degr au plus 3)


x 2i +2 x 2i

x x 2i + 1) 2i +2 2

. On dduit la formule de quadrature (exacte sur lespace des

f (x ) dx =

x 2i +2 x 2i 2

1 1

f x 2i + (t + 1)

x 2i +2 x 2i x 2i +2 x 2i dt f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) . 2 6

G. Faccanoni

87

3. Quadrature
x x

Jeudi 31 janvier 2013

a i +1 i pour i = 0, . . . , 2n . On subdivise lintervalle [a ; b ] en n intervalles [x 2i ; x 2i +2 ] de largeur 2h . On trouve 5. h = b2 n = 2 ainsi la formule de quadrature composite b a n 1 x 2i +2 n 1

f (x ) dx =

i =0 x 2i

f (x ) dx
i =0

x 2i +2 x 2i f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) 6

= = =

h n 1 f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) 3 i =0
n 1 n 1 h f ( x 2i + h ) f ( x 2i ) + 4 f ( a ) + f (b ) + 2 3 i =0 i =1 n 1 n 1 h f (a + (2i + 1)h ) . f ( a + 2i h ) + 4 f ( a ) + f (b ) + 2 3 i =0 i =1

6. Algorithme du calcul associ cette formule de quadrature Require: f , a , b > a , n > 0 a h b2 n s1 0 s 2 s 2 + f (a + h ) for i = 1 to n 1 do s 1 s 1 + f ( a + 2i h ) s 2 s 2 + f (a + (2i + 1)h ) end for return h 3 f ( a ) + f (b ) + 2 s 1 + 4 s 2

Exercice 3.9
a i =2n Soit f une fonction C (R, R). On se donne les points {x i }i de subdivision de lintervalle [a ; b ] : x i = a +i h avec h = b2 n . =0 Le but de lexercice est de trouver une formule de quadrature 2n + 1 points base sur la formule de S IMPSON pour approcher b

f (x ) dx .
a

(3.4)

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

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 afne, en dduire une formule de quadrature exacte sur lespace des polynme de degr au plus 3 pour lintgrale suivante :
x 2i +2 x 2i

f (x ) dx .

3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.4). Cette formule de quadrature est-elle stable ? 4. crire lalgorithme du calcul de F . 5. Soit x un lment de [x i ; x i +1 ]. crire une formule de Taylor f (x ) = P i (x ) + R i (x ) lordre 3 pour f en x , avec P i P3 . Majorer R i sur [x i ; x i +1 ] en fonction de h . 6. En dduire une estimation derreur entre (3.4) et F . C ORRECTION .

88

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

1. On a k 0 1 2 3 4 p k (x ) = x k 1 x x2 x3 x4
1 1 p k (x ) dx

2 0 2/3 0 2/5

p k (1) + p k (0) + p k (1) Degr dexactitude 2 + mme pas 0 si = 2(1 ), au moins 0 si = 2(1 ) Soit = 2(1 ) 0 au moins 1 2 1 si = 1/3, au moins 2 si = 1/3 Soit = 1/3 0 au moins 3 2/3 3

Si = 2(1 ) la formule de quadrature nest mme pas exacte pour une constante, si = 2(1 ) mais = 1/3, elle est exacte pour les polynmes de degr au plus 1, si = 1/3 et = 4/3 la formule est exacte pour les polynmes de degr au plus 3. 2. Soit x = mt + q , alors
x 2i +2 x 2i 1 1

f (x ) dx = m

f (mt + q ) dt

avec

x 2i = m + q , x 2i +2 = m + q ,

do le changement de variable x = x 2i + (t polynme de degr au plus 3)


x 2i +2 x 2i

x x 2i + 1) 2i +2 2

. On dduit la formule de quadrature (exacte sur lespace des

f (x ) dx =

x 2i +2 x 2i 2

1 1

f x 2i + (t + 1)

x 2i +2 x 2i x 2i +2 x 2i dt f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) . 2 6

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


b a n 1

f (x ) dx =

x 2i +2

n 1

i =0 x 2i

f (x ) dx
i =0

x 2i +2 x 2i f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) . 6

Si h =

x i +1 x i 2 b

b a 2n

(i.e. si on considre une subdivision de lintervalle [a ; b ] quirpartie) alors on a

f (x ) dx

n 1 n 1 h n 1 h f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) = f ( a ) + f (b ) + 2 f ( x 2i ) + 4 f ( x 2i + h ) 3 i =0 3 i =1 i =0

n 1 n 1 h f ( a ) + f (b ) + 2 f ( a + 2i h ) + 4 f (a + (2i + 1)h ) . 3 i =1 i =0

Cette formule de quadrature est stable puisque tous les coefcients sont positifs et on a
n 1 n 1 ba ba h 1+1+2 1+4 1 = 6n = (b a ). [2 + 2(n 1) + 4n ] = 3 6 n 6n i =1 i =0

4. Algorithme du calcul de F : Require: f : [a , b ] R, a , b > a , n > 0 a H b n s1 0 s 2 s 2 + f (a + H /2) for i = 1 to n 1 do s 1 s 1 + f (a + i H ) s 2 s 2 + f (a + (i + 1) H /2) end for return I H 6 f ( a ) + f (b ) + 2 s 1 + 4 s 2 5. Soit x un lment de [x 2i ; x 2i +2 ]. Une formule de TAYLOR lordre 3 pour f en x scrit f (x ) = P i (x ) + R i (x ), avec P i ( x ) = f ( x 2 i ) + ( x x 2 i ) f ( x 2 i ) + ( x x 2 i )2 et le reste de L AGRANGE R i ( x ) = ( x x 2 i )4 f I V () 24 f ( x 2i ) f ( x 2i ) + ( x x 2 i )3 2 6 avec ]x 2i ; x 2i +2 [.

P3

G. Faccanoni

89

3. Quadrature

Jeudi 31 janvier 2013

On peut majorer R i sur [x 2i ; x 2i +2 ] en fonction de H = x 2i +2 x 2i : | R i ( x )| H4 b a H3 max | f I V ()| = max | f I V ()|. 24 n 24

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


b a n 1

f (x ) dx F

x 2i +2

n 1

i =0 x 2i

P i (x ) dx F +
n 1

x 2i +2

i =0 x 2i

R i (x ) dx

nH |R i (x 2i +2 )| + nH

x 2i +2

i =0 x 2i

R i (x ) dx

b a H3 b a H3 max | f I V ()| + nH max | f I V ()| n 24 n 24 H4 = (b a ) sup | f I V ()|. 12

Exercice 3.10
=n Soit f une fonction C (R, R). On se donne les points {x i }i de subdivision de lintervalle [a ; b ] : x i = a + i h avec h = i =0 Le but de lexercice est de trouver une formule de quadrature 3n points pour approcher lintgrale b b a n .

f (x ) dx .
a

(3.6)

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

g (x ) dx

2 g () + g (0) + g () , 3

(3.7)

o le rel 0 < < 1 sera dterminer par la suite. 1. Dterminer pour que la formule de quadrature (3.7) ait degr dexactitude maximale. Quel est alors le degr dexactitude de cette formule de quadrature ? 2. laide dun changement de variable afne, tendre cette formule de quadrature pour lintgrale suivante :
x i +1 xi

f (x ) dx .

3. En dduire une formule de quadrature 3n points, note F , pour le calcul approch de (3.6). Cette formule de quadrature est-elle stable ? C ORRECTION . 1. On a k 0 1 2 3 4 p k (x ) = x k 1 x x2 x3 x4
1 1 p k (x ) dx 2 3 (p k () + p k (0) + p k ())

2 0 2/3 0 2/5

2 0 22 /3 Soit = 1/ 2 0 1/3

Degr dexactitude au moins 0 au moins 1 1 si = 1/ 2, au moins 2 si = 1/ 2 au moins 3 3

Si = 1/ 2 la formule de quadrature est exacte pour les polynmes de degr au plus 1, si = 1/ 2 la formule est exacte pour les polynmes de degr au plus 3. 2. Par le changement de variable y = x i + (x + 1)
x i +1 xi x i +1 x i 2

on dduit la formule de quadrature

f ( y ) dy =

x i +1 x i 2 x i +1 x i 3

1 1

f x i + (x + 1)
1 2

f xi + 1

x i +1 x i dx 2 x i +1 x i x i +1 x i + f xi + + f xi + 1 + 2 2
x

1 2

x i +1 x i 2

2i +2 1. N.B. : le polynme P i nest pas le polynme dinterpolation en x 2i , x 2i +2 et (x 2i + x 2i +2 )/2 donc x2 P i (x ) dx F = 0. i

90

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature

a 3. Si H = x i +1 x i = b n (i.e. si on considre une subdivision de lintervalle [a ; b ] quirpartie) alors on trouve la formule de quadrature composite (i.e. sur n sous-intervalles et 3n points) b a

f (x ) dx

H 3

n 1

f xi + H 1
i =0 n 1

1 2

+ f xi + H 2 + f xi + H 1 +
1 2

1 2 1 2

H = 3

f a +H i +1
i =0

+ f xi + H 2 + f a +H i +1+

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

Exercice 3.11
=n Soit f une fonction C (R, R). On se donne les points {x i }i de subdivision de lintervalle [a ; b ] : x i = a + i h avec h = i =0 Le but de lexercice est de trouver une formule de quadrature n points pour approcher lintgrale dnie b b a n .

f (x ) dx .
a

(3.8)

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

4 2 g (x ) dx g (w /2) + g (w ), 3 3

(3.9)

o 0 < w 1 est dterminer. 1. Dterminer w pour que la formule de quadrature (3.9) soit exacte pour toute fonction g polynomiale de degr m > 1 et donner la plus grande valeur de m . 2. laide dun changement de variable afne, en dduire une formule de quadrature pour lintgrale suivante :
x i +1 xi

f (x ) dx .

3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.8). Cette formule de quadrature est-elle stable ? 4. crire lalgorithme du calcul de F . C ORRECTION . 1. On a k 0 1 2 3 p k (x ) = x k 1 x x2 x3
1 1 p k (x ) dx 2 3 (2p k (w /2) + p k (w ))

2 0 2/3 0

2 0 w2 Soit w = w 3 /2

Degr dexactitude au moins 0 au moins 1 1 si w = 2/3, au moins 2 si w = 2

2/3

2/3 2/3 la formule est

Si w = 2/3 la formule de quadrature est exacte pour les polynmes de degr au plus 1, si w = exacte pour les polynmes de degr au plus 2. 2. Par le changement de variable y = x i + (x + 1)
x i +1 xi x i +1 x i 2

on dduit la formule de quadrature x i +1 x i dx 2 2 x i +1 x i + 2 f x i + (1 3) 2

f ( y ) dy =

x i +1 x i 2 x i +1 x i 3

1 1

f x i + (x + 1)

f x i + (1 +

1 x i +1 x i 6) 2

a 3. Si H = x i +1 x i = b n (i.e. si on considre une subdivision de lintervalle [a ; b ] quirpartie) alors on trouve la formule de quadrature composite (i.e. sur n sous-intervalles et 2n points) b a

f (x ) dx =

H 3 H 3

n 1

f xi + H 1 +
i =0 n 1

2 3

+ 2 f xi + H 1 2 3

1 6

f a +H i +1+
i =0

+2f a + H i +1

1 6

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

G. Faccanoni

91

3. Quadrature

Jeudi 31 janvier 2013

4. Algorithme du calcul de F : Require: f , a , b > a , n > 0 a H b n 1 a + H (1 + 2/3) 2 a + H (1 1/6) for i = 0 to n 1 do s s + f (1 + i H ) + 2 f (2 + i H ) end for return I H 3s

Exercice 3.12
1. Soit 0 < 1 un nombre rel donn et soit 1 , 2 , 3 trois nombres rels. Considrons la formule de quadrature
1 1

g (t ) dt 1 g () + 2 g (0) + 3 g ().

Calculer , 1 , 2 , 3 pour que le degr dexactitude de la formule de quadrature soit de 5. 2. laide dun changement de variable afne, en dduire une formule de quadrature pour lintgrale
x i +1 xi a 3. Soit h = b n et x i = a + i h pour i = 0, . . . , n . On subdivise lintervalle [a ; b ] en n intervalles [x i ; x i +1 ] de largeur h . En dduire la formule de quadrature composite pour le calcul approch de b

f (x ) dx .

f (x ) dx .
a

4. crire lalgorithme associ cette formule de quadrature. C ORRECTION . 1. On a k 0 p k (x ) = x k 1


1 1 p k (x ) dx

1 p k () + 2 p k (0) + 3 p k () 1 + 2 + 3

Soit 2 = 2 1 3 1 x 0 1 + 3

Soit 3 = 1 et donc 2 = 2 21 2 x2 Soit 1 = 3 4 x3 x4 Soit = 5 6 x5 x


6 3 5 1 32 2 3

22 1
1 32 2 et 2 = 2 3 2

et donc 3 = 0
2 5

0
2 2 3 5 9

et donc 1 = 3 = 0
2 7

et 2 = 0
6 25

8 9

5 8 Si = 3 5 , 1 = 3 = 9 et 2 = 9 alors la formule est exacte pour les polynmes de degr au plus 5 (il sagit de la formule de G AUSS -L EGENDRE 3 points). Remarquons que si on choisit = 1 on retrouve la formule de S IMPSON.

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

f (x ) dx = m

f (mt + q ) dt

avec

x i = m + q , x i +1 = m + q ,

92

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature
x i +1 x i 2

do le changement de variable x = x i + (t + 1) polynme de degr au plus 5)


x i +1 xi

. On dduit la formule de quadrature (exacte sur lespace des

f (x ) dx =

x i +1 x i 2

1 1

f x i + (t + 1)

x i +1 x i dt 2 3 x i +1 x i x i +1 + x i +8f + 5 f xi + 1 + 5 2 2 3 x i +1 x i 5 2 .

x i +1 x i 5 f xi + 1 18

a 3. h = b n = x i +1 x i pour i = 0, . . . , n . On subdivise lintervalle [a ; b ] en n intervalles [x i ; x i +1 ] de largeur h . On trouve ainsi la formule de quadrature composite b a n 1 x i +1 n 1

f (x ) dx =

i =0 x i

f (x ) dx
i =0

x i +1 x i 5 f xi + 1 18

3 x i +1 x i x i +1 + x i +8f + 5 f xi + 1 + 5 2 2 3 h 5 3 h 5

3 x i +1 x i 5 2

= =

h n 1 5 f xi + 1 18 i =0 h n 1 5f a + i +1 18 i =0

h 3 h + 8 f xi + + 5 f xi + 1 + 5 2

3 1 h +8f a + i + h +5f a + i +1+ 5 2

4. Algorithme du calcul associ cette formule de quadrature Require: f , a , b > a , n > 0 a h b n c 1 a + 1 3/5 h c2 a + 1 2h c 3 a + 1 + 3/5 h s 0 for i = 0 to n 1 do s s + 5 f (c 1 + i h ) + 8 f (c 2 + i h ) + 5 f (c 3 + i h ) end for h return 18 s

Exercice 3.13 Interpolation et quadratures


=n de subdivision uniforme de lintervalle [a ; b ] dnis par Soit f une fonction C (R, R). On se donne les points {x i }i i =0

x i = a + i h avec h = lintgrale

b a n .

Le but de lexercice est de trouver une formule de quadrature composite pour approcher
b

f (x ) dx .
a

1. Soit p le polynme de L AGRANGE qui interpole f aux points 1 et 1. crire le polynme p , en dduire une formule de quadrature base sur lapproximation
1 1 1

f (x ) dx

p (x ) dx
1

et tudier le degr dexactitude de cette formule de quadrature. 2. laide dun changement de variable afne, en dduire une formule de quadrature pour lintgrale
x i +1 xi

f (x ) dx .

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

f (x ) dx .
a

Quelle mthode de quadrature reconnait-on ? C ORRECTION .

G. Faccanoni

93

3. Quadrature

Jeudi 31 janvier 2013

1. On a deux points dinterpolation, donc le polynme interpolateur de L AGRANGE est un polynme de R1 [x ]. On cherche alors les coefcients et du polynme p (x ) = + x tels que f (1) = p (1) = , f (1) = p (1) = + . La somme des quations (3.10b)+(3.10a) donne = =
f (1)+ f (1) 2

(3.10a) (3.10b)

et la soustraction des quations (3.10b)(3.10a) donne

f (1) f (1) . On en dduit la mthode de quadrature 2 1 1 1

f (t ) dt

p (t ) dt =

+ t dt = 2 = f (1) + f (1).
1 1

Par construction, cette formule de quadrature a degr dexactitude au moins 1. Soit f (x ) = x 2 , alors tandis que f (1) + f (1) = 2 : la formule est exacte pour les polynmes de degr au plus 1. 2. Soit x = mt + q , alors
x i +1 xi 1 1

f (x ) dx = 2/3

f (x ) dx = m

f (mt + q ) dt

avec

x i = m + q , x i +1 = m + q ,

do le changement de variable x = x i + (t + 1) polynme de degr au plus 1)


x i +1 xi

x i +1 x i 2

. On en dduit la formule de quadrature (exacte sur lespace des

f (x ) dx =

x i +1 x i 2

1 1

f x i + (t + 1)

x i +1 x i x i +1 x i dt f (x i ) + f (x i +1 ) . 2 2
b a n

3. On subdivise lintervalle [a ; b ] en n intervalles [x i ; x i +1 ] de largeur h = la formule de quadrature composite


b a n 1

x i +1 x i 2

pour i = 0, . . . , n . On trouve ainsi

f (x ) dx =

x i +1

n 1

i =0 x i

f (x ) dx
i =0

x i +1 x i h n 1 f (x i ) + f (x i +1 ) = f (x i ) + f (x i +1 ) 2 2 i =0 =
n 1 n 1 h h f ( a ) + f (b ) + 2 f (x i ) = f ( a ) + f (b ) + 2 f (a + i h ) . 2 2 i =1 i =1

Il sagit de la mthode des trapzes composite.

Exercice 3.14
Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dH ERMITE (de degr 3) de f vriant p (1) = f (1), 1. crire le polynme p . 2. En dduire la mthode dintgration numrique lmentaire
1 1

p (1) = f (1),

p (1) = f (1),

p (1) = f (1).

f (s ) ds f (1) + f (1) +

1 f (1) f (1) . 3

3. Connaissant la formule sur [1; 1], en dduire la formule de quadrature des trapzes-H ERMITE sur lintervalle [a ; b ] a par exemple grce au changement de variable y = a + (x + 1) b 2 . C ORRECTION . 1. On a deux mthodes pour calculer le polynme interpolateur dH ERMITE :

Premire mthode : le polynme interpolateur dH ERMITE scrit


n

p (x ) =
i =0

y i A i (x ) + y i B i (x )

o A i (x ) = (1 2(x x i )c i )(L i (x ))2 , B i (x ) = (x x i )(L i (x ))2 ,

94

G. Faccanoni

Jeudi 31 janvier 2013


n

3. Quadrature

L i (x ) =

x xj

j =0 x i x j j =i n

ci =

1 . x xj i j =0
j =i

Pour n = 1 on a alors p (x ) = y 0 1 2(x x 0 ) + y 1 1 2(x x 1 ) 1 x0 x1 1 x1 x0 (x x 1 ) (x 0 x 1 ) (x x 0 ) (x 1 x 0 )


2

+ y 0 (x x 0 )
2

(x x 1 ) (x 0 x 1 ) (x x 0 ) (x 1 x 0 )

+ y 1 (x x 1 )

Dans notre cas x 0 = 1, x 1 = 1, y 0 = f (1), y 1 = f (1), y 0 = f (1), y 1 = f (1) donc p (x ) = 1 f (1)(x + 2)(x 1)2 + f (1)(x + 1)(x 1)2 + f (1)(2 x )(x + 1)2 + f (1)(x 1)(x + 1)2 4 1 = f (1)(x 3 3x + 2) + f (1)(x 3 x 2 x + 1) + f (1)(x 3 + 3x + 2) + f (1)(x 3 + x 2 x 1) 4 2 f (1) + f (1) + 2 f (1) f (1) 3 f (1) 3 f (1) f (1) f (1) + x = 4 4 f (1) f (1) 2 f (1) + f (1) f (1) + f (1) 3 + x + x . 4 4

Le polynme interpolateur dH ERMITE est donc le polynme p (x ) = + x + x 2 + x 3 o = 2 f (1) + 2 f (1) + f (1) f (1) , 4 f (1) + f (1) = , 4 = 3 f (1) + 3 f (1) f (1) f (1) , 4 f (1) f (1) + f (1) + f (1) = . 4

Deuxime mthode : le polynme interpolateur dH ERMITE est un polynme de degr 2n + 1. On cherche donc un
polynme p (x ) = + x + x 2 + x 3 tel que 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 f (1) + f (1) = , 4 = 3 f (1) + 3 f (1) f (1) f (1) , 4 f (1) f (1) + f (1) + f (1) = . 4 p (1) = f (1), p (1) = f (1), p (1) = f (1),

2. En intgrant le polynme ainsi trouv on en dduit


1 1

p (x ) dx = x +

2 3 4 1 x + x + x 2 3 4 1 2 2 f (1) + 2 f (1) + f (1) f (1) f (1) + f (1) = 2 + = + 3 2 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

1 = f (1) + f (1) + ( f (1) f (1)). 3 Remarque : la formule est au moins exacte de degr 3 par construction. Elle nest pas exacte de degr suprieure 3 car si f (x ) = x 4 alors
1 1

f (x ) dx = =

1 5 x 5

=
1

2 6 = 5 15

1 1 14 70 f (1) + f (1) + ( f (1) f (1)) = 1 + 1 + (4 + 4) = = 3 3 3 15 3. Connaissant la formule sur [1; 1], on en dduit la formule sur un intervalle [a ; b ] quelconque par le changement de a 2 variable y = a + (x + 1) b 2 qui donne
b a

f ( y )dy =

ba 1 ba dx f a + (x + 1) 2 2 1 ba ba = f ( a ) + f (b ) + ( f (a ) f (b )) 2 6 = ba (b a )2 ( f (a ) + f (b )) + ( f (a ) f (b )). 2 12

Exercice 3.15
1 =n Soit f une fonction C ([0; 1], R). On se donne les points {x i }i de subdivision de lintervalle [0; 1] : x i = i h avec h = n . i =0 Le but de lexercice est de trouver une formule de quadrature pour approcher 1

f (x ) dx .
0

(3.11)

1. Soit i un entier x (1 i n 1). Trouver m i un point du segment [x i ; x i +1 ] et a , b et c trois coefcients rels tels que la formule de quadrature suivante, sur lintervalle [x i ; x i +1 ], soit exacte pour p un polynme de degr le plus haut possible :
x i +1 xi

p (x ) dx = ap (x i ) + bp (m i ) + c p (x i +1 ).

2. En dduire en fonction de a , b et c la formule de quadrature Q ( f )


n

Q( f ) =
i =0

i f (x i ) +

n 1 i =0

i f (m i )

pour le calcul approch de 3.11 construite sur la formule de quadrature prcdente pour chaque intervalle du type [x i ; x i +1 ]. Cette formule de quadrature est-elle stable ? 3. On rappelle que si p interpole f en k points y 1 < y 2 < < y k , on a lestimation derreur x [ y 1 ; y k ], | f ( x ) p ( x )| sup[ y 1 ; y k ] | f (k ) ()| k!
k

(x y j ).
j =1

En dduire une estimation de lerreur de quadrature entre (3.11) et Q


1

E (h ) =

f (x ) dx Q ( f ).

La dpendance en h dans cette estimation derreur est-elle optimale ? 4. crire lalgorithme qui calcule Q ( f ). C ORRECTION . 1. Pour simplier le calcul, on se ramne lintervalle [0; 1]. Soit x un lment de lintervalle [x i ; x i +1 ] et y un lment de lintervalle [0; 1]. On transforme lintervalle [x i ; x i +1 ] dans lintervalle [0; 1] par le changement de variable afne y = 1 x xi x x i x x 1 1 x i +1 f ( h i )d x . Comme xii +1 f (t ) dt x x x x x . On note h = x i +1 x i . Alors y = h et on a 0 f ( y ) dy = h x i
i +1 i i +1 i

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

96

G. Faccanoni

Jeudi 31 janvier 2013

3. Quadrature
1 0

a f (x i ) + b f (m i ) + c f (x i +1 ), alors B=
b h,C

f ( y ) dy =

c h,

M=

m i x i h

1 h

x i +1 xi

f(

x x i h

) dx

1 h

a f (0) + b f (

m i x i h

a ) + c f (1) . On note alors A = h ,

do m i = (1 M )x i + M x i +1 . Rechercher a , b , c et m i revient chercher A , B , C et M avec m i = (1 M )x i + M x i +1 , a = Ah , b = Bh , c = Ch

tels que
1 0

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 ) = d 0 + d 1 x + d 2 x 2 + d 3 x 3 ) on a


1

p (x ) dx
0

Ap (0) + B p (M ) + C p (1)

d3 4 d2 3 1 2 d0 x + d 2 x + 3 x + 4 x

1 0

Ad 0 + B d 0 + C d 0

d3 d2 1 d0 + d 2 + 3 + 4

( A + B + C )d 0 + (B M + C )d 1 + (B M 2 + C )d 2 + (B M 3 + C )d 3

Par consquent, pour que la formule soit exacte de degr au moins 3 il faut que A + B +C = 1 A= 1 A + B +C = 1 6, B M = 1 C B = 2 , B M + C = 1 2 2 3 1 1 1 1 2 B M + C = ( C ) M = C C = 3 2 3 6, 1 1 1 3 BM +C = 4 ( 3 C )M = 4 C M=1 2. La mthode
0 1

f (x ) dx =

1 2 1 1 + f (1), f (0) + f 6 3 2 6

est exacte pour tout polynme de degr au moins 3. Soit maintenant f (x ) = x 4 . On a


1 0

f (x ) dx =

x5 5

=
0

1 5
4

mais 1 2 1 1 1 2 1 f (0) + f + f (1) = + 6 3 2 6 6 3 2 donc la formule de quadrature est exacte de degr 3. Si on revient aux variables initiales, on trouve 1 1 m i = 2 x i + 2 x i +1 , a = 1 h , 6 b = 2 h , 3 c=1 6h 2. Lintgrale
1 0 n 1 x i +1

1 5 = , 6 24

f (x )dx =

f (x ) dx

i =0 x i

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

f (x ) dx

h x i + x i +1 f (x i ) + 4 f + f (x i +1 ) . 6 2

On obtient ainsi
1 0 n 1

f (x )dx =

x i +1

f (x ) dx

i =0 x i

G. Faccanoni

97

3. Quadrature
n 1

Jeudi 31 janvier 2013

i =0

h x i + x i +1 f (x i ) + 4 f + f (x i +1 ) 6 2
n 1 n 1 n 1

= = =

h 6

f (x i ) +
i =0 i =0

f (x i +1 ) + 4
i =0 n 1

x i + x i +1 2

n 1 x i + x i +1 h f f (x i ) + 4 f ( a ) + f (b ) + 2 6 2 i =0 i =1 n i =0

i f (x i ) +

n 1 i =0

i f (m i ) = Q ( f )

avec i =

2h , 3

i =

h 3 h 6

si i = 1, . . . , n 1, sinon.

Cette formule de quadrature est stable puisque tous les coefcients i et i sont positifs et on a
n i =0

i +

n 1 i =0

i =

h n 1 h h n 1 2h 1 1 1 n 1 1 2 n 1 + + + = + 1+ + 1 = 1. 6 i =1 3 6 i =0 3 n 6 3 i =1 6 3 i =0
x

1 i +1 3. On reconnait la formule de Cavalieri-Simpson : remarquons alors que Q ( f ) = n p (x )dx avec p le polynme i =0 x i qui interpole (x i , f (x i )), (m i , f (m i )) et (x i +1 , f (x i +1 )). Par consquent lerreur de quadrature entre (3.11) et Q est 1

| E (h )| = =

0 n 1

f (x ) dx Q ( f )
x i +1 n 1

i =0 x i n 1 x i +1

f (x ) dx

x i +1

p (x )dx

i =0 x i

i =0 x i n 1 x i +1

f (x ) p (x ) dx sup[xi ;xi +1 ] | f ()| 6 (x x i )(x m i )(x x i +1 )dx

Dh . 4. Algorithme Require: x f Require: n > 0 a 61 n b 32 n c 61 n I a f (0) for i = 1 to n 1 do I I + (a + c ) f end for return I I + c f (1) + b f
i n

i =0 x i 4

+bf

1 i 2 n

n 1 2 n

98

G. Faccanoni

4. quations direntielles ordinaires


Calculer la fonction t y (t ) qui vrie lEDO y (t ) = f (t , y (t )) et la condition y (t 0 ) = y 0

Les quations diffrentielles dcrivent lvolution de nombreux phnomnes dans des domaines varis. Une quation diffrentielle est une quation impliquant une ou plusieurs drives dune fonction inconnue. Si toutes les drives sont prises par rapport une seule variable, on parle dquation diffrentielle ordinaire. Une quation mettant en jeu des drives partielles est appele quation aux drives partielles. On dit quune quation diffrentielle (ordinaire ou aux drives partielles) est dordre p si elle implique des drives dordre au plus p . Dans le prsent chapitre, nous considrons des quations diffrentielles ordinaires dordre un.

Dnition quations diffrentielles


Une quation diffrentielle (EDO) est une quation, dont linconnue est une fonction y , exprime sous la forme dune relation F ( y , y , y , . . . , y (n ) ) = g (t ) dans laquelle cohabitent la fois y = y (t ) et ses drives y , y , . . . (n est appel lordre de lquation). Si la fonction g , appele second membre de lquation, est nulle, on dit que lquation en question est homogne. Nous pouvons nous limiter aux quations diffrentielles du premier ordre, car une quation dordre p > 1 peut toujours se ramener un systme de p quations dordre 1. Une quation diffrentielle ordinaire admet gnralement une innit de solutions. Pour en slectionner une, on doit imposer une condition supplmentaire qui correspond la valeur prise par la solution en un point de lintervalle dintgration. On considrera par consquent des problmes, dits de C AUCHY ainsi dni : Dnition Problme de C AUCHY Soit f : I R R une fonction donne et y la drive de y par rapport t . On appelle problme de C AUCHY le problme trouver y : I R R tel que y (t ) = f (t , y (t )), t I , y (t 0 ) = y 0 , avec t 0 un point de I et y 0 une valeur appele donne initiale.

Exemple
On se donne f (t , y (t )) = 3t 3 y (t ) et y 0 = (un nombre quelconque). On cherche une fonction y : t R+ y (t ) R qui satisfait y (t ) = 3t 3 y (t ), t > 0, y (0) = . Sa solution est donne par y (t ) = ( 1/3)e 3t + t + 1/3.

Exemple Non unicit de la solution dun problme de C AUCHY


On se donne f (t , y (t )) =
3

y (t ) et y 0 = 0. On cherche une fonction y : t R+ y (t ) R qui satisfait y (t ) =


3

y (t ), t > 0,

y (0) = 0. On vrie que les fonctions y 1 (t ) = 0 et y 2,3 (t ) = 8t 3 /27, pour tout t 0, sont toutes trois solutions du problme de C AUCHY donn. Cest exemple montre quun problme de C AUCHY nas pas ncessairement de solution unique.

Exemple Non existence sur R de la solution dun problme de C AUCHY

On se donne f (t , y (t )) = ( y (t ))3 et y 0 = 1. On cherche une fonction y : t R+ y (t ) R qui satisfait

y (t ) = ( y (t ))3 , t > 0, y (0) = 1.

99

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

On vrie que la solution y est donne par y (t ) = 1/ 1 2t qui nest dnie que pour t [0; 1/2[. Cest exemple montre quun problme de C AUCHY 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 problme de C AUCHY peut tre une affaire dlicate. Dans ce chapitre, nous nous contentons de rappeler un rsultat dexistence et dunicit global, au sens o on peut intgrer le problme de C AUCHY jusqu t = :

Proposition Thorme de C AUCHY-Lipschitz


Soit un problme de C AUCHY. 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 , y 1 ) f ( t , y 2 )| L | y 1 y 2 | , t I , y 1 , y 2 R,

alors la solution y = y (t ) du problme de C AUCHY existe, est unique et appartient C 1 ( I ). Soient a et g deux fonctions continues dun intervalle I dans R, si f (t , y (t )) = a (t ) y (t ) + g (t ) et si (t 0 , y 0 ) I R, alors il existe une unique solution y de lquation diffrentielle telle que y (t 0 ) = y 0 .

Cas particulier

Remarque
Graphiquement, ce thorme signie que par tout point du plan dont labscisse est dans I , il passe une courbe intgrale et une seule, autrement dit deux trajectoires ne peuvent pas se croiser. En particulier, si une quation diffrentielle admet comme solution la solution nulle, alors toute autre solution est soit toujours positive soit toujours ngative.

Exemple
2 On se donne f (t , y (t )) = | y (t )| + sin( y (t )) + e t /2 et y 0 = 1. On cherche une fonction y : t R+ y (t ) R qui satisfait

y (t ) = ( y (t ))3 , t > 0, y (0) = 1. On vrie facilement que f (t , y 1 (t )) f (t , y 2 (t )) = | y 1 (t )| + sin( y 1 (t )) | y 2 (t )| sin( y 2 (t )) = | y 1 (t )| | y 2 (t )| +


y1 y2

sin()d

| y 1 (t )| | y 2 (t )| + | y 1 (t ) y 2 (t )| y 1 (t ) y 2 (t ) Par le thorme de C AUCHY-Lipschitz, le problme de C AUCHY 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. Dans certains 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 dapprocher la solution de toutes les quations diffrentielles qui admettent une solution.

Attention Problme de C AUCHY numriquement mal pos


h Une fois calcule la solution numrique { u n }n = 1 , il est lgitime de chercher savoir dans quelle mesure lerreur | y (t n ) u n | est petite ou non pour n = 1, 2, . . . . Nous essayons de rpondre cette question en reprenant le premier exemple du chapitre. On se donne f (t , y (t )) = 3t 3 y (t ) et y 0 = (un nombre quelconque). On cherche une fonction y : t R+ y (t ) R qui satisfait

y (t ) = 3t 3 y (t ), t > 0, y (0) = . Nous avons vu que sa solution est donne par y (t ) = ( 1/3)e 3t + t + 1/3. Si nous cherchons rsoudre le problme de C AUCHY jusqu t = 10 avec = 1/3, nous obtenons y (10) = 10 + 1/3 = 31/3. Par contre, si nous faisons le calcul avec lapproximation = 0.333333 au lieu de 1/3, nous avons y (10) = (0.333333 1/3)e 30 + 10 + 1/3 = e 30 /3000000 + 31/3 ce qui reprsente une diffrence avec la prcdente valeur de e 30 /3000000 107 /3. Cet exemple nous apprend

100

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

quune petite erreur sur la condition initiale (erreur relative dordre 106 ) peut provoquer une trs grande erreur sur y (10) (erreur relative dordre 106 ). Ainsi, si le calculateur mis notre disposition ne calcul quavec 6 chiffres signicatifs (en virgule ottante), alors = 1/3 devient = 0.333333 et il est inutile dessayer dinventer une mthode numrique pour 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 numriques


Considrons le problme de C AUCHY et supposons que lon ait montr lexistence dune solution y . Le principe de toutes ces mthodes est de subdiviser lintervalle I = [t 0 , T ], avec T < +, en Nh intervalles de longueur h = (T t 0 )/Nh = t n +1 t n ; h est appel le pas de discrtisation. Alors, pour chaque nud t n = t 0 + nh (1 n Nh ) on cherche la valeur inconnue u n qui approche y (t n ). Lensemble des valeurs u 0 = y 0 , u 1 , . . . , u Nh reprsente la solution numrique. Les schmas quon va construire permettent de calculer u n +1 partir de u n et il est donc possible de calculer successivement u 1 , u 2 ,. . ., en partant de u 0 . Si nous intgrons lEDO y (t ) = f (t , y (t )) entre t n et t n +1 nous obtenons y (t n +1 ) y (t n ) =
t n +1 tn

f (t , y (t ))d t .

Soit u n une approximation de y (t n ) et u n +1 une approximation de y (t n +1 ). On peut construire diffrentes schmas selon la formule de quadrature utilise pour approcher le membre de droite. Si on utilise la formule de quadrature du rectangle gauche, i.e.
t n +1 tn

f (t , y (t ))d t h f (t n , y (t n ))

on obtient le schma d E ULER progressif u0 = y ( y 0 ) = y 0 , u n +1 = u n + h f (t n , u (t n )) n = 0, 1, 2, . . . Il sagit dun schma explicite car il permet dexpliciter u n +1 en fonction de u n . Si on utilise la formule de quadrature du rectangle droite, i.e.
t n +1 tn

f (t , y (t ))d t h f (t n +1 , y (t n +1 ))

on obtient le schma d E ULER rtrograde u0 = y ( y 0 ) = y 0 , u n +1 h f (t n +1 , u n +1 ) = u n n = 0, 1, 2, . . .

Il sagit dun schma implicite car il ne permet pas dexpliciter directement u n +1 en fonction de u n lorsque la fonction f nest pas triviale. Si on utilise la formule de quadrature du point du milieu, i.e.
t n +1 tn

f (t , y (t ))d t h f t n +

h h , y tn + 2 2

on obtient un nouveau schma : u0 = y ( y 0 ) = y 0 , u n +1 = u n + h f (t n + h /2, u n +1/2 ) n = 0, 1, 2, . . . o u n +1/2 est une approximation de y (t n + h /2). Nous pouvons utiliser une prdiction dE ULER progressive pour ap n +1/2 = u n + (h /2) f (t n , u n ). Nous avons construit ainsi un procher le u n +1/2 dans le terme f (t n + h /2, u n +1/2 ) par u nouveau schma appel schma d E ULER modi qui scrit u 0 = y ( y 0 ) = y 0 , n +1/2 = u n + (h /2) f (t n , u n ), u n +1/2 ) n = 0, 1, 2, . . . u n +1 = u n + h f (t n + h /2, u

Il sagit dun schma explicite car il permet dexpliciter u n +1 en fonction de u n .

G. Faccanoni

101

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

Si on utilise la formule du trapze, i.e.


t n +1 tn

f (t , y (t ))d t

h f (t n , y (t n )) + f (t n +1 , y (t n +1 )) 2

on obtient le schma du trapze ou de C RANCK -N ICHOLSON u0 = y ( y 0 ) = y 0 , u n +1 h f (t n +1 , u n +1 ) = u n + h f (t n , u n ) n = 0, 1, 2, . . . Il sagit nouveau dun schma implicite car il ne permet pas dexpliciter directement u n +1 en fonction de u n lorsque la fonction f nest pas triviale. En fait, ce schma fait la moyenne des schmas dE ULER progressif et rtrograde. Pour viter le calcul implicite de u n +1 dans le schma du trapze, nous pouvons utiliser une prdiction dE ULER pro n +1 = u n + h f (t n , u n ). Nous avons construit ainsi un gressive et remplacer le u n +1 dans le terme f (t n +1 , u n +1 ) par u nouveau schma appel schma de H EUN. Plus prcisment, la mthode de H EUN scrit u 0 = y ( y 0 ) = y 0 , n +1 = u n + h f (t n , u n ), u n +1 ) u n +1 = u n + h f (t n , u n ) + f (t n +1 , u

n = 0, 1, 2, . . .

Remarque
Considrons le schma dE ULER rtrograde. Si nous voulons calculer u n +1 , nous dnissons la fonction g (x ) = x h f (t n +1 , x ) u n et nous cherchons un zro de g (x ) en prenant par exemple la mthode de N EWTON. Ainsi nous pouvons poser x 0 = u 0 et x m +1 = x m g (x m )/g (x m ), m = 0, 1, . . . . Puisque g (x ) = 1 h x f (t n +1 , x ), nous obtenons donc dans ce cas le schma x0 = un , x m +1 = x m
x m h f (t n +1 ,x )u n 1h x f (t n +1 ,x )

m = 0, 1, 2, . . .

et u n +1 = limm x m pour autant que f soit sufsamment rgulire et que x 0 soit sufsamment proche de u n +1 , ce qui est le cas si le pas h est sufsamment petit.

4.2. Stabilit
Dans la section prcdente, on a considr la rsolution du problme de C AUCHY sur des intervalles borns. Dans ce cadre, le nombre Nh de sous-intervalles ne tend vers linni que quand h tend vers zro. Il existe cependant de nombreuses situations dans lesquelles le problme de C AUCHY doit tre intgr sur des intervalles en temps trs grands ou mme inni. Dans ce cas, mme pour h x, Nh tend vers linni. On sintresse donc des mthodes capables dapprocher la solution pour des intervalles en temps arbitrairement grands, mme pour des pas de temps h assez grands. A premire vue, il semble que le schma dE ULER progressif soit prfrable au schma dE ULER rtrograde puisque ce dernier nest pas explicite. Cependant, nous verrons sur un exemple que le schma progressif peut engendrer des difcults que le schma rtrograde nengendre pas. Considrons le problme de C AUCHY dans le cas particulier o f (t , y (t )) = y (t ) avec un nombre rel positif donn. Sa solution est trivialement y (t ) = y 0 e t . Puisque est positif, ce problme est numriquement bien pos : y (t ) dcrot exponentiellement lorsque t tend vers linni. Pour discrtiser la demi-droite t 0, nous choisissons un nombre rel h > 0 et nous posons t n = nh avec n = 0, 1, 2, . . . Nous allons tudier dans ce cadre les deux schmas dE ULER, savoir le schma dE ULER progressif et le schma dE ULER rtrograde. Le schma dE ULER progressif devient u n +1 = (1 h )u n , et par suite u n +1 = (1 h )n u 0 , n = 0, 1, 2, . . . Bien que la solution y (t ) tend vers zro lorsque t tend vers linni, nous voyons que si u 0 = 0 et 1 h < 1 alors u n tend vers linni en alternant de signe lorsque t tend vers linni. Nous dirons dans ce cas que le schma dE ULER n = 0, 1, 2, . . .

102

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

progressif est instable. Pour viter de phnomne, il convient donc dimposer 1 1 h , ce qui aura pour effet de limiter h 2 h . Cette condition est appele condition de stabilit : elle limite le pas h davance en t lorsquon utilise le schma dE ULER progressif. Le schma dE ULER rtrograde devient dans le cadre de notre exemple (1 + h )u n +1 = u n , et par suite u n +1 = 1 u0 , (1 h )n +1 n = 0, 1, 2, . . . n = 0, 1, 2, . . .

Dans ce cas nous voyons que pour tout h > 0 nous avons limn u n = 0, le schma dE ULER rtrograde est donc toujours stable, sans limitations sur h .

Dnition
La proprit
n +

lim u n = 0

est appele stabilit absolue. Les mthodes qui sont inconditionnellement absolument stables pour tout complexe de partie relle ngative sont dites A-stables. Les mthodes dE ULER implicite et de C RANK -N ICOLSON sont donc A-stables. Cest aussi le cas de nombreuses autres mthodes implicites. Cette proprit rend les mthodes implicites attractives, bien quelles soient plus coteuses que les mthodes explicites.

G. Faccanoni

103

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

/////////////
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Codes Python

Voici les function python des mthodes illustres dans ce chapitre

////////////

#!/usr/bin/python #-*- coding: Utf-8 -*import math import sys import matplotlib.pyplot as plt def euler_progressif(f,tt,N): yy = [y0] for i in range(N): yy.append(yy[i]+h*f(tt[i],yy[i])) return yy def euler_modifie(f,tt,N): yy = [y0] for i in range(N): yy.append(yy[i]+h*f(tt[i]+h*0.5,yy[i]+h*0.5*f(tt[i],yy[i]))) return yy def heun(f,tt,N): yy = [y0] for i in range(N): yy.append(yy[i]+h*(f(tt[i],yy[i])+f(tt[i+1],yy[i]+h*f(tt[i],yy[i])))) return yy

et voici un exemple
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

# INITIALISATION N = 3 exemple = 4 if exemple==1 : t0 = 0. y0 = 1. tfinal = 3. def f(t,y): return y def sol_exacte(t): return math.exp(t) elif exemple==2 : t0 = 0. y0 = 1. tfinal = 3. def f(t,y): return t def sol_exacte(t): return 1.+0.5*t**2 elif exemple==3 : t0 = 0. y0 = 0. tfinal = 1. def f(t,y): return math.cos(2*y) def sol_exacte(t): return 0.5*math.asin((math.exp(4.*t)-1.)/(math.exp(4.*t)+1.)) else : print "Exemple non defini" sys.exit(0) # CALCUL h = (tfinal-t0)/N tt = [ t0+i*h for i in range(N+1) ] yy_exacte = [sol_exacte(t) for t in tt] yy_euler_progressif = euler_progressif(f,tt,N)

104

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

62 63 64 65 66 67 68

yy_euler_modifie = euler_modifie(f,tt,N) yy_heun = euler_modifie(f,tt,N) # AFFICHAGE plt.axis([t0, tfinal, min(yy_euler_progressif), max(yy_euler_progressif)]) plt.plot(tt,yy_exacte,m,tt,yy_euler_progressif,go,tt,yy_euler_modifie,cs,tt,yy_heun,r^) plt.show()

G. Faccanoni

105

4. quations direntielles ordinaires

Jeudi 31 janvier 2013


On considre le problme de C AUCHY

Exercices
y (t ) = y (t ), y (0) = 1,

Exercice 4.1 Stabilit de la mthode d E ULER explicite en fonction du pas



sur lintervalle [0; 10]. 1. Calculer la solution exacte du problme de C AUCHY. 2. Soit t le pas temporel. crire la mthode dE ULER explicite pour cette quation diffrentielle ordinaire (EDO). 3. En dduire une forme du type y k +1 = g (t , k ) avec g (t , k ) prciser (autrement dit, litre en t k ne dpend que de t et k et ne dpend pas de y k ). 4. Utiliser la formulation ainsi obtenue pour tracer les solutions exacte, obtenue avec la mthode dE ULER avec t = 2.5, obtenue avec la mthode dE ULER avec t = 1.5, obtenue avec la mthode dE ULER avec t = 0.5. 5. Que peut-on en dduire sur la stabilit de la mthode ? C ORRECTION . 1. Il sagit dune EDO variables sparables. Lunique solution constante de lEDO est la fonction y (t ) 0, toutes les autres solutions sont du type y (t ) = C e t . Donc lunique solution du problme de C AUCHY est la fonction y (t ) = e t dnie pour tout t R. 2. La mthode dE ULER 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 lapproximation linaire y (t + t ) y (t ) + y (t )t = y (t ) + F (t , y (t ))t . En choisissant un pas de discrtisation t , nous obtenons une suite de valeurs (t k , y k ) qui peuvent tre une excellente approximation de la fonction y (t ) avec t k = t 0 + k t , y k = y k 1 + F (t k 1 , y k 1 )t . La mthode dE ULER explicite pour cette EDO scrit donc y k +1 = (1 t ) y k . 3. En procdant par rcurrence sur k , on obtient y k +1 = (1 t )k +1 . 4. On a donc 3 k , 2 1 k si t = 1.5 alors y k = , 2 k 1 si t = 0.5 alors y k = . 2 Ci-dessous sont traces sur lintervalle [0; 10], les courbes reprsentatives de la solution exacte et de la solution calcule par la mthode dE ULER explicite. En faisant varier le pas t nous pouvons constater que si t = 2.5 lerreur commise entre la solution exacte et la solution calcule est amplie dun pas lautre. si t = 2.5 alors y k =

106

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

y 3 2 1 0 1 1 2 3 2 3 4 5 6 7 8 9 Exacte t = 0.5 t = 1.5 t = 2.5 t

NB : les trois premires itres ont la mme pente (se rappeler de la construction gomtrique de la mthode dE ULER). 5. De la formule y k +1 = (1 t )k +1 on dduit que si 0 < t < 1 alors la solution numrique est stable et convergente, si 1 < t < 2 alors la solution numrique oscille mais est encore convergente, si t > 2 alors la solution numrique oscille et divergente. En effet, on sait que la mthode est absolument stable si et seulement si |1 t | < 1. Remarque : la suite obtenue est une suite gomtrique de raison q = 1 t . On sait quune telle suite diverge si |q | > 1 ou q = 1, est stationnaire si q = 1, converge vers 0 |q | < 1.

Exercice 4.2
Lvolution de la concentration de certaines ractions chimiques au cours du temps peut tre dcrite par lquation diffrentielle 1 y (t ) = y (t ). 1+ t2 Sachant qu linstant t = 0 la concentration est y (0) = 5, dterminer la concentration t = 2 laide de la mthode dE ULER implicite avec un pas h = 0.5.

C ORRECTION . La mthode dE ULER implicite est une mthode dintgration numrique dEDO du premier ordre de la forme y (t ) = F (t , y (t )). Cest une mthode itrative : en choisissant un pas de discrtisation h , la valeur y linstant t + h se dduit de la valeur de y linstant t par lapproximation linaire y (t + h ) y (t ) + h y (t + h ) = y (t ) + hF (t + h , y (t + h )). On pose alors t k = t 0 + kh , k N. En rsolvant lquation non-linaire y k +1 = y k + hF (t k +1 , y k +1 ), on obtient une suite ( y k )k N qui approche les valeurs de la fonction y en t k . Dans notre cas, lquation non-linaire scrit y k +1 = y k Elle peut tre rsolue algbriquement et cela donne la suite y k +1 = yk 1 + 1+ h t2
k +1

h
2 1 + tk +1

y k +1 .

G. Faccanoni

107

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

Si linstant t = 0 la concentration est y (0) = 5, et si h = 1/2, alors t k = k /2 et y k +1 = On obtient donc k 0 1 2 3 4 tk 0 0.5 1.0 1.5 2.0
6+12 4+22 25 6+22 7 4+32 4+12

4 + (k + 1)2 yk . 6 + (k + 1)2

yk 5 5= 5 75 = =
8 25 10 7 25 7

3.57 2.86

20 7

20 52 20 = 13 15 7 = 21 2.48 6+32 7 2 4+4 52 20 52 520 = 22 21 = 231 2.25 6+42 21

La concentration t = 2 est denviron 2.25. Comparons avec le calcul exact : y (2) = 5e arctan(2) 1.652499838. y 5 4 3 2 1 Exacte E ULER implicite

Exercice 4.3
Soit > 0 un nombre rel positif et considrons le problme de C AUCHY y (t ) = y (t ), pour t > 0, y (0) = y 0 , (4.1)

o y 0 est une valeur donne. Soit h > 0 un pas de temps donn, t i = i h pour i N et y i une approximation de y (t i ). 1. crire le schma du trapze (appel aussi de C RANCK -N ICHOLSON) permettant de calculer y i +1 partir de y i . Sous quelle condition sur h le schma du trapze est-il A-stable ? Autrement dit, pour quelles valeurs de h la relation lim y i = 0 a-t-elle lieu ?
i +

2. partir du schma du trapze, en dduire le schma de H EUN. Sous quelle condition sur h le schma de H EUN est-il A-stable ? C ORRECTION . Le problme (4.1) est un problme du type trouver y : I R+ R tel que y (t ) = f (t , y (t )), t I , y (t 0 ) = y 0 . Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur h et, pour chaque nud t i = t 0 + i h (i N ), on cherche la valeur inconnue y i qui approche y (t i ). Lensemble de valeurs y 0 , y 1 , . . . reprsente la solution numrique. Les schmas numriques permettent de calculer y i +1 partir de y i et il est donc possible de calculer successivement y 1 , y 2 ,. . . en partant de y 0 . 1. Si nous intgrons lEDO y (t ) = f (t , y (t )) entre t i et t i +1 nous obtenons y (t i +1 ) y (t i ) =
t i +1 ti

f (t , y (t )) dt .

108

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

Soit y i une approximation de y (t i ) et y i +1 une approximation de y (t i +1 ). Si on utilise la formule du trapze, i.e.


t i +1 ti

f (t , y (t )) dt

h f (t i , y (t i )) + f (t i +1 , y (t i +1 )) 2

on obtient le schma du trapze ou de C RANCK -N ICHOLSON y 0 = y (t 0 ),


h y i +1 h 2 f (t i +1 , y i +1 ) = y i + 2 f (t i , y i ), pour i = 0, 1, 2, . . .

Il sagit dun schma implicite car il ne permet pas dcrire directement y i +1 en fonction de y i lorsque la fonction f nest pas triviale. En appliquant le schma du trapze au problme (4.1) on obtient la suite dnie par rcurrence suivante y 0 = y (t 0 ),
h 1+ h 2 y i +1 = 1 2 y i .

Par induction on obtient yi = Par consquent, lim y i = 0 si et seulement si


i +

2 h 2 + h

y0.

2 h < 1. 2 + h

x x x Notons x le produit h > 0 et q la fonction q (x ) = 2 2+x = 1 2 2+x . Nous avons 0 < 2+x < 1 pour tout x R+ , donc |q (x )| < 1 pour tout x R+ . La relation lim y i = 0 est donc satisfaite pour tout h > 0. i +

2. Pour viter le calcul implicite de y i +1 dans le schma du trapze, nous pouvons utiliser une prdiction dE ULER i +1 = y i + h f (t i , y i ). Nous avons construit ainsi le progressive et remplacer le y i +1 dans le terme f (t i +1 , y i +1 ) par y schma de H EUN. Plus prcisment, cette mthode scrit y 0 = y (t 0 ), y i +1 = y i + h 2 f (t i , y i ) + f t i +1 , y i + h f (t i , y i , pour i = 0, 1, 2, . . .

En appliquant le schma de H EUN au problme (4.1) on obtient la suite dnie par rcurrence suivante y 0 = y (t 0 ), y i +1 = 1 h + Par induction on obtient y i = 1 h + Par consquent, lim y i = 0 si et seulement si
i + (h )2 2 i

yi .

( h )2 2

y0.

1 h + 2

(h )2 < 1. 2

2 Notons x le produit h et q le polynme q (x ) = 1 2 x x + 1 dont le graphe est reprsent en gure.

2
i +

x = h

Nous avons |q (x )| < 1 si et seulement si 0 < x < 2. La relation lim y i = 0 est donc satisfaite si et seulement si h< 2 .

G. Faccanoni

109

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

Exercice 4.4
On considre le problme de C AUCHY y (t ) = ( y (t ))m + cos(t ), pour t > 0, y (0) = 0, 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 t i = i t pour i N et y i une approximation de y (t i ). crire le schma dE ULER rtrograde permettant de calculer y i +1 partir de y i . 3. partir du schma obtenu au point prcdent, crire un seul pas de la mthode de N EWTON pour calculer une nouvelle approximation de y i +1 . En dduire ainsi un nouveau schma explicite. C ORRECTION . 1. Le problme (4.2) est un problme du type trouver y : I R+ R tel que y (t ) = f (t , y (t )), t I , y (t 0 ) = y 0 , 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 , y 1 ) f ( t , y 2 )| L | y 1 y 2 | , t I , y 1 , y 2 R, (4.2)

alors la solution y = y (t ) du problme de C AUCHY existe, est unique et appartient C 1 ( I ). Dans notre cas, f (t , y (t )) = ( y (t ))m + cos(t ) et y 0 = 0. Puisque m est impair et t f ( y , y (t )) = m ( y (t ))m 1 0, la fonction f est dcroissante et satisfait donc f (t 1 , y (t 1 )) f (t 2 , y (t 2 )) (t 1 t 2 ) 0 Par consquent, le problme (4.2) possde une solution unique globale. 2. Le problme (4.1) est un problme du type trouver y : I R+ R tel que y (t ) = f (t , y (t )), t I , y (t 0 ) = y 0 . Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur t et, pour chaque nud t n = t 0 + i t (i 0 ), on cherche la valeur inconnue y i qui approche y (t i ). Lensemble de valeurs y 0 , y 1 , . . . reprsente la solution numrique. Le schma de E ULER rtrograde tablit une relation entre y i et y i +1 et il est donc possible de calculer successivement y 1 , y 2 ,. . ., en partant de y 0 . Si nous intgrons lEDO y (t ) = f (t , y (t )) entre t i et t i +1 nous obtenons y (t i +1 ) y (t i ) =
t i +1 ti

t 1 , t 2 R.

f (t , y (t )) dt .

Soit y i une approximation de y (t i ) et y i +1 une approximation de y (t i +1 ). Si on utilise la formule du rectangle droite, i.e.
t i +1 ti

f (t , y (t )) dt t f (t i +1 , y (t i +1 ))

on obtient le schma d E ULER rtrograde : y 0 = 0, y i +1 = y i + t ( y i +1 )m + cos(t i +1 ) . Ce schma est implicite car il ne permet pas de calculer y i +1 directement partir de y i .

110

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

3. Il sagit de trouver y i +1 tel que

y i +1 = y i + t y im +1 + cos(t i +1 ) .

Pour dterminer y i +1 nous devons chercher le zro de la fonction g dnie par g (x ) = x + t x m t cos(t i +1 ) + y i . La mthode de N EWTON pour approcher le zro de g scrit x k +1 = x k
m x k + t x k t cos(t i +1 ) + y i g (x k ) = xk . m 1 g (x k ) 1 + m t x k

Le premier pas de la mthode de N EWTON scrit donc x1 = x0


m x 0 + t x 0 t cos(t i +1 ) + y i m 1 1 + m t x 0

Choisissons x 0 = y i comme valeur de dpart. Nous pouvons utiliser x 1 comme approximation de y i +1 et on obtient le schma y 0 = 0, y i + t y im t cos(t i +1 ) + y i . y i +1 = 1 + m t y im 1

Exercice 4.5
Soit le problme de C AUCHY : u (t ) + 10u (t ) = 0, t R, u (0) = u 0 > 0. 1. Montrer quil existe une unique solution globale u C (R, R) que vous prciserez explicitement. 2. Soit le schma numrique de Cranck-Nicholson dni par la suite (u n )n N vriant u n +1 u n + 5(u n +1 + u n ) = 0, t n N, (4.3)

pour t > 0 x. Montrer que la suite (u n )n N est une suite gomtrique dont vous prciserez la raison. 3. Montrer que la raison r de la suite vrie |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 u n en fonction de n . 6. Soit T > 0 x, soit n = n (t ) tel que T t < n t T . Montrer que
t 0

lim u n = u 0 e 10T .

7. Soit (v n )n N la suite dnissant le schma dE ULER explicite pour lquation diffrentielle (4.3). Montrer que
t 0

lim v n = u 0 e 10T .

Montrer que la suite (u n ) converge plus vite que (v n ) lorsque t 0. C ORRECTION . Cest un problme de C AUCHY du type u (t ) = f (t , u (t )), t R, u (0) = u 0 > 0, avec f (t , u (t )) = g (u (t )) = 10u (t ). 1. Comme g C 1 (R, R), daprs C AUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1 ([T , T ], R). Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur u ainsi u C ([T , T ], R). La fonctionne nulle est solution de lquation diffrentielle f (t , 0) = 0, par lunicit de la solution du problme de C AUCHY, pour tout t [T , T ], u (t ) > 0 si u 0 > 0 et u (t ) < 0 si u 0 > 0 (autrement dit, deux trajectoires ne peuvent pas se croiser). De (4.4)

G. Faccanoni

111

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

plus, u est dcroissante si u 0 > 0 et croissante si u 0 < 0. On en dduit par le thorme des extrmits que la solution u admet un prolongement sur R solution de lEDO. Pour en calculer la solution, on remarque quil sagit dune EDO variables sparables. Lunique solution constante est u (t ) 0, toutes les autres solutions sont du type u (t ) = C e 10t . En prenant en compte la condition initiale on conclut que lunique solution du problme de C AUCHY est u (t ) = u 0 e 10t dnie pour tout t R. y 3 2 1 1 0 1 2 3 2. Soit le schma numrique de Cranck-Nicholson dni par la suite (u n )n N vriant u n +1 u n + 5(u n +1 + u n ) = 0, t n N, 1 t

pour t > 0 x. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire : u n +1 = 5t u n +1 5t u n + u n do u n +1 = Il sagit dune suite gomtrique de raison r= 3. Pour tout t > 0 on a r= et 1 < 1 1 5t un . 1 + 5t 1 5t . 1 + 5t

1 5t 10t = 1 1 + 5t 1 + 5t 10t < 1. 1 + 5t

Ce schma est donc inconditionnellement A-stable car |u n +1 | = |r n +1 u 0 | |u 0 |. 4. Le schma gnre une suite positive ssi 1 i.e. ssi 10t >0 1 + 5t 1 t < . 5 un = 1 5t 1 + 5t
n

5. Par rcurrence on obtient

u0 .

6. Soit T > 0 x et considrons n = n (t ) tel que T t < n t T . En se rappelant que ln(1 + x ) =1 x 0 x lim et en observant que
15t 1+5t
T t

15t n 1+5t

eT eT

15t 1+5t

T t

e (T t ) e (T t )

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

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

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

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

e 10T

e 10T

112

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

on conclut que
t 0

lim u n = u 0 lim

t 0

1 5t 1 + 5t

= u 0 e 10T .

7. La suite dnissant le schma dE ULER explicite pour lEDO assigne scrit v n +1 v n = f (t n , u n ) t = v n +1 = v n 10t v n = (1 10t )v n = (1 10t )n +1 v 0 .

Il sagit nouveau dune suite gomtrique de raison r e = 1 10t qui converge si et seulement si |r e | < 1, i.e. si et seulement si t < 0,2 (le schma dE ULER pour cette EDO est conditionnellement stable). Soit T > 0 x et considrons n = n (t ) tel que T t < n t T . Alors (1 10t ) t 1 e (T t )
ln(110t ) t ln(110t ) T

(1 10t )n

(1 10t ) t eT
ln(110t ) t ln(110t ) 10t

e 10(T t ) 10t e 10T do


t 0

e 10T

e 10T
T

lim v n = u 0 lim (1 10t ) t = u 0 e 10T .


t 0

De plus, on sait (cf. cours) que la suite {u n }n N converge lordre 2 tandis que la suite {v n }n N converge lordre 1.

Exercice 4.6
Soit le problme de C AUCHY : u (t ) + u 5 (t ) = 0, t R+ , u (0) = u 0 > 0. 1. Montrer quil existe une unique solution globale u C (R+ , R+ ). 2. Soit le schma numrique dni par la suite (u n )n N suivante u n +1 u n 4 + u n +1 u n = 0, t pour t > 0 x. Expliciter lexpression de u n +1 en fonction de u n . 3. Montrer que la suite (u n )n N est une suite dcroissante et convergente vers 0. Ce schma est-il inconditionnellement A-stable ? C ORRECTION . Cest un problme de C AUCHY du type u (t ) = f (t , u (t )), t R, u (0) = u 0 > 0, avec f (t , u (t )) = g (u (t )) = u 5 (t ). 1. Comme g C 1 (R+ , R+ ), daprs C AUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1 ([0, T ], R+ ). Par rcurrence, 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 u 0 > 0, par lunicit de la solution du problme de C AUCHY on a u (t ) > 0 pour tout t [0, T ] (car deux trajectoires ne peuvent pas se croiser). De plus, u est dcroissante, ainsi la solution est borne (u (t ) ]0, u 0 [). On en dduit par le thorme des extrmits que la solution u admet un prolongement sur R+ solution de lEDO. 2. Pour t > 0 x on obtient une formule de rcurrence rendue explicite par un calcul lmentaire : u n +1 = un
4 1 + un t

(4.5)

n N,

(4.6)

n N.

G. Faccanoni

113

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

3. On tudie la suite u 0 > 0, u n +1 =


un 4 t , 1+u n

n N,
u n +1 un 1 4 t 1+u n

pour t > 0 x. Par rcurrence on montre que si u 0 > 0 alors u n > 0 pour tout n N. De plus,

< 1 pour tout n N : la la

suite est monotone dcroissante. On a alors une suite dcroissante et borne par zro, donc elle converge. Soit limite de cette suite, alors 0 et = 1+ 4 t donc = 0. Ce schma est donc inconditionnellement A-stable.

Exercice 4.7
Soit le problme de C AUCHY : u (t ) + sin(u (t )) = 0, t R, u (0) = u 0 > 0. 1. Montrer quil existe une unique solution globale u C (R, R). 2. crire le schma le schma dE ULER explicite pour ce problme de C AUCHY en explicitant vos notations. 3. Montrer que la suite (u n )n N construite par ce schma vrie |u n +1 | |u n | + t , o t > 0 est le pas de la suite. 4. En dduire que |u n | |u 0 | + n t , C ORRECTION . Cest un problme de C AUCHY du type u (t ) = f (t , u (t )), t R, u (0) = u 0 > 0, avec f (t , u (t )) = g (u (t )) = sin(u (t )). 1. Comme g C 1 (R, R), daprs C AUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1 ([T , T ], R). Par rcurrence, 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 ) = k pour k Z sont solutions de lquation diffrentielle car g (k ) = 0. Pour Z tel que u 0 [k ; ( k + 1)] ; par lunicit de la solution du problme de C AUCHY on a u (t ) u 0 donn, soit k [k ; (k + 1)] pour tout t [T , T ] (car deux trajectoires ne peuvent pas se croiser), i.e. la solution est borne. On en dduit par le thorme des extrmits que la solution u admet un prolongement sur R solution de lEDO. 2. Soit t > 0 x et t n = n t pour tout n Z. Le schma dE ULER explicite pour lEDO donne construit la suite u n +1 = u n t sin(u n ), n N. (4.8) n N. n N, (4.7)

3. Comme |a + b | |a | + |b | et comme | sin(x )| 1 pour tout x R, on conclut que |u n +1 | = |u n t sin(u n )| |u n | + |t sin(u n )| |u n | + t pour t > 0 x. 4. Par rcurrence : |u n +1 | |u n | + t |u n 1 | + 2t |u 0 | + (n + 1)t .

Exercice 4.8 Loi de N EWTON K


Considrons une tasse de caf la temprature de 75C dans une salle 25C. On suppose que la temprature du caf suit la loi de Newton, cest--dire que la vitesse de refroidissement du caf est proportionnelle la diffrence des tempratures. En formule cela signie quil existe une constante K < 0 telle que la temprature vrie lquation diffrentielle ordinaire (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 direntielles ordinaires

Pour calculer la temprature chaque instant on a besoin de connatre la constante K . Cette valeur peut tre dduite en constatant quaprs 5 minutes le caf est 50C, cest--dire T (5) = 50. Calculer la solution exacte de ce problme de C AUCHY et la comparer avec la solution approche obtenue par la mthode dE ULER explicite.

C ORRECTION .

Solution exacte

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 xera en utilisant la CI. Il sagit dune EDO variables sparables donc formellement on a T (t ) = K (T (t ) 25) 1 dT = K (T 25) dt = = T (t ) =K (T (t ) 25) ln(T 25) = K t + c = = dT = Kdt (T 25) T 25 = De K t = = T (t ) = 25 + De K t

2. La valeur numrique de la constante dintgration D est obtenue grce la CI : 75 = T (0) = 25 + De K 0 = D = 50 = T (t ) = 25 + 50e K t

3. Il ne reste qu tablir la valeur numrique de la constante de refroidissement K grce lindice : 50 = T (5) = 25 + 50e K t = K = ln(2) 0.14 5 = 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 T 75
ln(2) 5 t

50

25

0 5 10

15 t

Solution approche par la mthode dEuler progressive Supposons de connatre K mais de ne pas vouloir/pouvoir
calculer la fonction T (t ). Grce la mthode dE ULER on peut estimer la temprature diffrentes instantes t i en faisant une discrtisation temporelle du futur (i.e. on construit une suite de valeurs {t i = 0 + i t }i ) et en construisant une suite de valeurs {Ti }i o chaque Ti est une approximation de T (t i ). Si on utilise la mthode dE ULER, cette suite de 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 + 5 ln(2)t , T0 = 75. 1. Exemple avec t = 5 :

G. Faccanoni

115

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

T 75

50

25

0 5 ti 0.000000 5.000000 10.000000 15.000000 2. Exemple avec t = 1 : T 75 T (t i ) 75.000000 50.000000 37.500000 31.250000 Ti 75.000000 40.342641 29.707933 26.444642 10 T (t i ) Ti 0.000000 9.657359 7.792067 4.805358

15 t

50

25

0 5 ti 0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 T (t i ) 75.000000 68.527528 62.892914 57.987698 53.717459 50.000000 46.763764 43.946457 41.493849 39.358729 37.500000 35.881882 34.473229 33.246924 32.179365 31.250000 Ti 75.000000 68.068528 62.097962 56.955093 52.525176 48.709377 45.422559 42.591391 40.152707 38.052095 36.242691 34.684123 33.341618 32.185225 31.189141 30.331144 10 T (t i ) Ti 0.000000 0.459000 0.794952 1.032605 1.192283 1.290623 1.341205 1.355066 1.341142 1.306634 1.257309 1.197759 1.131610 1.061700 0.990224 0.918856

15 t

116

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

Exercice 4.9 Les experts - Toulon


La loi de Newton afrme que la vitesse de refroidissement dun corps est proportionnelle la diffrence entre la temprature du corps et la temprature externe, autrement dit quil existe une constante K < 0 telle que la temprature du corps suit lquation diffrentielle T (t ) = K (T (t ) Text ), T (0) = T0 . 1. Soit t le pas temporel. crire le schma dE ULER implicite pour approcher la solution de cette quation diffrentielle. 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 t n ne dpend que de t , de n et de T0 ). Que peut-on en dduire sur 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 2 H 20 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 dE ULER implicite avec t = 10 minutes. 4. Pour cette quation diffrentielle, il est possible de calculer analytiquement ses solutions. Comparer alors la solution exacte avec la solution approche obtenue au point prcdent. C ORRECTION . 1. La mthode dE ULER implicite (ou rgressive) est une mthode dintgration numrique dEDO du premier ordre de la forme T (t ) = F (t , T (t )). En choisissant un pas de discrtisation t , nous obtenons une suite de valeurs (t n , Tn ) qui peuvent tre une excellente approximation de la fonction T (t ) avec t n = t 0 + n t , Tn +1 = Tn + F (t n +1 , Tn +1 )t . La mthode dE ULER implicite pour cette EDO scrit donc Tn +1 = Tn + K t (Tn +1 Text ). 2. Si Text = 0C, en procdant par rcurrence sur n on obtient Tn +1 = g (t , n ) = 1 1 Tn = T0 , 1 K t (1 K t )n +1

1 autrement dit, litre en t n ne dpend que de t et de n mais ne dpend pas de Tn . Comme 0 < 1K t < 1 pour tout t > 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 cherche n tel que 20 = ln 37 1 37 37 20 n +1 37 = (1 K t ) = = n + 1 = log = = n 8. (1 K t ) (1 K t )n +1 20 20 ln(1 K t )

Comme t n = t 0 + n t , si t n = 2 H 20 alors t 0 = t n n t = 2 H 20 1 H 20 = 01 H 00. 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 a 0 = K (c Text ) do lunique solution constante T (t ) Text . Soit T (t ) = Text quelque soit t . Puisquil sagit dune EDO variables sparables on peut calculer la solution comme suit : T (t ) = K (T (t ) Text ) 1 dT = K T Text dt = = T (t ) =K T (t ) Text ln(T Text ) = K t + c = = dT = K dt T Text T Text = De K t = = T (t ) = Text + De K t .

G. Faccanoni

117

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

La valeur numrique de la constante dintgration D est obtenue grce la CI : T0 = T (0) = De K 0 = D = T0 = T (t ) = T0 e K t

Ici T0 = 37C donc la temprature du cadavre suit la loi T (t ) = 37e K t . Pour dterminer lheure du meurtre il faut alors rsoudre lquation 20 = 37e K t do t =
1 K

ln 20 37 82,70715903 minutes, cest--dire 83 minutes avant 2H20 : le crime a t commit 00H57. T [C] 3 2 1

1H40

1H50

1H30

2H00

1H20

2H10

Exercice 4.10
Un modle pour la diffusion dune pidmie se base sur lhypothse que sa vitesse de propagation est proportionnelle au 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 une constante k R+ telle que I (t ) = k I (t )( A I (t )). 1. Montrer quil existe T > 0 et une unique solution I C ([0, T ]) au problme de C AUCHY : I (t ) = k I (t )( A I (t )), I (0) = I 0 > 0. 2. Montrer que si 0 < I 0 < A alors 0 < I (t ) < A pour tout t > 0. 3. Montrer que si 0 < I 0 < A alors I (t ) est croissante sur R+ . 4. Soit 0 < I 0 < A . On considre le schma semi-implicite I n +1 I n = k I n ( A I n +1 ). t Montrer que ce schma est inconditionnellement A-stable. C ORRECTION . Cest un problme de C AUCHY du type I (t ) = f (t , I (t )), t R+ , I (0) = I 0 > 0, avec f (t , I (t )) = g ( I (t )) = k I (t )( A I (t )). 1. Comme g C 1 (R, R), daprs C AUCHY-Lipschitz, il existe T > 0 et une unique I C 1 ([0, T ], R) solution du problme de C AUCHY. 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 < I 0 < A alors 0 < I (t ) < A pour tout t [0, T ] (car, par lunicit de la solution du problme de C AUCHY, deux trajectoires ne peuvent pas se croiser). 3. Puisque I (t ) = k I (t )( A I (t )), si 0 < I 0 < A alors I est croissante pour tout t [0, T ]. On en dduit par le thorme des extrmits que la solution I admet un prolongement sur R+ solution de lEDO et que I est croissante pour tout t R+ . (4.9)

118

2H20

1H00

1H10

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

4. Soit 0 < I 0 < A . On considre le schma semi-implicite I n +1 I n = k I n ( A I n +1 ) t pour t > 0 x. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire : I n +1 = Si 0 < I 0 < A alors I n > 0 quelque soit n ; I n est majore par A car I n +1 A (1 + k A t ) I n (1 + k I n t ) A In A 1 + k A t In . 1 + k I n t

donc par rcurrence I n +1 A quelque soit n ; I n est une suite monotone croissante (encore par rcurrence on montre que | I n +1 | | I n | | I 0 |) ; 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 ) = A De Akt + 1

La valeur numrique de la constante dintgration D est obtenue grce la CI : D= Exemple avec A = 5000, I 0 = 160, k =
I A

A I0 I0

ln(363/38) 35000

et t = 1 :

Exacte Approche avec t = 1

I0 t

Exercice 4.11
Considrons une population de bactries. Soit p (t ) le nombre dindividus ( 0) linstant t 0. Un modle qui dcrit lvolution de cette population est lquation de la logistique : soit k et h deux constantes positives, alors p (t ) vrie lquation diffrentielle ordinaire (EDO) du premier ordre p (t ) = kp (t ) hp 2 (t ). On veut calculer p (t ) partir dun nombre initiale dindividus donn p (0) = p 0 0.

C ORRECTION .

Solution exacte

G. Faccanoni

119

4. quations direntielles 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 xera en utilisant la CI. Il sagit dune EDO variables sparables. On cherche dabord les solutions constantes, cest--dire les solutions du type p (t ) c pour tout t R+ : 0 = kc hc 2 . On a donc deux solutions constantes : p (t ) 0 et p (t ) k . h

tant donn que deux solutions dune EDO ne sintersectent jamais, dornavant on supposera p (t ) = 0 et p (t ) = k + h pour tout t R , ainsi p (t ) = 1. kp (t ) hp 2 (t ) Formellement on a dp = 1 dt kp hp 2 1 1 h dp dp = 1 dt p k k hp p = kt + kc ln k hp k . p (t ) = 1 +h De kt = = = 1 dp = 1 dt p (k hp ) 1 1 ln(p ) ln(k hp ) = t + c k k p = De kt k hp = = =

1 k

2. La valeur numrique de la constante dintgration D est obtenue grce la CI : p 0 = p (0) = kD 1 + hDe 0k = D= p0 . k hp 0

On peut donc conclure que la population volue selon la fonction 0 k si p 0 = 0,


k si p 0 = h ,

p (t ) =

h
p 0 e kt

k k hp 0 +h

sinon.

Une simple tude de la fonction p montre que si p 0 ]0; k /h [ alors p (t ) > 0 et limt + p (t ) = k /h , si p 0 ]k /h ; +[ alors p (t ) < 0 et limt + p (t ) = k /h . p 5 4 3 2 1 0 1 2 3 Exemple avec k = 3, h = 1 et diffrentes valeurs de p0.

Solution approche Supposons de ne pas vouloir/pouvoir calculer la fonction p (t ). Grce la mthode dE ULER on
peut estimer le nombre dindivus diffrentes instantes t i en faisant une discrtisation temporelle du futur (i.e.

120

G. Faccanoni

Jeudi 31 janvier 2013

4. quations direntielles ordinaires

on construit une suite de valeurs {t i = 0 + i t }i ) et en construisant une suite de valeurs {p i }i o chaque p i est une approximation de p (t i ). Si on utilise la mthode dE ULER, cette suite est ainsi construite : p i +1 = p i + t p i (k hp i ), p 0 donn, quon peut rcrire comme p i +1 = (1 + k t h t p i )p i , p 0 donn. On veut appliquer cette mthode au cas de la gure prcdente, i.e. avec k = 3, h = 1 et les valeurs initiales p 0 = 5 et p 0 = 2. Si on choisit comme pas temporelle t = 0,15, on obtient les gures suivantes : ti p (t i ) pi p (t i ) p i p 0.00 5.000000 5.000000 0.000000 5 0.15 4.027123 3.500000 0.527123 0.30 3.582637 3.237500 0.345137 4 0.45 3.347079 3.122164 0.224915 0.60 3.212403 3.064952 0.147451 3 0.75 3.132046 3.035091 0.096956 0.90 3.082874 3.019115 0.063759 2 1.05 3.052319 3.010459 0.041861 1.20 3.033151 3.005736 0.027415 1 1.35 3.021054 3.003150 0.017904 1.50 3.013390 3.001731 0.011659 1.65 3.008524 3.000952 0.007573 0 1 2 3 t 1.80 3.005430 3.000523 0.004907 ti 0.00 0.15 0.30 0.45 0.60 0.75 0.90 1.05 1.20 1.35 1.50 1.65 1.80 p (t i ) 2.000000 2.274771 2.493175 2.655760 2.770980 2.849816 2.902469 2.937070 2.959567 2.974092 2.983429 2.989412 2.993240 pi 2.000000 2.300000 2.541500 2.716292 2.831887 2.903298 2.945411 2.969529 2.983102 2.990663 2.994852 2.997164 2.998439 p (t i ) p i 0.000000 0.025229 0.048325 0.060532 0.060907 0.053483 0.042942 0.032459 0.023535 0.016571 0.011423 0.007752 0.005199 p 5 4 3 2 1 0 1 2 3 t

Exercice 4.12 Mthode de Taylor


La mthode de Taylor est bas sur la relation y (x + h ) y ( x ) + y ( x )h + 1 1 1 (m ) y ( x )h 2 + y ( x )h 3 + + y ( x )h m 2! 3! m!

Cette relation prdit y (x + h ) partir de y (x ), ainsi elle permet dcrire une formule dintgration numrique. Le dernier terme indique lordre de la mthode et lerreur de troncature, due aux termes omis, est E= que lon peut approcher par E Considrons le problme de C AUCHY y (x ) + 4 y (x ) = x 2 , y (0) = 1. Estimer y (0.1) par la mthode de Taylor dordre 4 avec un seul pas dintgration. 1 y (m +1) ()h m +1 (m + 1)! pour x < < x + h ,

hm y (m ) (x + h ) y (m ) (x ) . (m + 1)!

G. Faccanoni

121

4. quations direntielles ordinaires

Jeudi 31 janvier 2013

C ORRECTION .

Le dveloppement de Taylor en 0 jusqu lordre 4 est y (h ) y (0) + y (0)h + 1 1 1 y (0)h 2 + y (0)h 3 + y I V (0)h 4 . 2! 3! 4!

En drivant lEDO on trouve y (0) = 1, y (x ) = 4 y (x ) + x , y (x ) = 4 y (x ) + 2x , y (x ) = 4 y (x ) + 2, y


IV 2

y (0) = 4, y (0) = 16, y (0) = 62, y I V (0) = 248.

(x ) = 4 y (x ),

donc, pour x = 0 et h = 0.1, on obtient y (0.1) et comme y I V (x + h ) = 4 y (x ) = 4 4 y (x ) + 2 = 4 4 y (x ) + 2x + 2 = 4 4 4 y (x ) + x 2 + 2x + 2 alors y I V (0.1) 4 4 4 0.6707 + (0.1)2 + 0.2 + 2 = 166.259 et on obtient lestimation de lerreur E 248 248 y I V (0.1) y I V (0) = (166.259 248) = 0.000068. 960000 960000 1+ 4 16 62 248 + + + = 0.6707 10 200 6000 240000

122

G. Faccanoni

5. Meilleur approximation au sens des moindres carrs.


Dterminer une fonction f : x f (x ) qui minimise lcart entre un ensemble de points exprin n mentaux (x i , y i ) i =0 et lensemble de points (x i , f (x i )) i =0 .

Nous avons dj vu au chapitre sur linterpolation quaugmenter le degr dun polynme dinterpolation de Lagrange namliore pas toujours lapproximation dune fonction donne. Ce problme peut tre rsolu avec linterpolation composite (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 des points situs lextrieur de lintervalle contenant les nuds dinterpolation. Un autre cas o ni linterpolation de L A GRANGE ni linterpolation composite nest daucune aide est le cas o les donnes sont bruites. Lorsquun chercheur met au point une exprience (parce quil a quelques raisons de croire que les deux grandeurs x et y sont lies par une fonction n f ), il rcolte des donnes sous la forme de points (x i , y i ) i =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 points observs. Soit d i = y i f (x i ) lcart vertical du point (x i , y i ) par rapport la fonction f . La mthode des moindres carrs est celle qui choisit f de sorte que la somme des carrs de ces dviations soit minimale.

5.1. Fitting par une relation afne


On considre un ensemble de points exprimentaux (x i , y i ) i =0 et on suppose que les deux grandeurs x et y sont lies par une relation afne, cest--dire de la forme y = mx + q pour certaines valeurs de m et q , au moins approximativement (autrement dit, lorsquon afche ces points dans un plan cartsien, les points ne sont pas exactement aligns mais cela semble tre d des erreurs de mesure). On souhaite alors trouver les constantes m et q pour que la droite dquation y = mx + q sajuste le mieux possible aux points observs. Soit d i = y i (mx i + q ) lcart vertical du point (x i , y i ) par rapport la droite. La mthode des moindres carrs est celle qui choisit m et q de sorte que la somme des carrs de ces dviations soit minimale.
n

Pour cela, on doit minimiser la fonction E : R2 R+ dnie par E (m , q ) =


n i =1

d i2 =

n i =0

( y i mx i q )2 .
E m

Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrient E (m , q ) = 2 m
n

E q

= 0. Puisque

( y i (mx i + q ))x i ,
i =0

E (m , q ) = 2 q

( y i (mx i + q )) ,
i =0

123

5. Meilleur approximation au sens des moindres carrs.

Jeudi 31 janvier 2013

alors
E m (m , q ) = 0 E q (m , q ) = 0

n i =0 ( y i n i =0 ( y i

mx i q )x i = 0 mx i q ) = 0 m= q =
n n i =0 y i (n + 1) i =0 (x i y i ) 2 n n 2 i =0 x i (n + 1) i =0 x i n n n n 2 x x y y i =0 i i =0 i i i =0 i i =0 x i 2 n n 2 i =0 x i (n + 1) i =0 x i n i =0 x i

n n n 2 i =0 y i x i m i =1 x i + q i =0 x i = 0 n n i =0 y i m i =1 x i + (n + 1)q = 0

Si on note x= alors m= La droite dquation y = mx + q sappelle droite de rgression de y par rapport x et passe par le point moyen (x , y ). x y xy ( x )2 x 2 , q= y x2 x x y x 2 ( x )2 . 1 n xi , n + 1 i =0 x2 = 1 n 2 x , n + 1 i =0 i xy = 1 n xi y i , n + 1 i =0 y= 1 n yi . n + 1 i =0

Remarque
Cette criture est susceptible de gnrer des erreurs de roundoff (les deux termes dans chaque numrateur ainsi quau dnominateur sont presque gaux). Il est alors mieux calculer m et q comme suit (ce qui est quivalent) : m=
n i =0 y i (x i n i =0 x i (x i

x) x)

q = y mx .

Remarque
2 2 Notons 2 x = x (x ) la variance des abscisseset c = x y x y le coefcient de corrlation. La droite de rgression de y par rapport x a alors quation c (x x ) y . y= x

Exemple
Si on a le points suivantes x y on trouve m = 1.07 et q = 0.21 : y 5 4 3 2 1 0 1 2 3 4 5 x 1 0.9 2 1.5 3 3.5 4 4.2 5 4.9

Remarque Fitting par une exponentielle


Soit a > 0 et considrons la fonction f (x ) = ae kx : elle est non-linaire mais si on prend son logarithme on obtient ln( 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 rgression n linaire sur lensemble (x i , ln( y i )) i =0 et obtenir ainsi k et ln(a ). Cependant ceci nest pas quivalent faire un tting n sur lensemble initial (x i , y i ) i =0 . En effet, si on note d i = y i ae kxi et D i = ln( y i ) (kx i + ln(a )), lorsquon fait une n rgression linaire sur lensemble (x i , ln( y i )) i =0 on minimise D i et non d i .

124

G. Faccanoni

Jeudi 31 janvier 2013

5. Meilleur approximation au sens des moindres carrs.

5.2. Fitting par un polynme


On considre un ensemble de points exprimentaux (x i , y i ) i =0 et on suppose que les deux grandeurs x et y sont j lies, au moins approximativement, par une relation polynomiale, cest--dire de la forme y = m j =0 a j x pour certaines valeurs de a j . On souhaite alors trouver les m + 1 constantes a j pour que le polynme dquation y =
j m j =0 a j x i m j j =0 a j x n

sajuste le

mieux possible aux points observs. Soit d i = y i lcart vertical du point (x i , y i ) 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+ dnie par E (a 0 , a 1 , . . . , a m ) =
n i =1

d i2

2 j a j xi

=
i =0

yi
j =0

.
E a j

Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrient
m n E j 0 a j xi xi yi (a 0 , a 1 , . . . , a m ) = 2 a 0 j =0 i =0 m n E j 1 a j xi xi yi (a 0 , a 1 , . . . , a m ) = 2 a 1 j =0 i =0

= 0 pour j = 0, . . . , m . Puisque

. . .
m n E j m a j xi xi yi (a 0 , a 1 , . . . , a m ) = 2 a m j =0 i =0

on obtient alors le systme linaire de (m + 1) quations en les (m + 1) inconnues a 0 , a 1 , . . . , a m suivant E a 0 ( a 0 , a 1 , . . . , a m ) = 0 E (a 0 , a 1 , . . . , a m ) = 0 a 1 . . . E a m ( a 0 , a 1 , . . . , a m ) = 0 n n n m a 0 (n + 1) + a 1 i =0 x i + + a m i =0 x i = i =0 y i a 0 n x i + a 1 n x 2 + + a m n x m +1 = n y i x i i =0 i =0 i i =0 i i =0 . . . n m m m +1 2m a0 n + + am n = n i =0 y i x i i =0 x i + a 1 i =0 x i i =0 x i n n m (n + 1) ... a0 i =0 x i i =0 x i n x n n 2 m +1 ... i =0 i a1 i =0 x i i =0 x i . = . . . . . . . . . . . n n n m m +1 2m am x x . . . x i =0 i i =0 i i =0 i

. . . n m y x i =0 i i

n i =0 y i n i =0 y i x i

Exemple Remarque
Quand 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


Exercice 5.1
partir des donnes x y 1.0 6.008 2.5 15.722

Exercices


1.8 9.549 2.2 11.098 3.7 28.828

3.5 27.130

4.0 33.772

1.1 5.257

calculer la droite et la parabole de rgression. Comparer ensuite les erreurs des chaque rgression.

C ORRECTION . 1. La droite de rgression a quation y = mx + q avec m= = o x


1 7 6 i =0 x i 6 i =0 y i (x i 7 i =0 x i (x i 1 7

) x ) x

8.420042377, = 13.567. Lerreur est


6 i =0

mx 3.37833528, q=y

= = 2.0125 et y

6 i =0 y i

( y i (mx i + q ))2 = 39.59960820.

2. La parabole de rgression a quation y = a 0 + a 1 x + a 2 x 2 avec a 0 , a 1 , a 2 solution du systme linaire 8


6 i =0 x i 6 2 i =0 x i 6 i =0 x i 6 2 i =0 x i 6 3 x i =0 i 6 2 a0 i =0 x i 6 3 x a1 = i =0 i 6 4 a2 x i =0 i

6 i =0 y i 6 i =0 y i x i 6 2 y x i =0 i i

i.e.

8 16.1 44.79

16.1 44.79 141.311

44.79 a0 108.536 141.311 a 1 = 322.7425 481.5123 a 2 1067.97905

et on obtient a 0 = 0.744611871628180655, a 1 = 2.14480468957977077, a 2 = 1.51926210146774388. Lerreur est


6 i =0 2 2 ( y i (a 0 + a 1 x i + a 2 x i )) = 5.715921703.

y 40 30 20 10

Exercice 5.2
Le tableau ci-dessous donne la conductivit thermique k du sodium pour diffrentes valeurs de la temprature. Calculer la parabole de meilleur approximation. T (C) k 79 1.00 190 0.932 357 0.839 524 0.759 690 0.693

126

G. Faccanoni

Jeudi 31 janvier 2013

5. Meilleur approximation au sens des moindres carrs.

C ORRECTION . 6
4 i =0 x i 4 2 i =0 x i

La parabole de rgression a quation y = a 0 + a 1 x + a 2 x 2 avec a 0 , a 1 , a 2 solution du systme linaire


4 i =0 x i 4 2 i =0 x i 4 3 i =0 x i 4 2 a0 i =0 x i 4 3 x a1 = i =0 i 4 4 a2 x i =0 i

4 i =0 y i 4 i =0 y i x i 4 2 y x i =0 i i

i.e.

8 16.1 44.79

16.1 44.79 141.311

44.79 a0 108.536 141.311 a 1 = 322.7425 481.5123 a 2 1067.97905

et on obtient a 0 = 0.744611871628180655, a 1 = 2.14480468957977077, a 2 = 1.51926210146774388. Lerreur est


6 i =0 2 2 ( y i (a 0 + a 1 x i + a 2 x i )) = 5.715921703.

Exercice 5.3
La viscosit cinmatique de leau varie en fonction de la temprature comme dans le tableau suivant : T (C) (103 m2 s1 ) 0 1.79 21.1 1.13 37.8 0.696 54.4 0.519 71.1 0.338 87.8 0.321 100 0.296

Comparer les valeurs (10 ), (30 ), (60 ), (90 ) approches par linterpolation de L AGRANGE et par le polynme de meilleur approximation de degr 3.

C ORRECTION .

On a la famille de points (Ti , i )

6 i =0 . Le polynme de

L AGRANGE scrit

(T ) =
i =0

6 j =0 j =i

T Tj T T
i j

et on obtient (T ) = tandis que le polynme de meilleur approximation de degr 3 scrit r (T ) = a 0 + a 1 T + a 2 T 2 + a 3 T 3 o a 0 , a 1 , a 2 , a 3 sont solution du systme linaire 6
6 i =0 Ti 6 2 i =0 Ti 6 3 i =0 Ti 6 i =0 Ti 6 2 i =0 Ti 6 3 i =0 Ti 6 4 i =0 Ti 6 2 i =0 Ti 6 3 i =0 Ti 6 4 i =0 Ti 6 5 i =0 Ti 6 3 a0 i =0 Ti 6 4 T i =0 i a 1 = 6 5 a2 i =0 Ti 6 6 a3 T i =0 i

6 i =0 i 6 i =0 i Ti 6 2 i =0 i Ti 6 3 i =0 i Ti

et on obtient

a 0 = 0.914534618675843625, a = 0.914534618675843625, 1 a 2 = 0.000620138768106035594, a 3 = 0.000620138768106035594.

On a alors (10 ) = r (10 ) = 1.004300740

(30 ) r (30 ) = 0.9114735501

(60 ) r (60 ) = 0.9114735501

(90 ) r (90 ) = 0.249145396

Exercice 5.4 Courbe de meilleure approximation


On considre un ensemble de points exprimentaux (x i , y i ) i =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( 2 x ) + b cos( 2 x ). On souhaite alors trouver les constantes a et b pour que la courbe dquation y = a sin( 2 x ) + b cos( 2 x ) sajuste le mieux possible aux points observs
n

G. Faccanoni

127

5. Meilleur approximation au sens des moindres carrs.

Jeudi 31 janvier 2013

(on parle de courbe de meilleure approximation). Soit d i = y i (a sin( 2 x i ) + b cos( 2 x i )) lcart vertical du point (x i , y i ) 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 dnie par E : R2 R+ (a , b ) E (a , b ) = crire le systme linaire qui permet de calculer a et b .
n i =0

d i2 .

C ORRECTION .

Pour minimiser E on cherche ses points stationnaires. Puisque E (a , b ) = 2 a E (a , b ) = 2 b


n

y i a sin
i =0 n

2 xi 2 xi

+ b cos + b cos

2 xi 2 xi

sin cos

2 xi 2 xi

, ,

y i a sin
i =0

on obtient
E a ( a , b ) = 0 E b (a , b ) = 0

n i =0 n i =0

y i a sin y i a sin
n i =0 n i =0

2 xi 2 xi

+ b cos + b cos

2 xi 2 xi

sin( 2 xi ) = 0

cos( 2 xi ) = 0

n sin( 2 x i + b cos 2 x i 2 x i ) = i =0 y i sin( 2 x i ) n cos( a sin 2 x i + b cos 2 x i 2 x i ) = i =0 y i cos( 2 x i ) n n 2 i =0 sin 2 x i i =0 sin 2 x i cos 2 x i n n 2 i =0 cos 2 x i i =0 sin 2 x i cos 2 x i

a sin

a = b

n i =0 y i sin n i =0 y i cos

2 xi 2 xi

Si on note
n

U=
i =0

sin2

2 xi

V=
i =0

sin

2 xi

cos

2 xi

W=
i =0

cos2

2 xi

P=
i =0

y i sin

2 xi

Q=
i =0

y i cos

2 xi

on doit rsoudre le systme linaire U V dont la solution est a= W P V Q , UW V 2 b= UQ V P . UW V 2 V W a P = b Q

Exercice 5.5
La mthode de rgression stend facilement des donnes qui dpendent de deux ou plusieurs variables. On considre n un ensemble de points exprimentaux (x i , y i , z i ) i =0 et on suppose que les trois grandeurs x , y et z sont lies, au moins approximativement, par une relation afne de la forme z = a + bx + c y . On souhaite alors trouver les constantes a , b et c pour que le plan dquation z = a + bx + c y sajuste le mieux possible aux points observs (on parle de plan de meilleure approximation). Soit d i = z i (a + bx i + c y i ) lcart vertical du point (x i , y i , z i ) par rapport au plan. La mthode de rgression (ou des moindres carrs) est celle qui choisit a , b et c de sorte que la somme des carrs de ces dviations soit minimale. Pour cela, on doit minimiser la fonction E dnie par

E : R3 R+ (a , b, c ) E (a , b, c ) =
n i =0

d i2 .

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.


5 i =0

2. Calculer lquation du plan de meilleure approximation pour lensemble (x i , y i , z i ) i xi yi zi 0 0 0


3 2

1 0 1 2

2 1 0
1 2

3 2 0 0

4 2 1
1 2

5 2 2 1

On utilisera la mthode du pivot de G AUSS pour la rsolution du systme linaire. C ORRECTION . 1. Pour minimiser E on cherche ses points stationnaires. Puisque E ( a , b , c ) = 2 a E ( a , b , c ) = 2 b E (a , b, c ) = 2 c on obtient E a ( a , b , c ) = 0 E b (a , b , c ) = 0 E c (a , b , c ) = 0
n i =0 (z i n i =0 (z i n i =0 (z i n

(z i (a + bx i + c y i )) ,
i =0 n

(z i (a + bx i + c y i ))x i ,
i =0 n

(z i (a + bx i + c y i )) y i ,
i =0

(a + bx i + c y i )) = 0 (a + bx i + c y i ))x i = 0 (a + bx i + c y i )) y i = 0

n n i =0 (a + bx i + c y i ) = i =0 z i n n 2 i =0 (ax i + bx i + c y i x i ) = i =0 z i x i n n 2 i =0 (a y i + bx i y i + c y i ) = i =0 z i y i n n (n + 1) a i =0 x i i =0 y i n n 2 b = n xi i =0 i =0 x i i =0 x i y i n n n 2 y x y y c i i i i =0 i =0 i =0 i

n i =0 z i n i =0 z i x i . n z y i i i =0

2. Dans notre cas,


n n n

xi = 7
i =0 n n i =0

yi = 4
i =0 n

zi = y i zi =
i =0 n i =0

11 2 9 2

xi y i = 6
i =0

7 xi zi = 2 i =0
n i =0 2 xi = 13

n +1 = 6 donc on a le systme linaire 6 7 4 quon peut rsoudre par la mthode de G AUSS 6 7 4 7 13 6 4 6 6


11

y i2 = 6

7 13 6

11 4 a /2 6 b = 7/2 9 6 c /2

L 2 L 2 7 6 L1 /2 6 L 3 L 3 2 L 1 3 7 /2 0 9 /2 0

7 29 /6 4 /3

4 4 /3 10 /3

/2 6 8 L 3 L 3 29 L2 35/12 0 5 /6 0
11

7 29 /6 0

4 4 /3 86 /29

/2 35/12 95 /58
11

dont la solution est 123 1.430232557 a /86 b = 65/86 0.7558139503 . 95 /172 0.5523255766 c

G. Faccanoni

129

6. Systmes linaires
Rsoudre lensemble dquations linaires Ax = b

Dnition Dnition : systme linaire


Soit n , p , 1 des entiers. Un SYSTME LINAIRE n p est un ensemble de n quations linaires p inconnues de la forme a x 11 1 . . . an1 x1 + + ... ... + + a 1p x p . . . a np x p = = b1 , . . . bn .

(S )

Les COEFFICIENTS a i j et les SECONDES MEMBRES b i sont des lments donns de R. Les INCONNUES x 1 , x 2 , . . . , x p sont chercher dans R. Le SYSTME HOMOGNE associ (S ) est le systme obtenu en remplaant les b i par 0. Une SOLUTION de (S ) est un p -uplet (x 1 , x 2 , . . . , x p ) qui vrie simultanment les n quations de (S ). Rsoudre (S ) signie 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 matricielle
Si on note x1 . x= . . xp b1 . b= . . bn a 11 . A= . . an1 ... ... a 1p . . . a np

le systme (S ) est quivalent lcriture matricielle Ax = b. Dans ce chapitre, nous ne traiterons que des systmes linaires carrs dordre n coefcients rels, autrement dit A = (a i , j ) Rn n et b = (b i ) Rn . Dans ce cas, on est assur de lexistence et de lunicit de la solution si une des conditions quivalentes suivantes est remplie : 1. A est inversible (i.e. det(A) = 0) ; 2. le systme homogne Ax = 0 admet seulement la solution nulle. La solution du systme peut alors tre calcule par la formule de C RAMER. Cependant cette formule est dune utilit pratique limite cause du calcul des dterminants qui est trs couteux. Pour cette raison, des mthodes numriques alternatives aux formules de C RAMER ont t dveloppes. Elles sont dites directes si elles fournissent la solution du systme en un nombre ni dtapes, itratives si elles ncessitent (thoriquement) un nombre inni dtapes. Notons ds prsent que le choix entre une mthode directe et une mthode itrative pour la rsolution dun systme dpend non seulement de lefcacit thorique des algorithmes, mais aussi du type de matrice, des capacits de stockage en mmoire et enn de larchitecture de lordinateur.

6.1. Systmes mal conditionns


Considrons le systme de deux quations deux inconnues suivant : 3.218613x 1 + 6.327917x 2 = 10.546530, 3.141592x 1 + 4.712390x 2 = 7.853982. Ce systme et non singulier et sa solution est donne par x 1 = x 2 = 1. Considrons maintenant un systme dquations voisin (le carr indique un changement de dcimale) : 3.21861 1 x 1 + 6.327917x 2 = 10.546530, 3.14159 4 x 1 + 4.712390x 2 = 7.85398 0 .

131

6. Systmes linaires

Jeudi 31 janvier 2013

Ce systme et non singulier et sa solution est donne par x 1 = 5, x 2 = 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 si lordinateur calcule avec trop peu de chiffres signicatifs. Dans lexemple prcdent nous observons que, si lordinateur ne retient que 6 chiffres signicatifs, il compltement inespr dobtenir une solution raisonnablement proche de la solution.

Dnition Conditionnement dune matrice


Le conditionnement dune matrice A Rn n non singulire est dni par K (A) = A A1 ( 1),

o est une norme matricielle subordonne. En gnral, K (A) dpend du choix de la norme ; ceci est signal en introduisant un indice dans la notation. Par exemple, on a les deux normes matricielles suivantes : A
n 1

= max

j =1,...,n i =1

| a i j |,

= max

i =1,...,n j =1

| a i j |.

Remarque Cas particulier

Si A est symtrique et dnie positive a , K 2 (A) = A


2

A1

max min

o max (resp. min ) est la plus grande (resp. petite) valeur propre de A.
a. A Rn n est symtrique si a i j = a j i pour tout i , j = 1, . . . , n , dnie positive si pour tout vecteurs x Rn avec x = 0, xT Ax > 0.

Considrons un systme non singulier Ax = b. Si b est une perturbation de b et si on rsout Ay = b + b, on obtient par linarit y = x + x avec Ax = b. La question est de savoir sil est possible de majorer lerreur relative x / x sur la solution du systme en fonction de lerreur relative b / b commise sur le second membre. Il est possible de dmontrer que b x K (A) x b o K (A) est le nombre de conditionnement de la matrice A. On voit alors que plus le conditionnement de la matrice est grand, plus la solution du systme linaire est sensible aux perturbations des donnes. Cependant, le fait quun systme linaire soit bien conditionn nimplique pas ncessairement que sa solution soit calcule avec prcision. Il faut en plus utiliser des algorithmes stables. Inversement, le fait davoir une matrice avec un grand conditionnement nempche pas ncessairement 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 signicatifs en valeur dcimale, on ne pourra pas garantir priori plus de E (p log10 (K (A))) chiffre signicatifs sur la solution. Si on applique cette rgle au systme linaire de lexemple, il est facile de vrier que K (A) 107 , par consquent nous pouvons perdre jusqu 7 chiffres signicatifs lors de sa rsolution. Il faut donc un ordinateur calculant avec 10 chiffres signicatifs pour tre sr dobtenir les 3 premiers chiffres de la solution.

Exemple
Un exemple bien connu de matrice mal conditionne est la matrice de H ILBERT dordre n dnie par a i j = 1/(i + j 1) pour 1 i , j n .

6.2. Mthode (directe) dlimination de Gauss et factorisation LU


Dnition Matrices et systmes triangulaires
On dit quune matrice carre A = (a i j )1i , j n est TRIANGULAIRE SUPRIEURE (respectivement triangulaire INFRIEURE) si i > j = a i j = 0 (resp. si i < j = a i 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 systme triangulaire suprieur (resp. triangulaire infrieur). Pour rsoudre le systme triangulaire Ax = b, b1 et on dduit les inconnues x 2 , x 3 , . . . x n grce la relation si A est une matrice triangulaire infrieure, on a x 1 = a 11 xi =
1 ai i

bi

i 1 j =1

ai j x j ;
bn a nn

si A est une matrice triangulaire suprieure on a x n = xi =


1 ai i n

et on dduit les inconnues x n 1 , x n 2 , . . . x 1 grce la relation

bi

j =i +1

ai j x j .

Proprit
Le 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 mme solution) de la forme Ux = y, o U est une matrice triangulaire suprieure et y est un second membre convenablement modi. Enn on rsout le systme triangulaire Ux = y.

Dnition Mthode du pivot de Gauss


1 j p

Soit A = (a i j ) 1i n la matrice des coefcients du systme Ax = b. En permutant ventuellement deux lignes du systme, on peut supposer a i i = 0 (appel pivot de ltape i ). tape j : pour i > k , les transformations Li Li

ai k Lk a kk

liminent linconnue x k dans les lignes L i . En ritrant le procd pour i de 1 n , on aboutit un systme triangulaire suprieur.

Exemple
Soit le systme linaire
x 1 +2x 2 +3x 3 +4x 4 = 1, 2x 1 +3x 2 +4x 3 +x 4 = 2, 3x +4x 2 +x 3 +2x 4 = 3, 1 4x 1 +x 2 +2x 3 +3x 4 = 4.

1. Rsolution par la mthode du pivot de Gauss :


2 L 2 2L 1 x 1 +2x 2 +3x 3 +4x 4 = 1 L x 1 +2x 2 +3x 3 +4x 4 = 1 L 3 L 3 3L 1 2x 1 +3x 2 +4x 3 +x 4 = 2 L 4 L 4 4L 1 x 2 2x 3 7x 4 = 0 3 x + 4 x + x + 2 x = 3 2x 2 8x 3 10x 4 = 0 2 3 4 1 4x 1 +x 2 +2x 3 +3x 4 = 4 7x 2 10x 3 13x 4 = 0 x +2x 2 +3x 3 +4x 4 = 1 x 1 +2x 2 +3x 3 +4x 4 = 1 L 3 L 3 2L 2 1 x 2 2x 3 7x 4 = 0 L 4 L 4 +L 3 x 2 2x 3 7x 4 = 0 L 4 L 4 7L 2 4 x + 4 x = 0 4x 3 +4x 4 = 0 3 4 4x 3 +36x 4 = 0 40x 4 = 0

donc x 4 = 0, x 3 = 0, x 2 = 0 et x 1 = 1. 2. Rsolution par la mthode du pivot de Gauss en criture matricielle : 1 2 [ A| b ] = 3 4

2 3 4 1

3 4 1 2

4 1 2 3

L 2 L 2 2L 1 1 L 3 L 3 3L 1 2 L 4 L 4 4L 1 3 4

3 4 1 2 7 0 8 10 0 10 13 0 1 2 3 L 3 L 3 2L 2 0 1 2 L 4 L 4 7L 2 0 0 4 0 0 4

1 0 0 0

2 1 2 7

4 7 4 36

1 0 L 4 L 4 +L 3 0 0

1 0 0 0

2 1 0 0

3 2 4 0

4 7 4 40

1 0 0 0

donc x 4 = 0, x 3 = 0, x 2 = 0 et x 1 = 1.

Si on a plusieurs systmes dont seul le second membre change, il peut tre utile de factoriser une fois pour toute la matrice A et rsoudre ensuite des systmes triangulaires.

G. Faccanoni

133

6. Systmes linaires

Jeudi 31 janvier 2013

Algorithme de factorisation LU sans pivot

Soit le systme linaire Ax = b. 1. On factorise la matrice A Rn n sous la forme dun produit de deux matrices A = LU. Les termes non nuls de U et les termes non nuls en-dessous de la diagonale principale de L sont mmoriss encore dans la matrice A et sont ainsi calcules : for k = 1 to n 1 do for i = k + 1 to n do ai k ai k a kk for j = k + 1 to n do ai j ai j ai k ak j end for end 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 sont donn par i j = a i j pour i = 1, . . . , n et j = 1, . . . , i 1 et i i = 1 pour tout i = 1, . . . , n , donc lalgorithme scrit y 1 b1 for i = 2 to n do si 0 for j = 1 to i 1 do si si + ai j x j end for y i bi si end for 2.2. le systme triangulaire suprieure Ux = y : les lments non nuls de la matrice triangulaire suprieure U sont donn par u i j = a i j pour i = 1, . . . , n et j = i , . . . , n , donc lalgorithme scrit yn xn a nn for i = n 1 to 1 by 1 do si 0 for j = 1 to i 1 do si si + ai j y j end for y i si xi ai i end for

Attention

Pour une matrice quelconque A Rn n , la factorisation LU existe et est unique si et seulement si les sous-matrices principales Ai de A dordre i = 1, . . . , n 1 (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, sont non nuls).

On peut identier des classes de matrices particulires pour lesquelles les hypothses de cette proposition sont satisfaites : Si la matrice A Rn n est symtrique et dnie positive ou si est diagonale dominante a alors la factorisation LU existe et est unique.
a. A Rn n est symtrique si a i j = a j i pour tout i , j = 1, . . . , n , dnie positive si pour tout vecteurs x Rn avec x = 0, xT Ax > 0, diagonale dominante par lignes si |a i i | n |a |, pour i = 1, . . . , n ( diagonale dominante stricte par lignes si lingalit est stricte), j =1 i j
j =i

Proposition

diagonale dominante par colonnes si |a i i |

n |a |, pour i = 1, . . . , n ( diagonale dominante stricte par colonnes si lingalit est stricte), j =1 j i j =i

Une technique qui permet deffectuer la factorisation LU pour toute matrice A inversible, mme quand les hypothses de cette proposition ne sont pas vries, est la mthode du pivot par ligne : il suft deffectuer une permutation convenable des lignes de la matrice originale A chaque tape k o un terme diagonal a kk sannule.

134

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

Dnition Algorithme de Gauss avec pivot


(k ) Dans la mthode dlimination de Gauss les pivot a kk doivent tre diffrents de zro. Si la matrice est inversible mais un pivot est zro (ou numriquement proche de zro), on peut permuter deux lignes avant de poursuivre la factorisation. Lalgorithme modi scrit alors for k = 1 to n 1 do for i = k + 1 to n do (k ) (k ) tel que |a r | et changer la ligne k avec la ligne r Chercher r | = maxr =k ,...,n |a r k k (k ) a kk for j = k + 1 to n do k ) (k ) (k ) (k +1) a ( ai ai j j ik k j end for end for end for Une fois calcules les matrices L et U et la matrice des permutations P (i.e. la matrice telle que PA = LU), rsoudre le systme linaire consiste simplement rsoudre successivement le systme triangulaire infrieur Ly = Pb puis le systme triangulaire suprieure Ux = y. ik

(k ) ai k

Proprit Dterminant
La factorisation LU permet de calculer le dterminant de A en O (n 3 ) car det(A) = det(L) det(U) =
n u . k =1 kk

Proprit Inverse dune matrice

Le calcul explicite de linverse dune matrice peut tre effectu en utilisant la factorisation LU comme suit. En notant X linverse dune matrice rgulire A Rn n , 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 triangulaires 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.

Exemple
Soit les systmes linaires
1 2 3 4

2 3 4 1

3 4 1 2

4 x1 1 1 x 2 = 2 2 x 3 3 3 x4 4

et

1 2 3 4

2 3 4 1

3 4 1 2

10 4 x1 1 x 2 = 10 . 2 x 3 10

x4

10

1. Rsoudre les systmes linaires par la mthode du pivot de Gauss. 2. Factoriser la matrice A (sans utiliser la technique du pivot) et rsoudre les systmes linaires. 3. Calculer le dterminant de A. 4. Calculer A1 . 1. Rsolution par la mthode du pivot de Gauss du premier systme 1 2 [ A| b ] = 3 4

2 3 4 1

3 4 1 2

4 1 2 3

L 2 L 2 2L 1 1 L 3 L 3 3L 1 2 L 4 L 4 4L 1 3 4

1 0 0 0 1 0 0

2 1 2 7 2 1 0 0

3 2 8 10 3 2 4 0

4 7 10 13 4 7 4 40

L 4 L 4 +L 3 0

1 0 0 0

1 L 3 L 3 2L 2 0 L 4 L 4 7L 2 0 0

1 0 0 0

2 1 0 0

3 2 4 4

4 7 4 36

1 0 0 0

donc x 4 = 0, x 3 = 0, x 2 = 0, x 1 = 1.

G. Faccanoni

135

6. Systmes linaires
Rsolution par la mthode du pivot de Gauss du second systme 1 2 (A|b) = 3 4

Jeudi 31 janvier 2013

2 3 4 1

3 4 1 2

4 1 2 3

L 2 L 2 2L 1 10 L 3 L 3 3L 1 10 L 4 L 4 4L 1 10 10

1 0 0 0 1 0 0

2 1 2 7 2 1 0 0

3 2 8 10 3 2 4 0

4 7 10 13 4 7 4 40

L 4 L 4 +L 3 0

10 L 3 L 3 2L 2 10 L 4 L 4 7L 2 20 30 10 10 0 40

1 0 0 0

2 1 0 0

3 2 4 4

4 7 4 36

10 10 0 40

donc
x 1 + 2x 2 + 3x 3 + 4x 4 = 10 x 2x 7x = 10 2 3 4 4 x + 4 x = 0 3 4 40x 4 = 40

x 4 = 1,

x 3 = 1,

x 2 = 1,

x 1 = 1.

2. Factorisation de la matrice A :
1 2 3 4

2 3 4 1

3 4 1 2

2 L 2 2L 1 1 4 L L 3 L 3 3L 1 2 1 L 4 L 4 4L 1 3 2

2 1 2 7

3 2 8 10

4 L 3 L 3 2L 2 7 L 4 L 4 7L 2 10

13

1 2 3 4

2 1 2 7

3 2 4 4

1 4 2 7 L 4 L 4 +L 3 3 4

36

2 1 2 7

3 2 4 1

4 7 4

40

donc
1 2 L= 3 4

0 1 2 7

0 0 1 1

0 0 0

1 0 U= 0 0

2 1 0 0

3 2 4 0

4 7 4

40

Pour rsoudre le premier systme linaire on rsout les systmes triangulaires Ly = b


1 2 3 4

0 1 2 7

0 0 1 1

1 0 y1 0 y 2 = 2 0 y 3 3 4 1 y4

y 1 = 1,

y 2 = 0,

y 3 = 0,

y4 = 0

et Ux = y
1 0 0 0

2 1 0 0

3 2 4 0

4 x1 1 x 2 0 7 = 4 x 3 0 40 x 4 0

x 4 = 0,

x 3 = 0,

x 2 = 0,

x 1 = 1.

Pour rsoudre le second systme linaire on rsout les systmes triangulaires Ly = b


1 2 3 4

0 1 2 7

0 0 1 1

10 0 y1 0 y 2 = 10 0 y 3 10

y 1 = 10,

y 2 = 10,

y 3 = 0,

y 4 = 40

y4

10

et Ux = y
1 0 0 0

2 1 0 0

3 2 4 0

x1 10 4 7 x 2 = 10 4 x 3 0 40 x 4 40

x 4 = 1,

x 3 = 1,

x 2 = 1,

x 1 = 1.

3. Le dterminant de A est u 11 u 22 u 33 u 44 = 1 (1) (4) 40 = 160.

136

G. Faccanoni

Jeudi 31 janvier 2013


4. Pour calculer A1 on rsout les quatre systmes linaires
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

6. Systmes linaires

2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1

3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2

4 x1 1 1 2 1 x 2 0 = i.e. 2 x 3 0 3

3 x4 0 4 4 x1 0 1 1 x 2 = 1 i.e. 2 3 2 x 3 0 3 x4 0 4 1 0 4 x1 1 x 2 = 0 i.e. 2 3 2 x 3 1 4 0 3 x4 4 x1 0 1 1 x 2 = 0 i.e. 2 3 2 x 3 0 3 x4 1 4

0 1 2 7 0 1 2 7 0 1 2 7 0 1 2 7

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1

0 y1 1 1 1 0 0 y 2 0 2 = = puis 0 y 3 0 1 0

1 y4 0 11 0 0 y1 0 0 1 0 y 2 = 1 = 1 puis 0 2 0 0 y 3 0 1 y4 0 0 0 y1 0 y 2 = 0 = 0 y 3 1 9 0 0 1 0 puis 0 1 0 1 y4 1 0 0 0 y1 0 0 1 0 y 2 = 0 = 0 puis 0 0 0 0 y 3 0 1 y4 1 1 0 /40 /40 9 /40 1 /40


1 11 11

2 1 0 0 2 1 0 0 2 1 0 0 2 1 0 0 1 11 9 1

3 2 4 0 3 2 4 0 3 2 4 0 3 2 4 0
11 9 . 1

9 /40 4 x1 1 1/40 7 x 2 2 = = 1 /40 4 x 3 1


11 /40 40 x 4 11 1 /40 4 x1 0 1 7 x 2 = 1 = /40 11/40 4 x 3 2 9 /40 40 x 4 9 1 4 x1 0 /40 11 7 x 2 = 0 = /40 9/40 4 x 3 1 1 /40 40 x 4 1 11 /40 4 x1 0 9 7 x 2 = 0 = /40 1/40 4 x 3 0

40

x4

/40

et nalement
9 /40 1 1 /40 A = 1 /40 11 /40

/40 /40 11 /40 9 /40


1

9 /40 1 1 /40 = 1 /40 40 11 1 /40 11

1 1 11 9

6.3. Mthodes itratives


Une mthode itrative pour le calcul de la solution dun systme linaire Ax = b avec A Rn n est une mthode qui (k ) (k ) (k ) T construit une suite de vecteurs x(k ) = (x 1 , x2 , . . . , xn ) Rn convergent vers le vecteur solution exacte x = (x 1 , x 2 , . . . , x n )T (0) (0) (0) T (0) pour tout vecteur initiale x = (x 1 , x 2 , . . . , x n ) Rn lorsque k tend vers +. Dans ces notes on ne verra que deux mthodes itratives : la mthode de J ACOBI, la mthode de G AUSS -S EIDEL.

Dnition Mthode de J ACOBI


k +1 0 0 0 du vecteur xk +1 partir des ) un vecteur donn. La mthode de J ACOBI dnit la composante x i Soit x0 = (x 1 , x2 , . . . , xn k k composantes x j du vecteur x pour j = i de la manire suivante : n

bi
k +1 xi =

j =1 j =i

ai j x k j , i = 1, . . . , n x(k +1) =
(k +1) x1 (k +1) x2

ai i

x(k ) =

(k ) x1 (k ) x2

. . .
(k ) xi 1 (k ) xi (k ) xi +1

. . .
(k +1) xi 1 (k +1) xi (k +1) xi +1

. . .
(k ) xn

. . .
(k +1) xn

Proposition

Si la matrice A est diagonale dominante stricte, la mthode de J ACOBI converge.

G. Faccanoni

137

6. Systmes linaires

Jeudi 31 janvier 2013

La mthode de G AUSS -S IDEL est une amlioration de la mthode de J ACOBI dans laquelle les valeurs calcules sont utilises au fur et mesure du calcul et non lissue dune itration comme dans la mthode de J ACOBI.

Dnition Mthode de G AUSS -S IDEL


0 0 0 k +1 Soit x0 = (x 1 , x2 , . . . , xn ) un vecteur donn. La mthode de G AUSS -S IDEL dnit la composante x i du vecteur xk +1 k +1 k +1 k k partir des composantes x j du vecteur x pour j < i et des composantes x j du vecteur x pour j i de la manire suivante :

bi
k +1 xi

i 1

j =1

+1 ai j x k j

j =i +1

ai j x k j , i = 1, . . . , n (k +1) x =
(k +1) x1 (k +1) x2

ai i
(k ) x1 (k ) x2

(k ) x =

. . .
(k ) xi 1 (k ) xi (k ) xi +1

. . .
(k +1) xi 1 (k +1) xi (k +1) xi +1

. . .
(k ) xn

. . .
(k +1) xn

Si la matrice A est diagonale dominante stricte ou si elle est symtrique et dnie positive, la mthode de G AUSS -S EIDEL converge.

Proposition

Ces algorithmes tentent de rsoudre le systme dquations linaires Ax = b dinconnue x. La matrice A, de taille n n , doit tre inversible et le second membre b doit tre de longueur n . Les itrations sarrtent quand le rapport entre la norme du k-me residu est infrieure ou gale TOLL, le nombre ditrations effectues est alors renvoy dans iter. MaxITER est le nombre maximum ditrations. J ACOBI Require: A = (a i j )1i , j n , b = (b i )1i n , x, MaxITER, TOLL iter 0 r b Ax while (r >TOLL & iter<MaxITER) do iter iter +1 yx for i from 1 to n do s 0 for j from 1 to i 1 do s s + ai j y j end for for j from i + 1 to n do s s + ai j y j end for x i (b i s )/a i i end for r b Ax end while G AUSS -S EIDEL Require: A = (a i j )1i , j n , b = (b i )1i n , x, MaxITER, TOLL iter 0 r b Ax while (r >TOLL & iter<MaxITER) do iter iter +1 yx for i from 1 to n do s 0 for j from 1 to i 1 do s s + ai j x j end for for j from i + 1 to n do s s + ai j y j end for x i (b i s )/a i i end for r b Ax end while

Algorithmes

Il ny a pas de rsultat gnral tablissant que la mthode de G AUSS -S EIDEL converge toujours plus vite que celle de J ACOBI. On peut cependant lafrmer dans certains cas, comme le montre la proposition suivante

Proposition

Soit A une matrice tridiagonale de taille n n inversible dont les coefcients diagonaux sont tous non nuls. Alors les mthodes de J ACOBI et de G AUSS -S EIDEL sont soit toutes les deux convergentes soit toutes les deux divergentes. En cas

138

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

de convergence, la mthode de G AUSS -S EIDEL est plus rapide que celle de J ACOBI.

Exemple
Considrons le systme linaire

4 1 2 mis sous la forme

2 2 1

4 1 x 0 y = 2 9 4 z

y z x = 1 2 4 , x y = 1+ 2 , y x z=9 4 2 4.

Soit x(0) = (0, 0, 0) le vecteur initial. En calculant les itres avec la mthode de J ACOBI on trouve 3 3 9 /2 /2 0 1 /4 1 2 4 1 2 0 1 2 4 1 1/16 1/8 4 1 = 1 , x(2) = 1 + 1 = 3/2 , x(3) = 1 + /16 = 1/32 , x(1) = 1 + 0 2 2 2 3 9 0 0 9 3 61 1 1 9 1/16 9 /2 /4 /2 /32 424 424 4 2 4 La suite x(k ) converge vers (0, 1, 2) la solution du systme. En calculant les itres avec la mthode de G AUSS -S EIDEL on trouve 3 11 0 /2 /8 1 0 4 1 2 3/32 1 24 3 61 (1) (2) 1 3/2 / 32 /64 , x = 1+ 2 = , x = 1+ 2 = 3 61 527 11 /2 9 1 /64 3/32 9 /256 / 8 4 2 4
4 2 4

x(4) =

1 61 /32 /32 5 1 2 4 /128 1 1 + 2/8 = 15/16 . 265 1/8 1/32 9 /128 4 2 4

3 61 /32 /64 9 4 1 2 /1024 9 2047 (3) / 1024 /2048 , x = 1+ 2 = 9 2047 16349 /1024 /2048 9 /8192 4 2 4

La suite x(k ) converge vers (0, 1, 2) la solution du systme.

G. Faccanoni

139

6. Systmes linaires

Jeudi 31 janvier 2013


Exercice 6.1
Soit le systme linaire 6 2 1

Exercices
1 4 2



1 x1 12 0 x 2 = 0 . 6 x3 6

1. Approcher la solution avec la mthode de J ACOBI avec 3 itrations partir de x(0) = (2, 2, 2). 2. Approcher la solution avec la mthode de G AUSS -S EIDEL avec 3 itrations partir de x(0) = (2, 2, 2). 3. Rsoudre les systmes linaires par la mthode dlimination de Gauss. 4. Factoriser la matrice A (sans utiliser la technique du pivot) et rsoudre les systmes linaires. C ORRECTION . 1. Mthode de J ACOBI : 2 (0) x = 2 , 2 ainsi 1.926 x 1.083 . 0.861 2. Mthode de G AUSS -S EIDEL : 12(12+12) 4 /3 2 4 0(2 6 + 0 2) (0) (1) 2 3 2 x = , x = = 3 , 4 4 2 6(1 3 +2 ) 2 1 3
6

4 12(12+12) /3 0(26 (1) 2+02) 1 , = x = 4 6(12+22) 0 6

13 /6 0(2 4 +00) (2) 3 = 2/3 , x = 4 10 6(1 4 /9 3 +2(1))


6 6

12(1(1)+10)

12(1 2 +1 10 )
3 9

(3)

6 10 0(2 13 6 +0 9 ) 4 2 6(1 13 6 +2 3 ) 6

52 /27 = 13/12 31 /36

2 12(1 35 3 +11) /18 6 35 (2) 0(2 18 +01) 35 /36 , x = = 4 35 35 1 6(1 18 +2 36 ) 6

12(1 35 +1 35 )
18 36

(3)

431 /216 = 431/432 4 431 431 1 6(1 216 +2 432 )


0(2 431 216 +01) 6 6

ainsi 1.995 x 0.995 . 1 3. Mthode dlimination de Gauss : 6 2 A | b = ( ) 1 donc 6x 1 + x 2 + x 3 = 12, 11 1 3 x 2 3 x 3 = 4 6x 3 = 6 4. Factorisation de la matrice A : 6 2 1 donc 1
1 L = 3 1 6

1 4 2

1 0 6

2 L 2 L 2 6 L1 6 12 1 L 3 L 3 6 L 1 0 0 6 0

1
11 3 11 6

1 1 3
35 6

11 6 L 12 6 L 3 L 3 11 2 3 4 0 0 4

1
11 3

1 1 3 6

12 4 6

x 3 = 1,

x 2 = 1,

x 1 = 2.

1 4 2

L 2 L 2 2 6 L1 6 1 L 3 L 3 1 L 1 6 2 0 6 1 6 6

1
11 3 11 6

11 6 6 L 1 L 3 L 3 11 2 2 3 1 3 6
35 6 1 6

1
11 3
11 6 11 3

1 1 3 6

0 1
1 2

0 0 1

6 U = 0 0

1
11 3

1 1 3 6

Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly = b 1 0 0 y1 12 1 y2 = 0 1 0 = y 1 = 12, 3 1 1 y 6 1 3 6 2

y 2 = 4,

y3 = 6

140

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

et Ux = y 6 0 0 1
11 3

1 x1 1 x 2 = 4 1 3 x3 6 6

x 3 = 1,

x 2 = 1,

x 1 = 2.

Exercice 6.2
Soit A une matrice, A Mn ,n (R). 1. Rappeler les conditions ncessaires et sufsantes pour lexistence dune factorisation LU de la matrice A et prciser les dnitions de L et U. 2. On suppose L et U construites (i.e. on dispose de tous les coefcients rsolution de Ax = b, avec b Mn ,1 (R) donn. 3. Soit la matrice A suivante : 3 1 1 1 3 1 1 1 . 3
i,j

et u i , j de L et U), crire lalgorithme de

Construire la main les matrices L et U de la factorisation LU. C ORRECTION . 1. Pour une matrice quelconque A 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 et colonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matrices principales, sont non nuls). On peut identier des classes de matrices particulires pour lesquelles les hypothses de cette proposition sont satisfaites. Mentionnons par exemple : les matrices diagonale strictement dominante, les matrices relles symtriques dnies positives. Une technique qui permet deffectuer la factorisation LU pour toute matrice A inversible, mme quand les hypothses de cette proposition ne sont pas vries, est la mthode du pivot par ligne : il suft deffectuer une permutation convenable des lignes de la matrice originale A chaque tape k o un terme diagonal a kk sannule. 2. Une fois calcules les matrices L et U, rsoudre le systme linaire Ax = b, avec b Mn ,1 (R) donn consiste simplement rsoudre successivement 2.1. le systme triangulaire infrieur Ly = b par lalgorithme
i 1

y 1 = b1 ,

y i = bi
j =1

i j yj,

i = 2, . . . , n

2.2. le systme triangulaire suprieure Ux = y par lalgorithme xn = 3. Factorisation : 3 1 1 Par consquent 1 L = 1/3 1/3 0 1 1/2 0 0 1 et 3 U = 0 0 1 8 /3 0 1 4 /3 . 2 1 3 1 yn , u nn xi =
n 1 yi ui j x j , ui i j =i +1

j = n 1, . . . , 1

1 L 2 L 2 3 L1 1 3 1 L 3 L 3 L 3 1 1 0 0 3

1 8 /3 4/3

1 L L / L 3 3 3 2 / 4/3 0 8 /3 0
4 3 8 3

1 8 /3 0

1 4/3 . 2

Exercice 6.3
Calculer, lorsquil est possible, la factorisation LU des matrices suivantes : 1 2 3 1 2 3 A = 2 4 5 , B = 7 8 9 . 7 8 9 2 4 5 Comment peut-on modier lalgorithme de factorisation pour pouvoir toujours aboutir une factorisation LU lorsque la matrice est inversible ?

G. Faccanoni

141

6. Systmes linaires

Jeudi 31 janvier 2013

C ORRECTION . Pour une matrice quelconque A Mn ,n (R), la factorisation LU (sans pivot) existe et est unique ssi les sousmatrices principales Ai de A dordre i = 1, . . . , n 1 (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, sont non nuls). Matrice A : comme det(A) = 0, la matrice A est bien inversible. Puisque det(A1 ) = a 11 = 1 = 0 mais det(A2 ) = a 11 a 22 a 12a 21 = 0, on ne peut pas factoriser A sans utiliser la technique du pivot. En effet, 1 A = 2 7 2 4 8
2 L 2 L 2 1 L1 1 3 7 L 3 L 3 1 L 1 5 0 0 9

2 0 6

3 1 12

6 La factorisation LU ne peut pas tre calcule car la prochaine tape il faudrait effectuer le changement L 3 L 3 0 L2. Matrice B :

1 A2 = 7 2 La factorisation LU de la matrice B est donc 1 L = 7 2

2 8 4

7 L 2 L 2 1 L1 1 3 L 3 L 3 2 1 L1 9 0 0 5

2 6 0

3 12 1

0 1 0

0 0 , 1

1 U = 0 0

2 6 0

3 12 . 1

Lorsquun pivot est nul, la mthode de G AUSS 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 des algorithmes qui changent les lments de faon avoir le pivot le plus grand possible ont t dvelopps. Les programmes optimiss intervertissent les lignes chaque tape de faon placer en pivot le terme de coefcient le plus lev : cest la mthode du pivot partiel. Pour la matrice A cela aurait donn 1 A = 2 7 2 4 8 3 1 L 2 L 3 5 7 9 2 2 8 4 L 2 L 2 7 1 L1 1 3 L 3 L 3 2 L 1 1 9 0 0 5 2 6 0 3 12 . 1

Bien videmment, il faut garder trace de cet change de lignes pour quil puisse tre rpercut sur le terme source et sur linconnue lors de la rsolution du systme linaire ; ceci est ralis en introduisant une nouvelle matrice P, dite matrice pivotale, telle que PA = LU : la rsolution du systme linaire Ax = b est donc ramen la rsolution des deux systmes triangulaires Ly = Pb et Ux = y. Dans notre exemple cela donne 1 P = 0 0 0 0 1 0 1 0

Exercice 6.4
Aprs avoir utilis la mthode dlimination de Gauss, une matrice symtrique A a t transforme en la matrice triangulaire suprieure 4 2 1 0 0 3 3/2 1 . U= 0 0 3 3/2 0 0 0 35/12 Calculer la matrice A.

142

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

C ORRECTION .

Comme A = LU, il suft de calculer L. En divisant chaque ligne de U par son terme diagonal on trouve 1 0 LT = 0 0 1/2 1 0 0 2 3 0 0 1/4 1/2 1 0 1 3/2 3 0 0 1/3 . 1/2 1 0 4 2 1 = 3/2 1 35/12 0 2 4 2 1 1 2 4 2 0 1 . 2 4

Alors 1 1/2 A = LU = 1/4 0 0 1 1/2 1/3 0 0 1 1/2 0 4 0 0 0 0 1 0

Exercice 6.5
Soit un paramtre rel et soient les matrices A , P et le vecteur b dnis par 2 A = 2 4 2 3 1 1 , 2 1 P = 0 0 0 0 1 0 1 , 0 0 b = 3/2 . 1

1. quelle condition sur , la matrice A est inversible ? 2. quelle condition sur , la matrice A admet-elle une dcomposition LU (sans pivot) ? 3. Soit = 1. Calculer, si elle existe, la dcomposition LU de la matrice M = PA . 4. Soit = 1. Rsoudre le systme linaire Ax = b en rsolvant le systme linaire Mx = Pb. C ORRECTION . 1. La matrice A est inversible si et seulement si det(A) = 0. Comme 2 4 1 det(A) = det 2 1 2 3 2 = (2 (2) 2) + (4 (1) 2) + (1 3) (2 (1) 3) (4 2) (1 (2) 2) = (8) + (8) + (3) (6) (8) (4) = 6 5,
6 . la matrice A est inversible si et seulement si = 5

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, . . . , n 1 (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 sousmatrices principales, sont non nuls). Pour la matrice A on a les sous-matrices principales suivantes : A1 = 2 , 2 A2 = 4 , 2 det(A1 ) = 2; det(A2 ) = 4(1 + ).

Par consquent, la matrice A admet une dcomposition LU (sans pivot) si et seulement si = 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 matrice A et on obtient la matrice 2 4 1 1 0 0 2 4 1 3 2 . PA1 = 0 0 1 1 2 1 = 2 0 1 0 2 3 2 1 2 1 La matrice M admet une dcomposition LU (sans pivot) et lon a 2 2 1 4 3 2 1 2 1 L 2 L 2 L 1 L 3 L 3 L 1 2 2 0 1 0 4 1 0 1 1 1 2

G. Faccanoni

143

6. Systmes linaires

Jeudi 31 janvier 2013

Par consquent, on obtient la dcomposition LU suivante de la matrice M : 1 L= 1 1 2 0 1 0 0 0 , 1 2 U = 0 0 4 1 0 1 1 . 1 2

4. Pour rsoudre le systme linaire Mx = Pb il suft de rsoudre les deux systmes triangulaires suivantes : Ly = Pb : y 1 = 0, Ux = y : x3 = 3 (2) = 3, 2 x 2 = (1 x 3 )/(1) = 4, x 1 = (0 x 2 4x 3 )/2 = 19 . 2 y 2 = 1 y 1 = 1, 3 1 3 y3 = + y1 = ; 2 2 2

Exercice 6.6
Considrons les deux matrices carres dordre n > 3 : 0 0 0 ... 0 0 0 0 . .. . .. 0 0 0 .. .. A= . . 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. Vrier 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 matrice A. 3. Exprimer le dterminant de la matrice A sous forme rcursive en fonction des coefcients de la matrice et de sa dimension n . 4. Sous quelles conditions sur et la matrice A est dnie positive ? Dans ce cas, exprimer le conditionnement de la matrice en fonction des coefcients et de la dimension n . C ORRECTION . 1. La factorisation LU de la matrice B ne peut pas tre calcule sans utiliser la technique du pivot car llment pivotale au deuxime pas est nul. Par exemple, si n = 4, on obtient : B(1) = 0 0 0 0 L 2 L 2 L 1 L 3 L 3 L 1 0 L L 4 L 4 0 1 B(2) = 0 0 0 0 0 0 0
2

2. La matrice A est une matrice en che : pour en calculer la factorisation LU il suft de transformer la dernire ligne, ce qui requiert le calcul de lunique multiplicateur m = / et lexcution de n 1 produits et sommes. Le cot globale 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 u i i = pour tout i < n et u nn = (n 1)2 /, on conclut que n = n (n 1)n 2 2 . 4. Les valeurs propres de la matrice A sont les racines du dterminant de la matrice A I. Suivant le mme raisonnement du point prcdant, ce dterminant scrit ( )n (n 1)( )n 2 2 dont les racines sont 1,2 = (n 1), 3 = = n = .

144

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

Par consquent, pour que la matrice A soit dnie positive il faut que les valeurs propres soient tous positifs, ce qui impose > 0, | | < . n 1 Dans ce cas, le conditionnement de la matrice en norme 2 est +
n 1 n 1

si 0, sinon.

K 2 (A) =

n 1 + n 1

Exercice 6.7
Donner une condition sufsante sur le coefcient pour avoir convergence des mthodes de J ACOBI et G AUSS -S EIDEL pour la rsolution dun systme linaire associ la matrice A = 0 1 0 0 1 0

C ORRECTION . Une condition sufsante pour la convergence des mthodes de J ACOBI et de G AUSS -S EIDEL est que A est diagonale strictement dominante. A vrie cette condition si et seulement si || > 1.

Exercice 6.8
Considrons le systme linaire Ax = b avec A = 0 0 0

avec , , et des paramtres rels. Donner des conditions sufsantes sur les coefcients pour avoir 1. convergence de la mthode de Jacobi 2. convergence de la mthode de Gauss-Seidel. C ORRECTION . 1. Une condition sufsante pour que la mthode de J ACOBI converge est que la matrice soit dominance diagonale stricte, ce qui quivaut imposer || > ||, || > ||, || > ||, cest--dire || > max ||, ||, || . 2. La condition prcdente est aussi sufsante pour la convergence de la mthode de Gauss-Seidel. Une autre condition sufsante pour la convergence de cette mthode est que la matrice soit symtrique dnie positive. Pour la symtrie il faut que = 0, = , on obtient ainsi la matrice A = 0 0 0 0 .

Elle est dnie positive si ses valeurs propres sont positifs. On a 1 = , donc il faut que > ||. 2 = , 3 = + ,

G. Faccanoni

145

6. Systmes linaires

Jeudi 31 janvier 2013

Exercice 6.9
crire les formules de la mthode dlimination de Gauss pour une matrice de la forme a 1,1 a 1,2 0 ... 0 . . . a 2,1 a 2,2 a 2,3 0 . . .. .. .. . . . . . . . . A= . .. .. . . . 0 . . . . a a
n 1,n 1 n 1,n

a n ,1

a n ,2

...

a n ,n 1

a n ,n

Quelle est la forme nale de la matrice U = A(n ) ? tant donn la forme particulire de la matrice A, indiquer le nombre minimal doprations ncessaire pour calculer U ainsi que celui pour la rsolution des systmes triangulaires naux.

C ORRECTION . Comme la matrice a une seule sur-diagonale non nulle, les formules de la mthode dlimination de Gauss deviennent
(k ) (k ) (k +1) + m i ,k a k , = ai ai ,j ,j ,j

i , j = k + 1, i = k + 1.

m i ,k =

(k ) ai ,k (k ) ak ,k

La cot est donc de lordre de n et la matrice U est bidiagonale suprieure.

Exercice 6.10
Soit R et considrons les matrices carres de dimension n 0 . . . . .. . . . 0 A= , B= . . . . . . . . . 1. Calculer et pour que B soit linverse de A. 2. Calculer le conditionnement K (A) en fonction de n et en calculer la limite pour n qui tend vers linni. C ORRECTION . 1. Par dnition, B est la matrice inverse de A si AB = BA = I. Comme + 0 ... .. . 0 AB = . . . + + (n 3) . . . + (n 3) il faut que + = 1 + (n 3) = 0 (n 2) = 1 ce qui donne = 2. On trouve immdiatement A

.. .

...

...

. . . .

, 0 (n 2)

0 . . .

n 3 , n 2

1 . n 2

= n || tandis que A1

1 n 2 max n , = . || n 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 || La matrice est donc mal conditionne pour n grand. 2 = 2n . ||

Exercice 6.11
On suppose que le nombre rel > 0 est assez petit pour que lordinateur arrondisse 1 + en 1 et 1 + (1/) en 1/ ( est plus petit que lerreur machine (relative), par exemple, = 230 en format 32 bits). Simuler la rsolution par lordinateur des deux systmes suivants : a + b = 1 2a + b = 0 et 2a + b = 0 a + 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.

C ORRECTION .

Premier systme :
2 Factorisation LU : 2 donc L= 1
2

1 1

a 1 = . b 0

1 L 2 L 2 2 L1 1 0

1 1 2

0 1

U=

1 1 2

Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly = b et Ux = y : 1


2

0 1

y1 1 = y2 0 1 a = 2 b

= 2 1 2

y 1 = 1,

2 y2 = ; 1+
2 1 2

1 1 2

b=

a=

Mais avec lordinateur, comme 1 + 1 et 1 + (1/) 1/, on obtient L= 1


2

0 1

U=

1 2

Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly = b et Ux = y : 1


2

0 1 1 2

y1 1 = y2 0 1 a = 2 b 2 1 1

= =

y 1 = 1,

2 y2 = ; a = 0.

b = 1,

Second systme :
a 0 = . b 1

Factorisation LU : 2 donc L= 1
2
L1 2 1 L 2 L 2 2 1 0

1 1 2

0 1

U=

2 0

1 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


2

0 1

y1 0 = y2 1 a 0 = b 1

= 2 1 2

y 1 = 0, 1+ , a=

y 2 = 1;
2 1 2

2 0

1 1 2

b=

Mais avec lordinateur, comme 1 + 1 et 1 + (1/) 1/, on obtient L= 1


2

0 1

U=

2 0

1 2

Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly = b et Ux = y : 1


2

0 1 1 2

y1 0 = y2 1 a 0 = b 1

= =

y 1 = 0, b= , 2

y 2 = 1; a= . 4

2 0

Exercice 6.12
Rappeler lalgorithme vu en cours pour calculer la dcomposition LU dune matrice A et la solution du systme Ax = b o le vecteur colonne b est donn. On appliquera ces algorithmes pour les cas suivants : 1 2 3 1 1 2 1 x1 1 3 x 2 = 1 4 x3 1 1 2 3 2 2 5 1 2 3 7 1 0 4 x1 1 x 2 1 1 = 5 x 3 1 3 x4 1 1 1 1 1 et 1 2 4 0 1 3 6 0 1 x1 1 x 2 1 4 = 8 x 3 1 0 x4 1

et

Donner, en fonction de n (nombre de lignes et de colonnes de A), une majoration du nombres doprations effectues par lordinateur pour calculer la dcomposition LU de A avec lalgorithme donn en cours. Donner aussi une estimation du nombres doprations effectues pour rsoudre le systme Ax = b quand la dcomposition LU est connue.

C ORRECTION .

Premier systme : 1 2 3 1 1 2 1 3 4 L 2 L 2 2 1 L1 1 1 3 L 3 L 3 L1 1 1 0 1 0 1 L= 2 3 0 1 5 1 1 5 0 0 1 1 1 7 1 1 5 L 3 L 3 L2 1 1 0 4 0 1 U = 0 0 1 1 0 1 1 12 1 1 0 1 1 12 1 1 1

donc

Il ne reste rsoudre que le systme triangulaire x 1 + x 2 + x 3 = 1 x 2 + x 3 = 1 12x 3 = 1 Deuxime systme : 1 2 3 2 2 5 1 2 3 7 1 0 4 1 5 3


L1 L 2 L 2 1 1 L 3 L 3 3 1 L1 2 L 4 L 4 1 L 1 1 1 1 5
2 L 4 L 4 9 L 2 2

= x 3 =

1 , 12

x2 =

11 , 12

1 x1 = . 6

1 0 0 0

2 9 5 2 2 9 0 0

3 1 8 6 3 1 77 9 56 9

4 7 7 5 4 7 28 9 31 9

1 1 2 1 1 56/9 L 4 L 4 77/9 L 2 1 13 9 7 9 1 0 0 0 2 9 0 0 3 1 77 9 0 4 7 28 9 13 11 1 1 13 9
3 11

1 0 0 0
L 3 L 3 9 L 2

148

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

donc 1 2 L= 3 2 0 1
5 9 2 9

0 0 1
56 77

0 0 0 1

1 0 U= 0 0

2 9 0 0

3 1 77 9 0

4 7 28 9 13 11

Il ne reste rsoudre que le systme triangulaire x 1 + 2x 2 + 3x 3 + 4x 4 = 1 9x + x 7x = 1 2 3 4 28 13 77 x x = 9 3 9 4 9 13 3 11 x 4 = 11 Troisime systme : 1 1 1 1 1 2 4 0 1 3 6 0 1 4 8 0 L L L 2 2 1 1 L 3 L 3 L 1 1 L L L 4 4 1 1 1 1 1 1 1 0 3 2 3 0 3 5 7 0 1 1 1 1 1 1 L 3 L 3 (1)L 2 1 0 3 L 4 L 4 2 3 L 2 0 0 7 0 0 5 3 1 1 L= 1 1 0 1 1


1 3

= x 4 =

3 , 13

x3 =

23 , 91

x2 =

29 , 91

x1 =

48 . 91

1 0 0 0 1 3 10 2 1 L 4 L 4 5/3 0 7 L2 0 0 1 3 0 0 1 2 7 0 1 3 10
8 21

1 0 0 0

1 3 0 0

1 2 7 0

1 3 10
8 21

1 0 0 0

donc 0 0 1
5 21

0 0 0 1

1 0 U= 0 0

Il ne reste rsoudre que le systme triangulaire x1 + x2 + x3 + x4 = 1 3x + 2x + 3x = 0 2 3 4 7 x + 10 x = 0 3 4 8 21 x 4 = 0

= x 4 = 0,

x 3 = 0,

x 2 = 0,

x 1 = 1.

Exercice 6.13
crire les mthodes itratives de Gauss, J ACOBI et G AUSS -S EIDEL pour les systmes suivants : 10a + b = 11 2a + 10b = 12 et 2a + 10b = 12 10a + b = 11.

Pour chacun de ces mthodes et systmes, on calculera le rayon spectral de la matrice associe la mthode. On illustrera les rsultats thoriques de convergence/non-convergence en calculant les 3 premiers itrs en prenant comme point de dpart le vecteur (a , b ) = (0, 0).

C ORRECTION .

Gauss

Premier systme : 10 2 Second systme : 2 10 10 1 12 11


L 2 L 2 10 2 L1

1 10

11 12

2 L 2 L 2 10 L1

10 0

1
49 5

11
49 5

10a + b = 11
49 5 b

49 5

a =1 b = 1.

2 0

10 49

12 49

2a + 10b = 12 49b = 49

a =1 b = 1.

G. Faccanoni

149

6. Systmes linaires

Jeudi 31 janvier 2013

Jacobi

Premier systme : 10a + b = 11 2a + 10b = 12 a= b=


11b 10 122a 10

La matrice tant diagonale dominante stricte, la mthode converge et on a 49 11 12 11 50 110 10 11 49 0 /10 10 10 = /50 , x(3) = 10 = x(0) = , x(1) = 12 , x(2) = 12 0 = 12 49 2 11 122 49 0 / 10 /50 10 50 10
10 10

501 502

/500 . /500

Second systme : 2a + 10b = 12 10a + b = 11 La mthode ne converge pas, en effet on a x(0) = 0 , 0 x(1) =
120 2

a=

1210b 2

b = 11 10a

11 0

6 , 11

x(2) =

121011 2

11 10 6

49 , 49
11b 10 122a 10

x(3) =

1210(49) 2

11 10 (49)

251 . 501

Gauss-Seidel

Premier systme : 10a + b = 11 2a + 10b = 12 a= b=

La matrice tant diagonale dominante stricte, la mthode converge et on a 49 2499 11 50 11 2500 110 11 501 0 /10 / 500 10 (0) (1) (2) (3) 10 10 = = x = , x = 122 11 = 49 , x = 12 , x = 122 25001 2499 2 501 10 0 /50 /2500 500 25000
10 10 10

25001 12499

/25000 . /125000

Second systme : 2a + 10b = 12 10a + b = 11 La mthode ne converge pas, en effet on a x(0) = 0 , 0 x(1) =
120 2

a=

1210b 2

b = 11 10a

11 10 6

6 , 49

x(2) =

1210(49) 2

11 10 251

251 , 2499

x(3) =

1210(2499) 2

11 10 (12501)

12501 . 124999

Exercice 6.14
Rsoudre les systmes linaires suivants : x 5 y 7z = 3 2x 13 y 18z = 3 3x 27 y 36z = 3 x 5 y 7z = 6 2x 13 y 18z = 0 3x 27 y 36z = 3 x 5 y 7z = 0 2x 13 y 18z = 3 3x 27 y 36z = 6.

et

et

C ORRECTION . 1 2 3

Le trois systmes scrivent sous forme matricielle 7 x 3 18 y = 3 36 z 3 et 1 2 3 5 13 27 7 x 6 18 y = 0 36 z 3 1 2 3 5 13 27 7 x 0 18 y = 3 36 z 6

5 13 27

et

On remarque que seul le terme source change. On calcul dabord la dcomposition LU de la matrice A : 1 5 7 L 2 L 2 2L 1 1 5 7 1 5 7 L 3 L 3 3L 1 L 3 L 3 4L 2 2 13 18 4 0 3 0 3 4 3 donc 1 L = 2 3 0 1 4 0 0 1 1 U = 0 0 5 3 0 7 4 1 27 36 0 12 15 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 a 1 2 3 1 0 0 5 3 0 0 1 4 0 y1 3 0 y 2 = 3 1 y3 3 7 x 1 3 4 x 2 = 3 1 x3 6

y 1 = 3,

y 2 = 3,

y 3 = 6;

x 3 = 6,

x 2 = 7,

x 1 = 10.

2. Pour le seconde systme on a 1 2 3 1 0 0 5 3 0 0 1 4 0 y1 6 0 y 2 = 0 1 y3 3 7 x 1 6 4 x 2 = 12 1 x3 27

y 1 = 6,

y 2 = 12,

y 3 = 27;

x 3 = 27,

x 2 = 32,

x 1 = 35.

3. Pour le dernier systme on a 1 2 3 1 0 0 5 3 0 0 1 4 0 y1 0 0 y 2 = 3 1 y3 6 7 x 1 6 4 x 2 = 12 1 x3 27

y 1 = 0,

y 2 = 3,

y 3 = 6;

x 3 = 6,

x 2 = 7,

x 1 = 7.

Exercice 6.15
Soit A une matrice, A Mn ,n (R). 1. Rappeler la mthode de J ACOBI pour la rsolution du systme Ax = b, avec b Mn ,1 (R) donn. 2. Soit la matrice A suivante : 4 1 1 1 3 1 1 1 . 4

La mthode de J ACOBI est-elle convergente pour cette matrice ? 3. Construire la main les matrices L et U de la factorisation LU pour la matrice ci-dessus. C ORRECTION . 1. La mthode de J ACOBI est une mthode itrative pour le calcul de la solution dun systme linaire qui construit une suite de vecteurs x(k ) Rn convergent vers la solution exacte x pour tout vecteur initiale x(0) Rn :
n

bi
k +1 xi =

j =1 j =i

ai j x k j , i = 1, . . . , n .

ai i

2. Comme |4| > | 1| + | 1|, |3| > | 1| + | 1| et |4| > | 1| + | 1|, la matrice A est diagonale dominante stricte donc la mthode de J ACOBI converge 3. Factorisation : 4 1 1 Par consquent 1 L = 1/4 1/4 0 1 5/11 0 0 1 et 4 U = 0 0 1 11 /4 0 1 5/4 . 35 /11 1 3 1
1 L 2 L 2 4 L1 1 4 1 L 3 L 3 L 1 4 1 0 4 0

1 11 /4 5/4

3 1 L L / L 2 3 3 / 5/4 0 15 0 /4
5 4 11 4

1 11 /4 0

1 5/4 . 35 /11

G. Faccanoni

151

6. Systmes linaires

Jeudi 31 janvier 2013

Exercice 6.16
Soit la matrice A Rn n dont les lments vrient a i j = 1 si i = j ou i = n , a i j = 1 si i < j , a i j = 0 sinon. Calculer la factorisation LU de A. C ORRECTION . 1 1 1 .. . ... 1 Factorisation LU de la matrice A : ... .. . 1 .. . ... 1 ... .. . .. . .. . 0 ... ... 1 1 . . . 0 . 1 L n L n 1 L 1 . . . . . . . . . . . 0 1 1 0 [. . . ] 1 0 n 2 L n L n 2 1 L n 1 . . . . . . 0 0 par consquent on obtient les matrices 1 0 0 L= . . . 0 1 On obtient = 1 pour i = 1, . . . , n , = 0 si i < n et i = j , j 1 si j < n ; nj = 2
ii ij

1 1 .. . ... 2

0 . . . . . . 0 1

... .. . 1 .. . ... 2

..

. 1 1

... .. . .. . .. . 0 ...

...

..

. 1 2

1 1 . . . 0 . 2 L n L n 1 L 2 . . . . . . . . . . . 0 1 2 0

1 1 .. . ... 0

... .. . 1 .. . ... 4

... .. . .. . .. . 0 ...

...

..

. 1 4

1 . . . . . . . . . 1 4

1 1 .. . ... 0

... .. . 1 .. . ... 0

... .. . .. . .. . 0 ...

...

..

. 1 0

1 . . . . . . . . . 1 2n 1

0 1 0 . . . 0 2

0 0 1 .. . ... 4

... .. . .. . .. . 0 ...

...

0 1 2n 2

0 . . . . . . 0 0 1

et

1 0 0 U= . . . 0 0

1 1 0 . . . 0 0

1 1 1 .. . ... 0

... .. . .. . .. . 0 ...

...

1 1 0

. 1 1 2n 1

1 . . . . . .

u i j = a i j pour i=1,. . .,n-1, j=1,. . .,n, u n j = 0 si j < n , u nn = 2n 1 .

Exercice 6.17
Considrons une matrice A Rn n (avec n 3) dont les lments vrient a i j = 1 si i = j ou j = n , a i j = 1 si i > j , a i j = 0 sinon. Calculer la factorisation LU de A. C ORRECTION . 1 Factorisation LU de la matrice A : 0 1 .. . ... .. . 1 .. . ... ... .. .. .. 0 . . . . . . 0 1 1 1 1 . L L +L . . 2 2 1 0 . . . . . . . . L L + L n n 1 . . . . . . . . . . 1 1 0 0 1 1 . . . . . . 1 ... .. . 1 .. . ... ... .. .. .. 0 . . . . . . 0 1 1 1 1 0 1 0 . . . . . . 0 ... .. . 1 1 . . . 1 ... .. .. .. 0 . . . . . . 0 1 1 1

1 . . . . . . . . . 1

. .

. .

...

. ...

. ...

L L +L 2 3 3 2 0 . . . . . . . . L L + L n n 2 . . . . . . . . . . 2 2 0

. .

. ...

2 4 . . . 4 4

152

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

1 0 . . . L n L n +L n 1 [. . . ] . . . . . . 0 On obtient les matrices 1 0 1 .. . ... .. . 1 .. . ... ... .. .. .. ... 0 . . . . . . . . . 0 1

0 1 .. .

... .. . 1 .. . ...

... .. .. ..

. .

0 . . . . . . 0 1 0

20

...

. ...

21 2 2 . . . n 2 2 2n 1

1 . . . L= . . . . . . 1 i.e. = 1 pour i = 1, . . . , n , , i j = 1 si i > j i j = 0 sinon ;


ii

. . .. .

et

...

. ...

1 1

1 0 . . . U= . . . . . . 0

0 1 .. .

... .. . 1 .. . ...

... .. .. ..

. .

0 . . . . . . 0 1 0

20

...

. ...

21 2 2 . . . . n 2 2 2n 1

u i i = 1 pour i = 1, . . . , n 1, u i n = 2i 1 pour i = 1, . . . , n , u i j = 0 sinon.

Exercice 6.18 Systmes linaires (6 pts)


On considre la matrice tridiagonale inversible A Rn n a1 c1 a2 b3 .. . ... 0 c2 a3 .. . .. . ... ... .. . .. . .. . b n 1 0 ... .. .. 0 . . . . . .

b 2 0 A= . . . . . . 0

. .

a n 1 bn

0 c n 1 an

1. Montrer que les matrices L et U de la factorisation LU de A sont bidiagonales, i.e. si a i j = 0 pour |i j | > 1 alors i j = 0 pour i > 1 + j (et pour i < j car triangulaire infrieure) et u i j = 0 pour i < j 1 (et pour i > j car triangulaire suprieure). Soit A(k ) , k = 0, . . . , n 1 la matrice obtenue ltape k de la mthode de G AUSS, avec A(0) = A et A(n 1) = U. On (k ) montrera par rcurrence sur k que A(k ) est tridiagonale pour tout k = 0, . . . , n 1, i.e. a i = 0 pour |i j | > 1. j

Initialisation : pour k = 0, A(0) = A est une matrice tridiagonale.


) Hrdit : soit A(k ) une matrice tridiagonale (i.e. ai(k = 0 pour |i j | > 1) et montrons que A(k +1) lest aussi. j (k +1) Si i k , que valent-ils les coefcients a i ? j Si i > k alors on va considrer sparment les cas suivants : (k +1) si j k , que valent-ils les coefcients a i ? j (k ) si j > k et j < i 1, que valent-ils les coefcients a i et k (k +1) ai ? j (k ) si j > k et j > i + 1, que valent-ils les coefcients a k et j (k +1) ai ? j (k ) ? ik (k ) ? ik

Que peut-on dduire sur les coefcients Que peut-on dduire sur les coefcients

NB : Justier succinctement chaque rponse ! 2. On a montr au point prcdent que les matrices L et U de la factorisation LU de A sont bidiagonales, crivons-les

G. Faccanoni

153

6. Systmes linaires

Jeudi 31 janvier 2013

sous la forme 1 0 1 3 .. . ... ... .. . 1 .. . .. . ... ... .. .. ... 0 . . . . . . , . . . 0 1 1 0 . . . U= . . . . . . 0 1 2 .. . 0 2 .. . .. . ... ... .. . .. . .. . .. . ... ... .. .. 0 . . . . . .

2 0 L= . . . . . . 0

. . .. .

. .

n 1 0

1 n

...

n 1 0

. 0 n 1 n

Calculer (1 , 2 , . . . , n ), (2 , 3 , . . . , n ) et (1 , 2 , . . . , n 1 ) en fonction de (a 1 , a 2 , . . . , a n ), (b 2 , b 3 , . . . , b n ) et (c 1 , c 2 , . . . , c n 1 ). En dduire un algorithme de factorisation. 3. laide des formules trouves au point prcdent, crire lalgorithme pour rsoudre le systme linaire Ax = f o f = ( f 1 , f 2 , . . . , f n )T R n . C ORRECTION . 1. Soit A(k ) , k = 0, . . . , n 1 la matrice obtenue ltape k de la mthode de G AUSS, avec A(0) = A et A(n 1) = U. On (k ) = 0 pour |i j | > 1. montrera par rcurrence sur k que A(k ) est tridiagonale, i.e. a i j

Initialisation : pour k = 0, A(0) = A qui est une matrice tridiagonale.


) = 0 pour |i j | > 1) et montrons que A(k +1) lest aussi. Hrdit : soit A(k ) une matrice tridiagonale (i.e. ai(k j (k ) (k +1) = 0 (les lignes L 1 , . . . , L k de la matrice A(k ) ne sont pas modies ltape k ). = ai Si i k alors a i j j

Soit i > k , alors les lignes L k +1 , . . . , L n de la matrice A(k ) vont tre modies selon la relation)
(k +1) (k ) ai = ai j j (k ) ai k (k ) a kk (k ) ak . j

Pour chaque ligne i > k , considrons sparment les colonnes j k et les colonnes j > k : (k +1) si j k , a i = 0 (zros quon fait apparaitre avec la mthode de G AUSS pour une matrice quelconque), j soit j > k : (k ) (k ) k) si j < i 1, comme i , j > k alors a i = 0 et i > j + 1 > k + 1, cest--dire i k > 1 et donc a i = 0 et ( = 0. j k ik
(k +1) Donc a i = 0. j (k ) (k ) si j > i + 1, comme i , j > k alors a i = 0 et j > i + 1 > k + 1, cest--dire j k > 1 et donc a k = 0. Donc j j (k +1) ai = 0. j

2. Les coefcients (1 , 2 , . . . , n ), (2 , 3 , . . . , n ) et (1 , 2 , . . . , n 1 ) se calculent en imposant lgalit LU = A. Lalgorithme se dduit en parcourant les tapes de la mthode de G AUSS : a1 c1 a2 b3 .. . ... 0 c2 a3 .. . .. . ... ... .. . .. . .. . ... .. .. 0 . . . . . . 1 = a 1 0 0 . . . . . . 0 ... .. . .. . .. . b n 1 0 1 = c 1 2 = a 2 2 c 1 b3 .. . ... ... .. .. 0 . . . . . . 0 2 = c 2 a3 .. . .. . ... ... .. . .. . .. . b n 1 0 ... .. .. 0 . . . . . .

b 2 0 A(0) = . . . . . . 0

. .

b n 1 a n 1 0 bn 1 = a 1 1 = c 1 2 = a 2 2 c 1 0 0 L 3 L 3 3 L 2 0 A(2) = . . b3 . .. 3 = . 2 . . . 0 ...

L 2 L 2 2 L 1 (1) A = b 2 = a 2 0 1 c n 1 an 0 2 = c 2

. .

a n 1 bn

0 c n 1 an

3 = a 3 3 c 2 .. . .. . ...

. .

a n 1 bn

L 4 L 4 4 L 3 [ ] b 4 = 4 0 3 c n 1 an

154

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

1 = a 1 0 0 L n L n n L n 1 [ ] A(n 1) = . bn . n = . n . . . 0

1 = c 1 2 = a 2 2 c 1 0 .. . ...

0 2 = c 2 3 = a 3 3 c 2 .. . .. . ...

... .. . .. . .. . 0 0

... .. ..

. .

0 . . . . . . 0 n 1 = c n 1 n = a n n c n 1

n 1 = a n 1 n 1 c n 2 0

Donc i = c i pour i = 1, . . . , n , 1 = a 1 et on dnie par rcurrence i i =


bi i 1

= a i i c i 1

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, pour lesquels on obtient les formules suivantes : y1 = f1, y i = f i i y i 1 , pour i = 2, . . . , n , xn = xi =
yn n , y i i x i +1 , i

i.e.

y1 = f1, y i = f i a i c y i 1 , pour i = 2, . . . , n ; i i i 1 yn x n = n , x i = a i i ci +1 , pour i = n 1, . . . , 2, i i i 1 x = y i ci x2 . 1 a1


y c x b

pour i = n 1, . . . , 1,

i.e.

Exercice 6.19
Soit les systmes linaires 4x 1 + 3x 2 + 3x 3 = 10 3x 1 + 4x 2 + 3x 3 = 10 3x 1 + 3x 2 + 4x 3 = 10 4x 1 + x 2 + x 3 = 6 x 1 + 4x 2 + x 3 = 6 x 1 + x 2 + 4x 3 = 6 (6.1)

(6.2)

1. Rappeler une condition sufsante de convergence pour les mthodes de J ACOBI et de Gauss-Seidel. Rappeler une autre condition sufsante de convergence pour la mthode de G AUSS -S EIDEL (mais non pour la mthode de Jacobi). Les systmes (6.1) et (6.2) vrient-ils ces conditions ? 2. crire les mthodes de J ACOBI et de G AUSS -S EIDEL pour ces deux systmes linaires. 3. On illustrera les rsultats thoriques de convergence/non-convergence de ces deux schmas en prenant comme point de dpart le vecteur (x 1 , x 2 , x 3 ) = (0, 0, 0) et en calculant les 3 premiers itrs dans lun des cas suivant (vous tes libre de choisir) : 3.1. avec la mthode de J ACOBI pour le systme (6.1), 3.2. avec la mthode de G AUSS -S EIDEL pour le systme (6.1), 3.3. avec la mthode de J ACOBI pour le systme (6.2), 3.4. avec la mthode de G AUSS -S EIDEL pour le systme (6.2). 4. On comparera le rsultat obtenu avec la solution exacte (quon calculera laide de la mthode dlimination de Gauss). C ORRECTION . crivons les deux systmes sous forme matricielle Ax = b : 4 3 3 3 4 3
A1

3 x1 10 3 x 2 = 10 4 x3 10

et

4 1 1

1 4 1
A2

1 x1 6 1 x 2 = 6 4 x3 6

1. Rappelons deux proprits de convergence : Si la matrice A est diagonale dominante stricte, les mthodes de J ACOBI et de G AUSS -S EIDEL convergent.

G. Faccanoni

155

6. Systmes linaires

Jeudi 31 janvier 2013

Si la matrice A est symtrique et dnie positive, la mthode de G AUSS -S EIDEL converge. Comme 4 > 1 + 1, la matrice A2 est diagonale dominante stricte : les mthodes de J ACOBI et de G AUSS -S EIDEL convergent. Comme 4 < 3 + 3, la matrice A1 nest pas diagonale dominante stricte : les mthodes de J ACOBI et de G AUSS -S EIDEL peuvent ne pas converger. Cependant elle est symtrique et dnie positive (car les valeurs propres 1 sont 1 = 2 = 1 et 3 = 10) : la mthode de G AUSS -S EIDEL converge. 2. Pour les systmes donns les mthodes de J ACOBI et G AUSS -S EIDEL scrivent A1 x = b (k +1) (k ) (k ) x 10 3 x 3 x 1 2 3 (k +1) 1 ( k ) = 4 10 3x 3x (k ) x 1 3 2 (k +1) (k ) (k ) x3 10 3x 1 3x 2 (k +1) (k ) (k ) x 1 10 3x 2 3x 3 (k +1) 1 = 4 10 3x (k +1) 3x (k ) x 1 3 2 (k +1) (k +1) (k +1) x3 10 3x 1 3x 2 A2 x = b (k +1) (k ) (k ) x 6 x x 1 2 3 (k +1) 1 ( k ) x = 4 6 x x (k ) 1 3 2 (k +1) (k ) (k ) x3 6 x1 x2 (k +1) (k ) (k ) x 1 6 x2 x3 (k +1) 1 = 4 6 x (k +1) x (k ) x 1 3 2 (k +1) (k +1) (k +1) x3 6 x1 x2

Jacobi

Gauss-Seidel

3. On obtient les suites suivantes 3.1. J ACOBI pour le systme (6.1) : (0) (1) 5 10 3 0 3 0 0 x1 2 1 x = 0 = x = 10 3 0 3 0 = 5 2 2 2 4 5 x3 10 3 0 3 0 0 x3 2 (3) (2) 5 5 5 35 10 3 5 5 x1 10 3 x1 2 3 2 4 4 3 4 1 8 1 5 5 5 5 5 35 = x 2 = 4 10 3 2 3 2 = 4 = x 2 = 4 10 3 4 3 4 = 8 5 5 5 35 10 3 5 5 x3 10 3 x3 2 3 2 4 4 3 4 8 x1 3.2. G AUSS -S EIDEL pour le systme (6.1) : (0) (1) 5 10 3 0 3 0 0 x1 2 1 x = 0 = x = 10 3 5 3 0 = 5 2 2 4 8 2 5 5 10 3 5 3 x3 0 x3 2 8 32 (3) (2) 5 245 12485 x1 10 3 5 x1 8 3 32 128 8192 1 245 5 485 35765 = x 2 = 4 10 3 128 3 32 = 512 = x 2 = 32768 485 725 70565 10 3 245 x3 x3 128 3 512 2048 131072 x1 3.3. J ACOBI pour le systme (6.2) : (0) (1) 3 0 x1 61010 1 2 x = 0 = x = 6 1 0 1 0 = 3 2 2 4 2 3 x3 0 x3 61010 2 (2) (3) 3 3 3 9 x1 61 3 x1 61 3 2 1 2 4 4 1 4 1 1 8 3 3 3 3 3 9 = x 2 = 4 6 1 2 1 2 = 4 = x 2 = 4 6 1 4 1 4 = 8 3 3 3 9 x3 x3 61 3 61 4 1 3 2 1 2 4 4 8 x1
1. det A1 () = (4 )3 + 27 + 27 9(4 ) 9(4 ) 9(4 ) = 64 48 + 122 3 + 54 108 + 27 = 3 + 122 21 + 10. Une racine vidente est = 1 et on obtient det A1 () = ( 1)(2 + 11 10) = ( 1)2 ( 10).

156

G. Faccanoni

Jeudi 31 janvier 2013

6. Systmes linaires

3.4. G AUSS -S EIDEL pour le systme (6.2) : (0) (1) 3 61010 0 x1 2 1 x = 0 = x = 6 1 3 1 0 9 2 8 2 4 2 27 3 9 61 2 1 8 x3 0 x3 32 (2) (3) 129 8139 9 531 1 27 1 2025 x1 61 8 x1 6 1 512 32 128 2048 8192 1 1 129 8139 27 531 2025 32913 = x 2 = 4 6 1 128 1 32 = 512 = x 2 = 4 6 1 8192 1 2048 = 32768 531 2025 8139 131139 1 32913 x3 6 1 129 x3 6 1 8192 128 1 512 2048 32768 131072 x1 4. Calcul de la solution exacte laide de la mthode dlimination de Gauss : Systme (6.1) : 4 3 3 Systme (6.2) : 4 1 1 1 4 1 1 1 4 L 2 L 2 1 4 L1 6 4 L1 L 3 L 3 1 4 6 0 6 0 1 15 /4 3 /4 1 3 /4 15 /4 6 4 3/4 L 3 L 3 15/4 L2 9 /2 0 9 /2 0 1 15 /4 0 1 3 /4 18 /5 6 1 9 /2 = x = 1 18 /5 1 3 4 3 3 3 4
3 L 2 L 2 4 L1 10 4 3 L 3 L 3 4 L 1 10 0 10 0

3 7 /4 3 /4

3 3 /4 7 /4

4 10 L2 L 3 L 3 3/4 7/4 5 /2 0 5 /2 0

3 7 /4 0

3 3 /4 10 /7

10 1 5 /2 = x = 1 10 /7 1

G. Faccanoni

157

A. Python : guide de survie pour les TP


Le but de ce chapitre est de fournir sufsamment dinformations pour pouvoir tester les mthodes numriques vues dans ce polycopi. Il nest ni un manuel de Python ni une initiation la programmation. On suppose que vous avez dj des notions de programmation et de manipulation de chier. Python est un langage dvelopp dans les annes 1 980 (le nom est driv de la srie tlvise britannique des Monty Pythons 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 modication sur tous les systmes. Les programmes Python ne sont pas compils en code machine, mais sont grs par un interprteur. Le grand avantage dun langage interprt est que les programmes peuvent tre tests et mis au point rapidement, ce qui permet lutilisateur de se concentrer davantage sur les principes sous-jacents du programme et moins sur la programmation elle-mme. Cependant, un programme Python peut tre excut uniquement sur les ordinateurs qui ont install linterprteur Python.

A.1. Obtenir Python et son diteur I DLE


Pour installer Python il suft 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 spcialiss comme I DLE ou I DLE X (ou encore S PYDER). Ces environnements se composent dune fentre appele indiffremment console, shell ou terminal Python.

A.1.1. Utilisation de base dIdle


Pour commencer on va dmarrer Python en lanant I DLE : sous Windows : menu Dmarrer programme Python I DLE sous Ubuntu : menu Applications menu Programmation I DLE sous Mac/Linux : ouvrir un terminal/console et taper idle-python2.6 Une nouvelle fentre va souvrir, cest la fentre principale dI DLE appele la fentre de lINTERPRTEUR :

LINTERPRTEUR permet dentrer directement des commandes et ds quon crit une commande, Python lexcute et renvoie instantanment le rsultat. Linvite de commande se compose de trois chevrons (>>>) et reprsente le prompt : cette marque visuelle indique que Python est prt lire une commande. Il suft de saisir la suite une instruction puis dappuyer sur la touche Entre. Pour commencer, comme le veux la tradition informatique, on va demander Python dafcher les fameux 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 renvoye ds quon presse la touche Entre. Si on observe limage suivante, on voit le rsultat afch aprs lentre de commandes supplmentaires.

Pour naviguer dans lhistorique des instructions saisies dans lINTERPRTEUR on peut utiliser les raccourcis Alt+p (p comme previous) 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 la fois les commandes tapes et les rponses du systme. Il faut alors avoir un chier avec uniquement les commandes quon a tapes et sauver le tout comme un document. Ainsi plus tard on pourra ouvrir ce chier 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 commandes dans 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 ce chier est uniquement pour les commandes : Python ninterviendra pas avec ses rponses lorsque on crira le programme et ce tant que on ne le lui demandera pas. On appellera cela la fentre de P ROGRAMME, pour la diffrencier de la fentre de lINTERPRTEUR. 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 P ROGRAMME :

On note quon sest dbarrasss du prompt de Python (>>>). Sauvons maintenant le chier : 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 afcher les rsultats dans la fentre de lINTERPRTEUR il suft dutiliser la commande Run script (lancer le script) dans le menu Run de la fentre P ROGRAMME 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 vers le problme et dans le cas ci-dessous il dit quon a oubli quelque chose la n 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 I DLE. La commande Open (Ouvrir) se trouve dans le menu File (Fichier). Si tout se passe bien, on va avoir une nouvelle fentre P ROGRAMME avec lancien programme.

A.2. Notions de base de Python


Indentation Le corps dun bloc de code (boucles, sous-routines, etc.) est dni par son indentation : lindentation est une partie intgrante de la syntaxe de Python. Commentaires Le symbole dise (#) indique le dbut dun commentaire : tous les caractres entre # et la n de la ligne sont ignors par linterprteur. Variables et aectation Dans la plupart des langages informatiques, le nom dune variable reprsente une valeur dun
type donn stocke dans un emplacement de mmoire xe. La valeur peut tre modie, mais pas le type. Ce nest pas le cas en Python, o les variables sont types dynamiquement. La session interactive suivante avec lINTERPRTEUR Python illustre ce propos (>>> est le prompt) :
1 2 3 4 5 6

>>> >>> 2 >>> >>> 4.0

b = 2 # b is an integer print(b) b = b*2.0 # b is a float print(b)

Laffectation b = 2 cre une association entre le nom b et le nombre entier 2. La dclaration suivante b*2.0 value lexpression et associe le rsultat b ; lassociation dorigine avec lentier 2 est dtruite. Maintenant b se rfre la valeur en virgule ottante 4.0. Il faut bien prendre garde au fait que linstruction daffectation (=) na pas la mme signication que le symbole dgalit (=) en mathmatiques (ceci explique pourquoi laffectation de 3 x, quen Python scrit x = 3, en algorithmique se note souvent x 3). On peut aussi effectuer des affectations parallles :
1 2 3 4 5

>>> a, b = 128, 256 >>> print(a) 128 >>> print(b) 256

ATTENTION. Python est sensible la casse. Ainsi, les noms n et N reprsentent diffrents objets. Les noms de variables peuvent tre non seulement des lettres, mais aussi des mots ; ils peuvent contenir des chiffres ( condition toutefois de ne pas commencer 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 ou doubles). Les chanes de caractres sont concatnes avec loprateur plus (+), tandis que loprateur (:) est utilis pour
extraire une portion de la chane. Voici un exemple :
1 2 3 4 5 6

>>> string1 = Press return to exit >>> string2 = the program >>> print string1 + + string2 # Concatenation Press return to exit the program >>> print string1[0:12] # Slicing Press return

Une chane de caractres est un objet immuable, i.e. ses caractres ne peuvent pas tre modis par une affectation, et sa longueur est xe. Si on essaye de modier un caractre dune chane de caractres, Python renvoie une erreur comme dans lexemple suivant :
1 2 3 4 5

>>> s = Press return to exit >>> s[0] = p Traceback (most recent call last): File "<stdin>", line 1, in <module> 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 suite
est encadre par des crochets. Une liste nest pas forcement homogne : elle peut contenir des objets de types diffrents les uns des autres. La premire manipulation que lon a besoin deffectuer sur une liste, cest den extraire et/ou modier un lment : la syntaxe est ListName[index]. Voici un exemple :
1 2 3 4 5 6 7 8

>>> fraise = [12, 10, 18, 7, 15, 3] # Create a list >>> print fraise [12, 10, 18, 7, 15, 3] >>> fraise[2] 18 >>> fraise[1] = 11 >>> print fraise [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 2 3 4 5 6 7

>>> fraise[0], fraise[1], fraise[2], fraise[3], fraise[4], fraise[5] (12, 11, 18, 7, 15, 3) >>> fraise[6] Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> fraise[6] IndexError: list index out of range

On peut extraire une sous-liste en dclarant lindice de dbut (inclus) et lindice de n (exclu), spars par deux-points :

ListName[i:j], ou encore une sous-liste en dclarant lindice de dbut (inclus), lindice de n (exclu) et le pas, spars par des deux-points : ListName[i:j:k]. Cette opration est connue sous le nom de slicing (en anglais). Un petit dessin et
quelques exemples permettrons de bien comprendre cette opration fort utile :

len(fraise)
0 1 2 3 4 5 6

fraise=

12

11

18

15

-6
1 2 3

-5

-4

-3

-2

-1

>>> fraise[2:4] [18, 7] >>> fraise[2:]

G. Faccanoni

163

A. Python : guide de survie pour les TP

Jeudi 31 janvier 2013

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

[18, 7, 15, 3] >>> fraise[:2] [12, 11] >>> fraise[:] [12, 11, 18, 7, 15, 3] >>> fraise[2:5] [18, 7, 15] >>> fraise[2:6] [18, 7, 15, 3] >>> fraise[2:7] [18, 7, 15, 3] >>> fraise[2:6:2] [18, 15] >>> fraise[-2:-4] [] >>> fraise[-4:-2] [18, 7] >>> fraise[-1] 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) a.extend(L) a.insert(i,x) a.remove(x) a.pop([i]) a.index(x) a.count(x) a.sort(x) a.reverse(x) len(a) x in a x not in a max(a) min(a)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

ajoute llment x en n de la liste a ajoute les lments de la liste L en n de la liste a, quivaut a + L ajoute llment x en position i de la liste a, quivaut a[i:i]=x supprime la premire occurrence de llment x dans la liste a supprime llment dindice i dans la liste a et le renvoi renvoie lindice de la premire occurrence de llment x dans la liste a renvoie le nombre doccurrence de llment x dans la liste a modie la liste a en la triant modie la liste a en inversant les lments renvoie le nombre dlments de la liste a renvoi True si la liste a contient llment x, True sinon renvoi True si la liste a ne contient pas llment x, True sinon renvoi le plus grand lment de la liste a renvoi le plus petit lment de la liste a

>>> a = [2, 37, 20, 83, -79, 21] # Create a list >>> print a [2, 37, 20, 83, -79, 21] >>> a.append(100) # Append 100 to list >>> print a [2, 37, 20, 83, -79, 21, 100] >>> L = [17, 34, 21] >>> a.extend(L) >>> print a [2, 37, 20, 83, -79, 21, 100, 17, 34, 21] >>> a.count(21) 2 >>> a.remove(21) >>> print a [2, 37, 20, 83, -79, 100, 17, 34, 21] >>> a.count(21) 1 >>> a.pop(4) -79 >>> print a [2, 37, 20, 83, 100, 17, 34, 21] >>> a.index(100) 4 >>> a.reverse() >>> print a [21, 34, 17, 100, 83, 20, 37, 2]

164

G. Faccanoni

Jeudi 31 janvier 2013

A. Python : guide de survie pour les TP

27 28 29 30 31 32 33 34 35 36 37

>>> >>> [2, >>> 8 >>> >>> [2, >>> >>> [2,

a.sort() print a 17, 20, 21, 34, 37, 83, 100] len(a) # Determine length of list a.insert(2,7) # Insert print a 17, 7, 20, 21, 34, 37, a[2:4] = [-2,-5,-1978] print a 17, -2, -5, -1978, 21, 7 in position 2 83, 100] # Modify selected elements 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 vraiment indpendante on utilisera la commande deepcopy du module copy comme dans lexemple suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

>>> import copy >>> a = [1.0, 2.0, 3.0] >>> b = a # b is an alias of a >>> b[0] = 5.0 # Change b >>> print a # The change is reflected in a [5.0, 2.0, 3.0] >>> print b [5.0, 2.0, 3.0] >>> a = [1.0, 2.0, 3.0] >>> c = copy.deepcopy(a) # c is an independent copy of a >>> c[0] = 5.0 # Change c >>> print a # a is not affected by the change [1.0, 2.0, 3.0] >>> print c [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 carnet dadresses qui contient les emplacements en mmoire des diffrents lments de la liste. Lorsque on crit b=a on dit que b contient les mmes adresses que a (on dit que les deux listes pointent vers le mme objet). Ainsi, lorsquon modie la valeur de lobjet, la modication 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]]

dnit a comme la matrice 3 3

1 4 7

2 5 8

3 6 . 9

La commande len (comme length) renvoie la longueur dune liste. On obtient donc le nombre de ligne de la matrice avec len(a) et son nombre de colonnes avec len(a[0]). En effet,
1 2 3 4 5 6 7 8 9 10

>>> print a [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> print a[1] # Print second row (element 1) [4, 5, 6] >>> print a[1][2] # Print third element of second row 6 >>> print len(a) 3 >>> print len(a[0]) 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, cette fonction gnre les entiers au fur et mesure des besoins : range(n) renvoi un itrateur parcourant 0, 1, 2, . . . , n 1 ; range(n,m) renvoi un itrateur parcourant n , n + 1, n + 2, . . . , m 1 ; range(n,m,p) renvoi un itrateur parcourant n , n + p , n + 2p , . . . , m 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(0) [] >>> range(1) [0] >>> range(3,7) [3, 4, 5, 6] >>> range(0,20,5) [0, 5, 10, 15] >>> range(0,20,-5) [] >>> range(0,-20,-5) [0, -5, -10, -15] >>> range(20,0,-5) [20, 15, 10, 5]

Instruction print Pour afcher lcran des objets on utilise la commande print object1, object2, ... qui convertis object1, object2 en chanes de caractres et les afche sur la mme ligne spars par des espace. Le retour la ligne peut tre forc par le caractre \n, la tabulation par le caractre \t :
1 2 3 4 5 6 7 8 9

>>> a = 12345,6789 >>> b = [2, 4, 6, 8] >>> print a,b (12345, 6789) [2, 4, 6, 8] >>> print "a=", a, "\nb=", b a= (12345, 6789) b= [2, 4, 6, 8] >>> print "a=", a, "\tb=", b 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,...) afche les nombres n1,n2,... selon les rgles %format1, %format2,.... Typiquement on utilise wd w .d f w .d e pour un entier pour un nombre en notation oating point pour un nombre en notation scientique

o w est la largeur du champ total, d le nombre de chiffres aprs la virgule. Voici quelques exemples :
1 2 3 4 5 6 7 8 9 10

>>> a = 1234.56789 >>> n = 9876 >>> print %7.2f %a 1234.57 >>> print n = %6d %n n = 9876 >>> print n = %06d %n n = 009876 >>> print %12.4e %6d %(a,n) 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 2 3 4 5 6 7 8 9 10 11 12 13 14

>>> >>> >>> >>> >>> >>> (2, >>> >>> >>> >>> >>> >>> (4,

a = 100 b = 17 c = a-b a = 2 c = b+a a,b,c 17, 19) a = 3 b = 4 c = a a = b b = c a, b, c 3, 3)

Certains de ces oprations sont aussi dnies pour les chanes de caractres et les listes comme dans lexemple suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

>>> s = Hello >>> t = to you >>> a = [1, 2, 3] >>> print 3*s # Repetition Hello Hello Hello >>> print 3*a # Repetition [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> print a + [4, 5] # Append elements [1, 2, 3, 4, 5] >>> print s + t # Concatenation Hello to you >>> print 3 + s # This addition makes no sense Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: int and str

Il existe aussi les oprateurs augments : On crit quivaut

a a a a a a

+= b -= b *= b /= b **= b %= b

a a a a a a

= = = = = =

a + b a - b a*b a/b a**b a%b

Oprateurs de comparaison et connecteurs logiques Les oprateurs de comparaison renvoient True si la condition est vrie, False sinon. Ces oprateurs sont
On crit

< > <= >= == != in

a signie < > = =

ATTENTION. Bien distinguer linstruction daffectation = du symbole de comparaison ==. Pour combiner des conditions complexes (par exemple x > 2 et x 2 < 5), on peut combiner des variables boolennes en utilisant les connecteurs logiques : On crit a signie et ou non

and or not

G. Faccanoni

167

A. Python : guide de survie pour les TP

Jeudi 31 janvier 2013

Deux nombres de type diffrents (entier, virgule ottante, etc.) sont convertis en un type commun avant de faire la comparaison. Dans tous les autres cas, deux objets de type diffrents sont considrs non gaux. Voici quelques exemples :
1 2 3 4 5 6 7 8 9 10 11 12 13

>>> a = 2 # Integer >>> b = 1.99 # Floating >>> c = 2 # String >>> print a>b True >>> print a==c False >>> print (a>b) and (a==c) False >>> print (a>b) or (a==c) True >>> print (a>b) or (a==b) True

A.3. Fonctions et Modules


A.3.1. Fonctions
Supposons 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 2x 7 x 6 + 5x 5 x 4 + 9x 3 + 7x 2 + 8x 1, il est rapidement fastidieux de la saisir chaque fois que lon souhaite calculer limage dun nombre par cette fonction. Une premire ide est dutiliser 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 dnir une fonction (au sens du langage Python) qui ressemble une fonction mathmatique. La syntaxe est la suivante :
1 2 3

def FunctionName(parameters): statements return values

La dclaration dune nouvelle fonction commence par le mot-cl def. Ensuite, toujours sur la mme ligne, vient le nom de la fonction (ici FunctionName) suivi des paramtres formels 2 de la fonction parameters), placs entre parenthses, le tout termin par deux-points (on peut mettre autant de paramtres formels quon le souhaite et ventuellement aucun). Une fois la premire ligne saisie, on appuie sur la touche Entre : le curseur passe la ligne suivante avec une indentation. Si linstruction return est absente, la fonction renvoi lobjet None. ATTENTION. Ds que Python atteint linstruction return something, il renvoi lobjet something et abandonne aussitt aprs 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 n de ligne, dans le deuxime il manque lindentation, dans le troisime il manque le mot return et donc tout appel de la fonction aura comme rponse None, dans le quatrime linstruction print Hello nest jamais lue par Python car elle apparait aprs linstruction return.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

>>> def f(x) SyntaxError: invalid syntax >>> def f(x): return 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1 File "<pyshell#7>", line 2 return 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1 ^ IndentationError: expected an indented block >>> def f(x): 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1

>>> f(2) >>> print f(2) None >>> def f(x):


2. Les paramtres gurant entre parenthses dans len-tte dune fonction se nomment paramtres formels, par opposition aux paramtres fournis lors de lappel de la fonction qui sont appels paramtres effectifs.

168

G. Faccanoni

Jeudi 31 janvier 2013


a = 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1 return a print Hello

A. Python : guide de survie pour les TP

17 18 19 20 21 22

>>> f(2) 451

ATTENTION. Les variables dnies lintrieur dune fonction ne sont pas visibles depuis lextrieur de la fonction. On exprime cela en disant quune telle variable est locale la fonction. De plus, si une variable existe dj avant lexcution de la fonction, tout se passe comme si, durant lexcution de la fonction, cette variable tait masque momentanment, puis restitue la n 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 2 3 4 5 6 7 8 9 10 11

>>> def f(y): x = 2 return 4.*y >>> f(5) 20.0 >>> x Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> x 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 de la fonction f :
1 2 3 4 5 6 7 8 9 10 11

>>> x = 6. >>> def f(y): x = 7 return x*y >>> print x 6.0 >>> print f(1.) 7.0 >>> print x 6.0

Dans lexemple suivant la fonction derivatives approche les drives premire et seconde dune fonction f par les formules f (x ) f (x + h ) f (x h ) , 2h f (x ) f (x + h ) 2 f (x ) + f (x h ) h2

1 2 3 4 5

import math def derivatives(f,x,h): df = (f(x+h)-f(x-h))/(2.*h) ddf = (f(x+h)-2.*f(x)+f(x-h))/h**2 return df,ddf

Si on veut calculer la valeur des drives premire et seconde de la fonction x arctan(x ) en x = 0.5 il suft dcrire
1 2 3

df, ddf = derivatives(math.atan,0.5,1.0e-5) print First derivative =, df print Second derivative =, ddf

ATTENTION. Si une liste est passe comme paramtre dune fonction et cette fonction la modie, cette modication se rpercute sur la liste initiale. Si ce nest pas le rsultat voulu, il faut travailler sur une copie de la liste.
1 2 3 4

def squares(a): for i in range(len(a)): a[i] = a[i]**2

G. Faccanoni

169

A. Python : guide de survie pour les TP

Jeudi 31 janvier 2013

5 6 7 8

a = [1,2,3,4] print a # The output is [1, 2, 3, 4] squares(a) print a # The output is [1, 4, 9, 16]

A.3.2. Modules
Un 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 dnies dans un module peut tre afche par la commande dir(ModuleName). Les fonctions sutilisent sous la forme ModuleName.FunctionName(parameters). Il est galement possible dimporter le contenu du module sous la forme from 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 que lon souhaite crire un programme. Ces modules couvrent des domaines trs divers : mathmatiques (fonctions mathmatiques usuelles, calculs sur les rels, sur les complexes, combinatoire. . .), administration systme, programmation rseau, manipulation de chiers, 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 prdnie : abs(a) max(suite) min(suite) round(a,n) pow(a,n) sum(L) divmod(a,b) cmp(a,b)
Valeur absolue de a Plus grande valeur de la suite Plus petite valeur de la suite Arrondi a n dcimales prs Exponentiation, renvoi a n Somme des lments de la suite Renvoi quotient et reste de la division de a par b 1 si a < b, Renvoi 0 1 si a = b, si a > b.

Toutes les autres fonctions mathmatiques sont dnies dans le module math. Comme mentionn prcdemment, on dispose de plusieurs syntaxex pour importer un module :
1 2 3 4 5 6 7

>>> import math >>> print math.pi 3.14159265359 >>> print math.sin(math.pi) 1.22464679915e-16 >>> print math.log(1.0) 0.0

ou
1 2 3 4 5 6 7

>>> from math import * >>> print pi 3.14159265359 >>> print sin(pi) 1.22464679915e-16 >>> print log(1.0) 0.0

Voici la liste des fonctions dnies dans le module math :


1 2 3

>>> import math >>> dir(math) [__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 dnit les deux constantes 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 scientiques peut se faire laide du module 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 regarder les screenshots (captures dcrans), qui sont donns avec le code utilis pour les gnrer. Dans ces rappels on ne verra que la reprsentation de fonction 1D. ATTENTION. Lorsque lon utilise I DLE, aprs la commande show() ncessaire pour visualiser les graphes, linterprteur python se bloque (cest un bug de lditeur). Pour pallier ce problme on peut utiliser I DLE X, tlchargeable ladresse http: // idlex. sourceforge. net , qui amliore I DLE 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 x i o valuer la fonction, ensuite il relie entre eux les points (x i , f (x i )) par des segments (il sagit dune spline linaire comme on verra au prochaine chapitre). Plus les points sont nombreux, plus le graphe de la fonction spline est proche du graphe de la fonction f . Pour gnrer les points x i on peut utiliser linstruction linspace(a,b,n) qui construit la liste de n + 1 lments a, a + ba ba ,a +2 ,...,b n n

a ou linstruction arange(a,b,h) qui construit la liste de n = E ( b h ) + 1 lments

[a , a + h , a + 2h , . . . , a + nh ] Voici un exemple avec une sinusode :


1 2 3 4 5

from matplotlib.pylab import * x = linspace(-5,5,101) # x = [-5,-4.9,-4.8,...,5] with 101 elements y = sin(x) # operation is broadcasted to all elements of the array plot(x,y) show()

ou encore
1 2 3 4 5

from matplotlib.pylab import * x = arange(-5,5,0.1) # x = [-5,-4.9,-4.8,...,5] with 101 elements y = sin(x) # operation is broadcasted to all elements of the array plot(x,y) show()

On obtient une courbe sur laquelle on peut zoomer, modier les marge et sauvegarder dans diffrents formats (jpg, png, eps. . .). On peut mme tracer plusieurs courbes sur la mme gure. Par exemple, si on veut comparer les graphes de la fonction prcdente en modiant la grille de dpart, on peut crire
1 2 3 4 5 6 7 8 9 10

from matplotlib.pylab import * a = linspace(-5,5,5) # a = [-5,-3,-1,1,3,5] with 6 elements fa = sin(a) b = linspace(-5,5,10) # a = [-5,-4,-3,...,5] with 11 elements fb = sin(b) c = linspace(-5,5,101) # b = [-5,-4.9,-4.8,...,5] with 101 elements fc = sin(c) plot(a,fa,b,fb,c,fc) show()

Le rsultat est afch la gure A.1a (la courbe bleu correspond la grille la plus grossire, la courbe rouge correspond la grille la plus ne). Pour tracer plusieurs courbes, on peut les mettre les unes la suite des autres en spciant la couleur et le type de trait, changer les tiquettes des axes, donner un titre, ajouter une grille, une lgende. . .
1 2 3 4 5 6 7 8 9 10 11

from matplotlib.pylab import * x = linspace(-5,5,101) # x = [-5,-4.9,-4.8,...,5] with 101 elements y1 = sin(x) # operation is broadcasted to all elements of the array y2 = cos(x) plot(x,y1,"r-",x,y2,"g.") legend([sinus,cosinus]) xlabel(abscisses) ylabel(ordonnees) title(Comparaison de sin(x) et cos(x)) grid(True) show()

G. Faccanoni

171

A. Python : guide de survie pour les TP

Jeudi 31 janvier 2013

(a)

(b)

(c)

F IGURE A.1.: Exemples pylab

-. .

solid line dash-dot line points circle symbols triangle down symbols triangle right symbols plus symbols diamond symbols blue red magenta black

: , ^ < s x g c y w

dashed line dotted line pixels triangle up symbols triangle left symbols square symbols cross symbols green cyan yellow white

v > + D b r m k

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 vert avec des points. Le rsultat est afch la gure A.1b. Voir la documentation de pylab pour connatre les autres options de
ce trac. On peut dplacer la lgende en spciant lune des valeurs suivantes : best, upper right, upper left, lower right, lower left, center right, center left, lower center, upper center, center :
1 2 3 4 5 6

from matplotlib.pylab import * x = arange(-pi,pi,0.05*pi) plot(x,sin(x),co,x,cos(x),mD) legend([sinus,cosinus],loc=upper left) axis([-pi, pi, -1, 1]) # axis([xmin, xmax, ymin, ymax]) show()

Le rsultat est afch la gure A.1c.

A.4. Structure conditionnelle


Supposons vouloir dnir la fonction valeur absolue : |x | = x x si x 0, sinon.

On a besoin dune instruction qui opre une disjonction de cas. En Python il sagit de linstruction de choix introduite par le mot-cl if. La syntaxe est la suivante :
1 2 3 4 5 6

if condition_1: instruction_1.1 instruction_1.2 ... elif condition_2: instruction_2.1

172

G. Faccanoni

Jeudi 31 janvier 2013


instruction_2.2 ...

A. Python : guide de survie pour les TP

7 8 9 10 11 12 13

... else: instruction_n.1 instruction_n.2 ...

o condition_1, condition_2. . . reprsentent des ensembles dinstructions dont la valeur est True ou False (on les obtient en gnral en utilisant les oprateurs de comparaison). La premire condition condition_i ayant la valeur True entrane lexcution des instructions instruction_i.1, instruction_i.2. . . Si toutes les conditions sont fausses, les instructions 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 prsence des deux points aprs la condition du choix et aprs le mot cl else. Voici un exemple pour tablir si un nombre est positif :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

def sign_of(a): if a < 0.0: sign = negative elif a > 0.0: sign = positive else: sign = zero return sign a = 2.0 print a is + sign_of(a) # Output: a is positive a = -2.0 print a is + sign_of(a) # Output: a is negative a = 0.0 print a is + sign_of(a) # Output: a is zero

La fonction valeur absolue peut tre dnie comme suit :


1 2 3 4 5 6 7 8

def val_abs(x): if x>0: return x else: return -x val_abs(5) # Output 5 val_abs(-5) # Output 5

A.5. Boucles
Les structure de rptition se classent en deux catgories :

rptition conditionnelle : le bloc dinstructions est rpter autant de fois quune condition est vrie, 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 lindentation
et aux deux points) :
1 2 3 4

while condition: instruction_1 instruction_2 ...

o condition reprsente des ensembles dinstructions dont la valeur est True ou False. Tant que la condition condition_i a la valeur True, on excute les instructions instruction_i. ATTENTION. Si la condition ne devient jamais fausse, le bloc dinstructions est rpt indniment et le programme ne se termine pas.

G. Faccanoni

173

A. Python : guide de survie pour les TP


1 Voici un exemple pour crer la liste 1, 1 2, 3,... :
1 2 3 4 5 6 7

Jeudi 31 janvier 2013

nMax = 5 n = 1 a = [] # Create empty list while n<nMax: a.append(1.0/n) # Append element to list n += 1 print a # Output [1.0, 0.5, 0.33333333333333331, 0.25]

Dans lexemple suivant on calcul la somme des n premiers entiers :


1 2 3 4 5 6 7

def somme(n): s ,i = 0, 0 while i<n: i += 1 s += i return s somme(100) # Output 5050

Boucle for : rptition inconditionnelle Lorsque lon souhaite rpter un bloc dinstructions un nombre dtermin de fois, on peut utiliser un compteur actif, cest--dire une variable qui compte le nombre de rptitions et conditionne la sortie de la boucle. Cest la structure introduite par le mot-cl for qui a la forme gnrale suivante (attention lindentation et aux deux points) :
1 2 3 4

for target in sequence: instruction_1 instruction_2 ...

o target est le compteur actif et sequence est un itrateur (souvent gnr par la fonction range ou une liste ou une chane de caractres). Tant que target appartient sequence, on excute les instructions instruction_i. 1 Voici un exemple pour crer la liste 1, 1 2 , 3 , . . . avec un itrateur gnr par la fonction range :
1 2 3 4 5

nMax = 5 a = [] # Create empty list for n in range(1,nMax): a.append(1.0/n) # Append element to list print a # The output is [1.0, 0.5, 0.33333333333333331, 0.25]

Interrompre une boucle Linstruction break sort de la plus petite boucle for ou while englobante. Linstruction continue continue sur la prochaine itration de la boucle. Les instructions de boucle ont une clause else qui est excute lorsque la boucle se termine par puisement de la liste (avec for) ou quand la condition devient fausse (avec while), mais pas quand la boucle est interrompue par une instruction break. Ceci est expliqu dans la boucle suivante, qui recherche des nombres
premiers :
1 2 3 4 5 6 7

for n in range(2,10): for x in range(2,n): if n%x==0: print n, egale, x, *, n/x break else: print n, est un nombre premier

ce qui donne
1 2 3 4 5 6 7 8

2 3 4 5 6 7 8 9

est un nombre est un nombre egale 2 * 2 est un nombre egale 2 * 3 est un nombre egale 2 * 4 egale 3 * 3

premier premier premier premier

174

G. Faccanoni

Jeudi 31 janvier 2013

A. Python : guide de survie pour les TP

List-comprehensions Les listes dnies par comprhension permettent de gnrer des listes de manire trs concise
sans avoir utiliser des boucles. La syntaxe pour dnir une liste par comprhension est trs proche de celle utilise en mathmatiques pour dnir un ensemble : { f (x ) | x E }

[ f(x) for x in E ]
Voici quelques exemples :
1 2 3 4 5 6 7

liste1 = [2, 4, 6, 8, 10] [3*x for x in liste] # Output [6, 12, 18, 24, 30] [[x,x**3] for x in liste] # Output [[2, 8], [4, 64], [6, 216], [8, 512], [10, 1000]] [3*x for x in liste if x>5] # Output [18, 24, 30] [3*x for x in liste if x**2<50] # Output [6, 12, 18] liste2 = range(3) [x*y for x in liste for y in liste2] # Output [0, 2, 4, 0, 4, 8, 0, 6, 12, 0, 8, 16, 0, 10, 20]

Conversion des dgres Celsius en dgres Kelvin :


1 2 3 4

Cdegrees = range(0,101,5); Fdegrees = [(9./5)*C+32 for C in Cdegrees] for i in range(len(Cdegrees)): print %5d %5.1f % (Cdegrees[i], Fdegrees[i])

ce qui donne
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100

32.0 41.0 50.0 59.0 68.0 77.0 86.0 95.0 104.0 113.0 122.0 131.0 140.0 149.0 158.0 167.0 176.0 185.0 194.0 203.0 212.0

On construit la liste des annes bissextiles entre lanne 2000 et lanne 2099 :
1 2

>>> [b for b in range(2000,2100) if (b%4==0 and b%100!=0) or (b%400==0)] [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 2 3

>>> n = 100 >>> [d for d in range(1,n+1) if (n%d==0)] [1, 2, 4, 5, 10, 20, 25, 50, 100]

G. Faccanoni

175

Chasseurs de chimres de la srie De Cape et de Crocs (AYROLES & M ASBOU), tome VII, 14, 5