Vous êtes sur la page 1sur 207

Analyse numrique

Recueil dexercices corrigs et aide-mmoire.

L2 MATH & MASS

Licence Sciences et Techniques

M33

Gloria Faccanoni
i http://faccanoni.univ-tln.fr/enseignements.html

Anne 2013 2014

Dernire mise--jour
Jeudi 5 juin 2014

Ce fascicule est un support au cours danalyse numrique en deuxime anne dune Licence de Mathmatiques. Il
aborde : la recherche de racines dune fonction relle de variable relle, linterpolation polynomiale, lintgration numriques, lintgration dquations diffrentielles et la rsolution de systmes linaires. Les applications se font avec le langage Python dont la documentation et les sources peuvent tre tlcharges ladresse http://www.python.org. Les
notions supposes connues correspondent au programme des cours de Mathmatiques (Analyse mathmatique des fonctions relles dune variable relle et Algbre Linaire) et Informatiques (Initiation lalgorithmique et au langage Python)
de la premire anne de Licence.
Lobjet de ce aide-mmoire est de proposer une explication succincte des concepts vu en cours. De nombreux livres,
parfois trs fournis, existent. Ici on a cherch, compte tenu des contraintes de volume horaire, des acquis des tudiants
la premire anne et des exigences pour la suite du cursus, dgager les points cls permettant de structurer le travail
personnel de ltudiant voire de faciliter la lecture dautres ouvrages. Ce polycopie ne dispense pas des sances de cours
et de TD ni de prendre des notes complmentaires. Il est dailleurs important de comprendre et apprendre le cours au fur
et mesure. Ce polycopi est l pour viter un travail de copie qui empche parfois de se concentrer sur les explications
donnes oralement mais ce nest pas un livre auto-suffisant (il est loin dtre exhaustif ) ! De plus, ne vous tonnez pas si
vous dcouvrez des erreurs (merci de me les communiquer).
On a inclus dans ce texte nombreux exercices corrigs. Ceux-ci, de difficult varie, rpondent une double ncessite.
Il est important de jongler avec les diffrents concepts introduits en cours et mme de faire certaines erreurs une fois
pour bien identifier les piges. Les exercices permettent dorienter les raisonnements vers dautres domaines (physique,
conomie, etc.), cela afin dexhiber lintrt et lomniprsence de lanalyse numrique au sens large (modlisation, analyse
mathmatique, discrtisation, rsolution numrique et interprtation des rsultats). Cependant, veuillez noter que vous
nobtiendrez pas grande chose si vous vous limitez choisir un exercice, y rflchir une minute et aller vite voir le dbut de
la correction en passant tout le temps essayer de comprendre la correction qui va paraitre incomprhensible. Pour que
la mthode dtude soit vraiment efficace, il faut dabord vraiment essayer de chercher la solution. En particulier, il faut
avoir un papier brouillon cot de soi et un crayon. La premire tape consiste alors traduire lnonc (pas le recopier),
en particulier sil est constitu de beaucoup de jargon mathmatique. Ensuite il faut essayer de rapprocher les hypothses
de la conclusion souhaite, et pour cela faire quelques calculs ou transformer les hypothses pour appliquer un thorme
dont on aura vrifier que les hypothses sont bien satisfaites. Cest ici que lintuition joue un grand rle et il ne faut pas
hsiter remplir des pages pour sapercevoir que lide quon a eu nest pas la bonne. Elle pourra toujours resservir dans
une autre situation. Quand finalement on pense tenir le bon bout, il faut rdiger soigneusement en sinterrogeant chaque
pas sur la validit (logique, mathmatique) de ce quon a crit. Si ltape prcdente ne donne rien, il faut chercher de laide
(voir le dbut de la correction, en parler un autre tudiant, etc.).

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 scientifique

1. Rsolution dquations non linaires


1.1. tape : localisation des zros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. tape : construction dune suite convergente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Mthodes de dichotomie (ou bissection), de L AGRANGE (ou Regula falsi) . . . . . . . . . . . . . . . . . .
1.2.2. Mthode de la scante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. Mthodes de point fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Interpolation

11
12
12
12
15
15

61

2.1. Interpolation polynomiale . . . . . . . . . . . . .


2.1.1. Mthode directe (ou nave) . . . . . . .
2.1.2. Mthode de L AGRANGE . . . . . . . . . .
2.1.3. Stabilit de linterpolation polynomiale .
2.1.4. Mthode de N EWTON . . . . . . . . . . .
2.2. Polynme dH ERMITE ou polynme osculateur
2.3. Splines : interpolation par morceaux . . . . . . .
2.3.1. Interpolation linaire composite . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

3. Quadrature

61
61
62
66
67
71
74
74

93

3.1. Principes gnraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93


3.2. Exemples de formules de quadrature interpolatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3. Approximation de drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4. quations diffrentielles ordinaires

129

4.1. Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. Position du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2. Condition initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3. Reprsentation graphique . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.4. Thorme dexistence et unicit, intervalle de vie et solution maximale
4.2. Schmas numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Schmas numriques classiques . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Schmas numriques dA DAMS . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. Schmas multi-pas de type predictor-corrector . . . . . . . . . . . . . . .
4.3. Conditionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1. A-Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Systmes linaires

129
129
129
130
130
132
132
134
136
136
136
137

163

5.1. Systmes mal conditionns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163


5.2. Mthode (directe) dlimination de G AUSS et factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.3. Mthodes itratives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

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

189
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

189
189
192
198
198
200
204
205

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 6= 0
Q lensemble des nombres rationnels

p
q,

p Z,

q Z

R lensemble des rels


R lensemble des rels autres que 0
C lensemble des nombres complexes
Rn [x] lespace vectoriel des polynmes en x de degr infrieur ou gal n

Intervalles
Ingalit

Notation ensembliste

a x b

[a, b]

a <x <b

]a, b[

a x <b

[a, b[

a <x b

]a, b]

xa

[a, +[

x>a

]a, +[

x b

] , b]

x <b

] , b[

|x| a avec a 0

[a, a]

|x| < a avec a 0

] a, a[

|x| a avec a 0

] , a] [a, +[

|x| > a avec a 0


x R

] , a[]a, +[
] , +[

x 6= a

] , a[]a, +[= R \ { a }

Reprsentations graphique
a
b
a
b
a

a
b

Symboles utiliss dans le document


dfinition
thorme, corollaire, proposition
proprit(s)
astuce
attention
remarque

Notations

Jeudi 5 juin 2014

mthode, algorithme, cas particulier


exercice de base
exercice
exemple
curiosit

gal par dfinition

>

strictement suprieur

<

strictement infrieur

suprieur ou gal

infrieur ou gal
diffrent

6=
{

ensemble

A\B

ensemble A priv de lensemble B, i.e. C A (B) le complmentaire de B dans A

ensemble vide

tel que

appartient

nappartient pas

pour tout (quantificateur universel)

il existe (quantificateur 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

ssi

si et seulement si

ln

logarithme de base e

loga

logarithme de base a

infini
symbole dintgrale

n
P
i =0
n
Q
i =0

ai

somme par rapport lindice i , quivaut a 0 + a 1 + + a n

ai

produit par rapport lindice i , quivaut a 0 a 1 a n

n!

n factoriel, quivaut 1 2 n

gf

f puis g

0 df
, dx

Df

symboles de drive
domaine de dfinition dune fonction 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 fichier
1

print(Coucou!)

G. Faccanoni

Introduction au calcul scientifique


On peut dfinir le CALCUL SCIENTIFIQUE comme la discipline qui permet de reproduire sur un ordinateur un phnomne
ou un processus dcrit par un modle mathmatique.
A NALYSE MATHMATIQUE
P HNOMNE PHYSIQUE , CO NOMIQUE , BIOLOGIQUE . . .
Observation exprimentale
Modle conceptuel

C ALCULS

M ODLE MATHMATIQUE

Bien pos
Bien conditionn
Proprits de la solution (stabilit,. . .)
Solutions analytiques

Mise en quations :
quations diffrentielles, intgrales, stochastiques. . .

P ROGRAMMATION
A NALYSE NUMRIQUE

Langage de programmation (C,


C++, Fortran, Java, Python, Matlab, Scilab, Octave. . .)
Structure des donnes
Implmentation de lalgorithme
Optimisation

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, aux donnes, 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 fluidodynamique, 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 rflchie

Introduction au calcul scientifique

Jeudi 5 juin 2014

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 scientifique de bien connatre ces mthodes, leurs avantages et leurs
limites.
p

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 :
p
A = x 0 + 0 .
Cherchons une approximation de 0 . On a

A = (x 0 + 0 )2 = x 02 + 2x 0 0 + 20 .

Supposons que lerreur soit petite face x 0 , ce qui permet de ngliger le terme en 20 :
A ' x 02 + 2x 0 0 .
Remplaons lerreur 0 par un 00 , qui en est une approximation, de telle sorte que
A = x 02 + 2x 0 00 .
On en dduit que
00 =

A x 02
2x 0

donc la quantit

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 final de la vritable solution. On peut donc dfinir une suite, qui partir dune estimation initiale x 0 devrait en principe
converger vers la solution recherche. Cette suite est

1 A
x k+1 =
+ xk ,
x 0 > 0.
2 xk

x 1 x 0 + 00 =

Lalgorithme du calcul de la racine carre devient donc


p
1. Dmarrer avec une premire approximation x 0 > 0 de A.

2. chaque itration k, calculer la nouvelle approximation x k+1 = 21 xA + x k .


k
Ax 2

3. Calculer lerreur associe 0k+1 = 2x k+1 .


k+1
4. Tant que lerreur est suprieure un seuil fix, recommencer au point 2
Le tableau ci-dessous illustre quelques itrations de cet algorithme pour le cas o A = 5 :
k

xk

0k

0
1
2
3
4

2.0000000000
2.2500000000
2.2361111111
2.2360679779
2.2360679775

0.2360679775
0.0139320225
0.0000431336
0.0000000004
0.0000000000

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.

Les erreurs
Le simple fait dutiliser un ordinateur pour reprsenter des nombres rels induit des erreurs. Par consquent, plutt que
de tenter dliminer les erreurs, il vaut mieux chercher contrler leur effet. Gnralement, on peut identifier plusieurs
niveaux derreur dans lapproximation et la rsolution dun problme physique.

G. Faccanoni

Jeudi 5 juin 2014

Au niveau le plus lev, on trouve lerreur qui provient du fait quon a rduit la ralit physique un modle mathmatique. De telles erreurs limitent lapplication du modle mathmatique certaines situations et ne sont pas dans le champ
du contrle du Calcul Scientifique.
On ne peut gnralement pas donner la solution explicite dun modle mathmatique (quil soit exprim par une intgrale, une quation algbrique ou diffrentielle, un systme linaire ou non linaire). La rsolution par des algorithmes
numriques entrane immanquablement lintroduction et la propagation derreurs darrondi. De plus, il est souvent ncessaire dintroduire dautres erreurs lies au fait quun ordinateur ne peut effectuer que de manire approximative des
calculs impliquant un nombre infini doprations arithmtiques. Par exemple, le calcul de la somme dune srie ne pourra
tre accompli quen procdant une troncature convenable. On doit donc dfinir un problme numrique, dont la solution
diffre de la solution mathmatique exacte dune erreur, appele erreur de troncature. La somme des erreurs darrondis et
de troncature constitue lerreur de calcul. Lerreur de calcul absolue est la diffrence entre x, la solution exacte du modle
la solution obtenue la fin de la rsolution numrique, tandis que (si x 6= 0) lerreur de calcul relative
mathmatique, et x,
est dfinie par lerreur de calcul absolue divis par x. Le calcul numrique consiste gnralement approcher le modle
mathmatique en faisant intervenir un paramtre de discrtisation, que nous noterons h et que nous supposerons positif. Si, quand h tend vers 0, la solution du calcul numrique tend vers celle du modle mathmatique, nous dirons que le
calcul numrique est convergent. Si de plus, lerreur (absolue ou relative) peut tre majore par une fonction de C h p o
C est indpendante de h et o p est un nombre positif, nous dirons que la mthode est convergente dordre p. Quand, en
plus dun majorant, on dispose dun minorant C 1 h p (C 1 tant une autre constante ( C ) indpendante de h et p), on peut
remplacer le symbole par '.

G. Faccanoni

1. Rsolution dquations non linaires


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

Un des problmes classiques en mathmatiques appliques est celui de la recherche des valeurs pour lesquelles une
fonction donne sannule. Dans certains cas bien particuliers, comme pour les fonctions x 7 x + 1, x 7 cos(2x) ou encore
x 7 x 2 2x + 1, le problme est simple car il existe pour ces fonctions des formules qui donnent les zros explicitement.
Toutefois, pour la plupart des fonctions f : R R il nest pas possible de rsoudre lquation f (x) = 0 explicitement et il faut
recourir des mthodes numriques. Ainsi par exemple une brve tude de la fonction f (x) = cos(x) x montre quelle
possde un zro proximit de 0.7 mais ce zro ne sexprime pas au moyen de fonctions usuelles et pour en obtenir une
valeur approche il faut recourir des mthodes numriques.
Plusieurs mthodes existent et elles diffrent pas leur vitesse de convergence et par leur robustesse. Lorsquil sagit de
calculer les zros dune seule fonction, la vitesse de la mthode utilise nest souvent pas cruciale. Cependant, dans certains
applications il est ncessaire de calculer les zros de plusieurs milliers de fonctions et la vitesse devient alors un lment
stratgique. Par exemple, si on veut reprsenter graphiquement lensemble de points (x, y) du plan pour lequel x 2 sin(y) +
e x+y 7 = 0, on peut procder comme suit : pour une valeur donne de x, on cherche lensemble des valeurs de y pour
lesquelles x 2 sin(y)+e x+y 7 = 0, i.e. lensemble des zros de la fonction f (y) = x 2 sin(y)+e x+y 7 = 0, et on reprsente tous
les couples obtenus. On choisit une nouvelle valeur pour x et on rpte lopration. Pour obtenir une courbe suffisamment
prcise, il faut procder la recherche des zros dun trs grand nombre de fonction et il est alors prfrable de disposer
dune mthode rapide.
Soit f : R R une fonction continue donne dont on veut valuer numriquement un ou plusieurs zros xb, cest--dire
quon cherche tous les xb tels que f (b
x ) = 0. Les mthodes numriques pour approcher xb consistent :

localiser grossirement le (ou les) zro(s) de f en procdant ltude du graphe de f et/ou des valuations qui sont
souvent de type graphique ; on note x 0 cette solution grossire ;

construire, partir de x 0 , une suite x 1 , x 2 , x 3 , . . . telle que limk x k = xb o f (b


x ) = 0. On dit alors que la mthode est
convergente.

Dfinition 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 fini 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 multi-niveaux, 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.

Dfinition 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
|b
x x k+1 | C |b
x x k |p .
ou encore
lim

x k+1 xb
= C.
(x k xb)p

Si p = 1 (et C < 1) on parle de convergence linaire, si p = 2 on parle de convergence quadratique.

11

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

1.1. tape : localisation des zros


Dfinition
Soit f : R R une fonction. On dit que xb est un zro de f si f (b
x ) = 0. Il est dit simple si f 0 (b
x ) 6= 0, multiple sinon.
p
Si f est de classe C avec p N, on dit que xb est un zro de multiplicit p si
(

f (i ) (b
x) = 0
f

(p)

i = 0, . . . , p 1

(b
x ) 6= 0.

Pour localiser grossirement le (ou les) zro(s) de f on va dabord tudier de la fonction f , puis on va essayer dutiliser un
corollaire du thorme des valeurs intermdiaires et le thorme de la bijection afin de trouver un intervalle qui contient
un et un seul zro.

Thorme des valeurs intermdiaires

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 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) xb ]a, b[ tel que f (b
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 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.2. tape : 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 )


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 f : [a; b] R une fonction 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 1 et convergent
vers xb.

Dfinition 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 produisent une suite de sous-intervalles I k = [a k , b k ], k 0, avec I k I k1
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

1. Deux suites (u n )nN et (v n )nN sont adjacentes si


? (u n ) est croissante,
? (v n ) est dcroissante,
? limn (u n v n ) = 0.
Si deux suites sont adjacentes, elles convergent et ont la mme limite.

12

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

[a k ; b k ] en [a k ; c k ] et [c k ; b k ] o c k est
ck =
?

ak + bk
.
2

Dans la mthode de L AGRANGE, 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, autrement dit c k est solution de lquation
f (b k ) f (a k )
(c b k ) + f (b k ) = 0
bk ak
qui est
ck = bk

bk ak
a k f (b k ) b k f (a k )
f (b 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 )kN converge vers xb puisque la longueur de ces intervalles tend vers 0 quand k tend vers
+.
Soit lerreur maximale quon peut commettre, 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
f (a k )
xk ak
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
f (a k+1 )
x k+1 a k+1
f (b k+1 ) f (a k+1 )
k k +1
end while

On nest pas oblig de stoker tous les intervalles et les itres, on peut gagner de la mmoire en les crasant chaque
tape :
D ICHOTOMIE :
Require: a, b > a, , f : [a, b] R
a +b
x
2
while b a > or | f (x)| > do
if f (a) f (x) < 0 then
bx
else
ax
end if
a +b
x
2
end while

L AGRANGE :
Require: a, b > a, , f : [a, b] R
ba
x a
f (a)
f (b) f (a)
while b a > or | f (x)| > do
if f (a) f (x) < 0 then
bx
else
ax
end if
ba
x a
f (a)
f (b) f (a)
end while

Remarque

Avec la mthode de la dichotomie, les itrations sachvent la m-me tape quand |x m xb| |I m | < , o est une
tolrance fixe et |I m | dsigne la longueur de lintervalle I m . Clairement I k = ba
, donc pour avoir une erreur |x m xb| < ,
2k

G. Faccanoni

13

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

on doit prendre le plus petit m qui vrifie

m log2

ln(b a) ln(2)
ba
=
.

ln(2)

Notons que cette ingalit est gnrale : elle ne dpend pas du choix de la fonction f .

Exemple Fond dinvestissement


Un compte dpargne donne un taux T [0; 1] dintrt par an avec un virement annuel des intrts sur le compte. Cela signifie que si
le premier janvier 2014 on met v euros sur ce compte, la fin de la n-me anne (i.e. au 31 dcembre 2014 + n) on en retire v(1 + T )n
euros. On dcide alors dajouter au dbut de chaque anne encore v euros. Cela signifie que si on verse ces v euros le premier janvier
2014 + m avec 0 < m < n, au 31 dcembre 2014 + n ajoutent v(1 + T )nm euros. Si la fin de la n-me anne on en retire un capital de
M > v euros, quel est le taux dintrt annuel de cet investissement ?
la fin de la n-me anne, le capital vers au premier janvier 2014 est devenu v(1 + T %)n , celui vers au premier janvier 2015 est
devenu v(1 + T %)n1 . . . par consquente, le capital final M est reli au taux dintrt annuel T par la relation
M =v

n
X

(1 + T )k = v

k=1

(1 + T )n 1
1+T
=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 0 (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
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 quelle 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 37 itrations de la mthode de dichotomie, la
mthode converge vers 0.061402411536. On conclut ainsi que le taux dintrt T est approximativement gal 6.14%. Ce rsultat a t
obtenu en faisant appel la fonction dichotomie dfinie la page 24 comme suit :

a = 0.01 # T=1%
b = 0.1 # T=10%
tol = 1.0e-12
maxITER = 50
def f(x):
return 1000.*(1+x)/x*((1+x)**5-1.)-6000.
print dichotomie(f,a,b,tol,maxITER)

2
3
4
5
6
7
8

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 (x) = 39 + (43 + (39 5x)x)x

f (5) = 2

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

2
2.5

f (1) = 1

I 0 = [1; 5]
I 1 = [1; 3]
I 2 = [2; 3]
I 3 = [2; 2.5]

14

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires


y

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

f (5) = 2

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

2.11
2.3

f (1) = 1

I 0 = [1; 5]
I 1 = [1; 2.3 ]
I 2 = [2.11; 2.3 ]

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
xb. En fait, cette mthode ne prend pas suffisamment 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 xb ne soit le milieu de lintervalle
de recherche initial).

1.2.2. Mthode de la scante


Soit f : R R une fonction continue et soit xb [a, b] un zro de f .
La mthode de la scante est une variante de la mthode de L AGRANGE dans laquelle on ne demande plus ce que le
zro soit entre a k et b k . 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 k1 , f (x k1 )), i.e. on cherche x solution du systme linaire
(
f (x ) f (x
)
y = xk x k1 (x x k ) + f (x k ),
k

k1

y = 0,
ce qui donne
x = xk

x k x k1
f (x k ).
f (x k ) f (x k1 )

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

f (x k ),
x k+1 = x k
f (x k ) f (x k1 )
Cette mthode a ordre de convergence

p
1+ 5
2 .

1.2.3. Mthodes de point fixe


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[{0}]={1}".format(i,x))

on peut vrifier 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,

G. Faccanoni

15

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

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 fixe de la fonction cosinus.

Dfinition Point fixe

Soit : R R une fonction. Si xb R est tel que (b


x ) = xb, on dit que xb est un point fixe de (limage de xb 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 fixe 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
(Pb-1) chercher x tel que f (x) = 0
en un problme quivalent (i.e. admettant les mmes solutions)
(Pb-2) 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
(b
x ) = xb si et seulement si f (b
x ) = 0 dans [a; b] (on dit alors que le problme (Pb-2) est consistant avec le problme (Pb-1)).
Clairement, il existe une infinit 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.

Dfinition Mthode de point fixe

Supposons que xb R soit un point fixe de . La mthode de point fixe consiste en la construction dune suite (x k )kN
dfinie par rcurrence comme suit :
(
x0
donn,
x k+1 = (x k ) k N.
Naturellement une telle suite nest pas forcement convergente. Par contre, si elle converge, cest--dire si la suite x k a une
limite que nous notons `, et si est continue, alors cette limite est ncessairement un point fixe de puisque

` = lim x k+1 = lim (x k ) = lim x k = (`).


k

On utilise alors lalgorithme itratif suivant pour construire la suite (comme lordinateur ne peux pas construire une infinit
de termes, on calcul les premiers termes de la suite et on sarrte ds que la diffrence entre deux lments de la suite est
infrieure une tolrance > 0 donne) :
Require: x 0 , , : [a, b] R
k 0
x 1 x 0 + 2
while |x k+1 x k | > do
x k+1 (x k )
k k +1
end while
On va maintenant sintresser la convergence de la suite construite par une mthode de point fixe.

Thorme Convergence (globale) des itrations de point fixe

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 :
1. condition de stabilit : (x) [a, b] pour tout x [a, b]

16

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

x1
x3
x5
x7
x6
x4

x6
x5
x4
x3

x2

x2
x1

([a; b]) [a; b]


0 0 (x) < 1
convergence
a

x0

x1

x2

x 3 x 4x 5

b x

x0

x2

x 4x 6 x 5 x 3

b x

x1

([a; b]) [a; b]


1 < 0 (x) 0
convergence

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

2. condition de contraction stricte : il existe K [0; 1[ tel que |(x) (y)| K |x y| pour tout x, y [a, b]
alors
? est continue,
b dans [a, b],
? a un et un seul point fixe x
b pour tout choix de x 0 dans [a, b].
? la suite x k+1 = (x k ) converge vers x
Dmonstration.

Continuit La condition de contraction stricte implique que est continue puisque, si on prend une suite (y k )kN [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).

Existence Commenons par prouver lexistence dun point fixe de . La fonction g (x) = (x) x est continue dans [a, b]
et, grce la condition de stabilit, on a g (a) = (a) a 0 et g (b) = (b) b 0. En appliquant le thorme des
valeurs intermdiaires, on en dduit que g a au moins un zro dans [a, b], i.e. a au moins un point fixe dans [a, b].

Unicit Lunicit du point fixe dcoule de la condition de contraction stricte. En effet, si on avait deux points fixes distincts
xb1 et xb2 , alors

|b
x 1 xb2 | = |(b
x 1 ) (b
x 2 )| K |b
x 1 xb2 | < |b
x 1 xb2 |

ce qui est impossible.

Convergence Prouvons prsent que la suite x k converge vers lunique point fixe xb quand k tend vers + pour toute
donne initiale x 0 [a; b]. On a

0 |x k+1 xb| = |(x k ) (b


x )| K |x k xb|
o K < 1 est la constante de contraction. En itrant k + 1 fois cette relation on obtient
|x k+1 xb| K k+1 |x 0 xb|,
i.e., pour tout k 0

|x k+1 xb|
K k+1 .
|x 0 xb|

En passant la limite quand k tend vers + on obtient |x k+1 xb| tend vers zro.
Il est important de disposer dun critre pratique assurant quune fonction est contractante stricte. Pour cela, rappelons
quelques dfinitions.

Thorme
Si : [a; b] [a; b] est de classe C 1 ([a, b]) et si |0 (x)| < 1 pour tout x [a, b], alors la condition de contraction stricte est
satisfaite avec K = max|0 (x)|.
[a;b]

G. Faccanoni

17

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Dmonstration. Considrons la fonction affine g qui transforme lintervalle [0; 1] dans lintervalle [x; y] :
g : [0; 1] [x; y]
t 7 x + t (x y)
Alors
(x) (y) =

Z
x

0 () d =

Z
0

0 (g (t ))g 0 (t ) dt = (x y)

Z
0

0 (x + t (x y)) dt

et donc

Z 1
Z



1 0

0
(x) (y) = (x y)
(x y)
(x + t (x y)) dt K (x y) .

(x
+
t
(x

y))
dt

Le thorme de convergence globale assure la convergence, avec un ordre 1, de la suite (x k )kN vers le point fixe xb pour
tout choix dune valeur initiale x 0 [a; b]. Mais en pratique, il est souvent difficile de dterminer priori lintervalle [a; b] ;
dans ce cas, le rsultat de convergence locale suivant peut tre utile.

Thorme dO STROWSKI ou de convergence (locale) des itrations de point fixe


Soit [a; b] R et : [a; b] [a; b] une application de classe C 1 ([a; b]). Soit xb [a; b] un point fixe de . On peut distinguer
trois cas :
Soit |0 (b
x )| < 1. Par continuit de 0 il existe un intervalle [b
x ; xb + ] [a; b] sur lequel |0 (b
x )| < K < 1, donc est
contractante stricte sur cet intervalle. On a ncessairement ([b
x ; xb +]) [b
x ; xb +] et par consquent la suite
(x k )kN converge vers xb pour tout x 0 [b
x ; xb + ]. On dit que xb est un point fixe attractif. De plus,
? si 0 < 0 (b
x ) < 1 la suite converge de faon monotone, cest--dire lerreur x k xb garde un signe constant quand
k varie ;
? si 1 < 0 (b
x ) < 0 la suite converge de faon oscillante, cest--dire lerreur x k xb change de signe selon la parit
de k.

Si |0 (b
x )| > 1, alors il nexiste aucun intervalle [b
x ; xb + ] [a; b] tel que la suite (x k )kN converge vers xb pour tout
x 0 [b
x ; xb + ] lexception du cas x 0 = xb. On dit que
? si 0 (b
x ) > 1 la suite diverge de faon monotone,
? si 0 (b
x ) < 1 la suite diverge en oscillant.

xb est un point fixe rpulsif. De plus,

Si |0 (b
x )| = 1 on ne peut en gnral tirer aucune conclusion : selon le problme considr, il peut y avoir convergence ou divergence.

Exemple
b)| = | sin(xb)| '
? La fonction (x) = cos(x) vrifie toutes les hypothses du thorme dO STROWSKI : elle est de classe C (R) et |0 (x
0 (x
b
b
0.67 < 1, donc il existe par continuit un intervalle [c, d ] qui contient
x
tel
que
|
)|
<
1
pour
x

[c,
d
].
p
p
b1 p
? La fonction (x) = x 2 1 possde deux points fixes x
= (1 + 5)/2 et xb2 = (1 5)/2 mais ne vrifie lhypothse du thorme
dO STROWSKI pour aucun deux puisque |(xb1,2 )| = |(1 5)/2| > 1. Les itrations de point fixe ne convergent pas.
b = 0 comme point fixe. On a 0 (xb) = 1 et x k xb pour tout x 0 [1; 1] car
? La fonction (x) = x x 3 admet x
b pour tout k 1,
? si x 0 = 1 alors x k = x
? si x 0 ]1, 1[ alors on montre que x k ]1, 1[ pour tout k 1. De plus, la suite est monotone dcroissante si 0 < x 0 < 1, monotone
croissante si 1 < x 0 < 0 donc elle converge vers ` [1; 1]. Les uniques candidats limites sont les solutions de lquation ` = (`)

et par consquente x k 0.
b = 0 comme point fixe. nouveau 0 (xb) = 1 mais dans ce cas la suite diverge pour tout choix
? La fonction (x) = x + x 3 admet aussi x
de x 0 6= 0.

Le thorme dO STROWSKI dit que, de manire gnrale, la mthode de point fixe ne converge pas pour des valeurs arbitraires de x 0 , mais seulement pour des valeurs suffisamment proches de xb, cest--dire appartenant un certain voisinage
de xb. Au premier abord, cette condition semble inutilisable : elle signifie en effet que pour calculer xb (qui est inconnu), on
devrait partir dune valeur assez proche de xb. 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 fixe converge.

Proposition Calcul de lordre de convergence dune mthode de point fixe


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

18

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

Dmonstration. crivons le dveloppement de TAYLOR avec le reste de L AGRANGE de en x = xb :


(x) = (b
x) +

p
X
(i ) (b
x)
(p+1) ()
(x xb)i +
(x xb)p+1
i!
(p + 1)!
i =1

o est entre x et xb. Comme (b


x ) = xb et (i ) (b
x ) = 0 pour 1 i p, cela se simplifie et on a
(p+1) ()
(x xb)p+1 .
(p + 1)!

(x) = xb +

En valuant lexpression ainsi trouve en x k et sachant que (x k ) = x k+1 , on a alors


x k+1 xb =

(p+1) ()
(x k xb)p+1 .
(p + 1)!

Lorsque k +, x k tend vers xb et donc , qui se trouve entre x k et xb, tend vers xb aussi. Alors
x k+1 xb
(p+1) () (p+1) (b
x)
=
lim
=
.
p+1
k+ (x k x
k+ (p + 1)!
b)
(p + 1)!
lim

Pour un ordre p fix, la convergence de la suite vers xb est dautant plus rapide que

(p+1) (b
x)
(p+1)!

est petit.

Mthodes de point fixe particulirement connues

Soit f : [a, b] R une fonction continue (continment drivable pour la mthode de la corde 2 et la mthode de N EWb un zro de f . Supposons que lon connaisse une valeur x 0 proche de xb. Approcher les zros de f se ramne
TON ) et soit x
au problme de la dtermination des points fixes de la fonction , ce qui se fait en construisant la suite rcurrente
(

x 0 donn,
x k+1 = (x k ).

Pour choisir la fonction il est ncessaire de prendre en compte les informations donnes par les valeurs de f et, ventuellement, par sa drive f 0 ou par une approximation convenable de celle-ci (si f est diffrentiable). crivons pour
cela le dveloppement de TAYLOR de f en xb au premier ordre : f (b
x ) = f (x)+(b
x x) f 0 () o est entre xb et x. Le problme
chercher xb tel que f (b
x ) = 0
devient alors
chercher xb tel que f (x) + (b
x x) f 0 () = 0.
Cette quation conduit la mthode itrative suivante :
pour tout k 0, tant donn x k , dterminer x k+1 en rsolvant lquation f (x k )+(x k+1 x k )q k = 0, o q k est
gal f 0 (k ) (ou en est une approximation) avec k un point entre x k et x k+1 .
La mthode quon vient de dcrire revient chercher lintersection entre laxe des x et la droite de pente q k passant par
le point (x k , f (x k )), ce qui scrit sous la forme dune mthode de point fixe avec
x k+1 = (x k ) x k

f (x k )
,
qk

k 0.

Considrons maintenant quatre choix particuliers de q k et donc de qui dfinissent des mthodes clbres :
ba
f (b) f (a)

Mthode de la Corde 1 :

qk =

Mthode de la Corde 2 :

q k = f 0 (x 0 )

Mthode de N EWTON :

q k = f 0 (x k )

ba
f (x)
f (b) f (a)
f (x)
(x) = x 0
f (x 0 )
f (x)
(x) = x 0
f (x)
(x) = x

Proposition
Si la mthode de la corde converge, elle converge lordre 1 ; si la mthode de N EWTON converge, elle converge lordre
2 si la racine est simple, lordre 1 sinon.

G. Faccanoni

19

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Dmonstration.
f (b) f (a)
ba

(mthode 1) ou q k = f 0 (x 0 ) (mthode 2). Si f 0 (b


x ) = 0 alors 0 (b
x ) = 1 et on ne peut pas
0
assurer la convergence de la mthode. Autrement, la condition | (b
x )| < 1 revient demander que 0 < f 0 (b
x )/q k < 2.
Ainsi la pente de la corde doit avoir le mme signe que f 0 (b
x ) et, pour la mthode 1, lintervalle de recherche [a; b] doit
tre tel quel
f (b) f (a)
.
ba <2
f 0 (b
x)

Mthodes de la Corde qk =

La mthode de la corde converge en une itration si f est affine, autrement elle converge linairement, sauf dans le
f (b) f (a)
cas (exceptionnel) o f 0 (b
x ) = ba (mthode 1) ou f 0 (b
x ) = f 0 (x 0 ) (mthode 2), i.e. 0 (b
x ) = 0 (la convergence est
alors au moins quadratique).

Mthode de Newton Soit la mthode de N EWTON pour le calcul de xb zro de f :


(x) = x
?

Si f 0 (b
x ) 6= 0 (i.e. si xb est racine simple), on trouve
0 (x) = 1
00 (x) =

f (x)
.
f 0 (x)

( f 0 (x))2 f (x) f 00 (x) f (x) f 00 (x)


=
,
( f 0 (x))2
( f 0 (x))2

f 00 (x) f (x) f 000 (x)


f (x)( f 00 (x))2

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

0 (b
x ) = 0,
00 (b
x) =

f 00 (b
x)
.
0
f (b
x)

La mthode de N EWTON est donc dordre 2.


Si la racine xb est de multiplicit m > 1, alors la mthode nest plus du second ordre. En effet, f (x) = (x xb)m h(x)
o h est une fonction telle que h(b
x ) 6= 0. On a alors
(x xb)h(x)
f (x)
= 1
,
f 0 (x)
mh(x) + (x xb)h 0 (x)

h(x) m(m 1)h(x) + 2(x xb)h 0 (x) + (x xb)2 h 00 (x)


,
0 (x) =

2
mh(x) + (x xb)h 0 (x)
(x) = 1

0 (b
x) = 1

1
.
m

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

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

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 xb un zro simple de f , cest--dire f (b


x ) = 0 et f 0 (b
x ) 6= 0. Supposons que lon connaisse une valeur x k proche de xb. Pour calculer x k+1 on prend lintersection de laxe des abscisses avec
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 0 (x k )(x x k ) + f (x k ),
y = 0.

On obtient
x = xk

f (x k )
f 0 (x k )

ce qui correspond la mthode de N EWTON.

20

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

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

xb

x2 x1

x0

y = f 0 (x 0 )(x x 0 ) + f (x 0 )
Soit f : R R une fonction continue et soit xb [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 ) +
ba

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 0 (x k ) car on
f (b) f (a)
remplace f 0 (x k ) par ba . 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 0 (x 0 )(x x k ) + f (x k ),
y = 0,

ce qui donne
x = xk

f (x k )
f 0 (x 0 )

Dans cette variante on remplace f 0 (x k ) par f 0 (x 0 ).


y

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

f
f (b) f (a)

y = ba (x x 0 ) + f (x 0 )
f (b) f (a)
y = ba (x x 1 ) + f (x 1 )

x1 x2
xb

x0

xb

b
x

x1
x2
x0
x
y = f 0 (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
1
x 7 a
x
Selon la formule de N EWTON on a
x k+1 = (1 + a)x k + x k2 ,

G. Faccanoni

21

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

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 N EWTON 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 7 x e 1/x
En utilisant la mthode de N EWTON on trouve la formule itrative
f (x )
x e 1/xk
x e 1/xk
x k+1 = x k 0 k = x k k 1/x = x k x k2 k2
.
k
f (x k )
x + e 1/xk
1+ e
k

x k2

2. Si on pose y = 1/x, alors on a lquivalence

x = e 1/x

y = e y ,

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


g : R
+ R
y 7 1 ye y
En utilisant la mthode de N EWTON on trouve la formule itrative
g (y )
1 yk e yk
e y k y k
y k+1 = y k 0 k = y k
= yk +
g (y k )
(1 + y k )e y k
1 + yk
et x k = 1/y k .
3. Lquation (1.1) est encore quivalente chercher le zro de la fonction
h : R
+ R
x 7 1 x ln(x)
En utilisant la mthode de N EWTON on trouve la formule itrative
h(x )
1 x k ln(x k )
1 + xk
x k+1 = x k 0 k = x k +
=
.
h (x k )
1 + ln(x k )
1 + ln(x k )
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 :

x1 =
x2 =
x3 =

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

La solution est x ' 1,763 222 834 35.

Critres darrt
Supposons que (x n )nN soit une suite qui converge vers xb zro de la fonction f . Nous avons le choix entre deux types de
critres darrt pour interrompre le processus itratif dapproximation de xb : ceux bass sur le rsidu et ceux bass sur
lincrment. Nous dsignerons par une tolrance fixe pour le calcul approch de xb et par e n = xb 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 0 (b
x )| ' 1 alors |e n | ' : le test donne donc une indication satisfaisante de lerreur ;
? si | f 0 (b
x )| 1, le test nest pas bien adapt car |e n | peut tre assez grand par rapport (voir la figure 1.2 droite) ;
x )| 1 alors |e n | et le test est trop restrictif (voir la figure 1.2 gauche).
? si enfin | f 0 (b

Contrle de lincrment : les itrations sachvent ds que |x n+1 x n | < . Soit (x n )nN la suite produite par la
mthode de point fixe x n+1 = (x n ). Comme xb = (b
x ) et x n+1 = (x n ), si on dveloppe au premier ordre on sait
quil existe n I xb,xn tel que
e n+1 = xb x n+1 = (b
x ) (x n ) = 0 (n )(b
x x n ) = 0 (n )e n

22

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

y
f

f (x k )
f
xk

xb
ek

xk

xb

f (x k )

ek

F IGURE 1.2.: Deux situations pour lesquelles le rsidu e k = x k xb est un mauvais estimateur derreur : | f 0 (x)| 1 ( gauche),
| f 0 (x)| 1 ( droite), pour x dans un voisinage de xb.
o I xb,xn est lintervalle dextrmits xb et x k . En utilisant lidentit
e n = (b
x x n+1 ) + (x n+1 x n ) = e n+1 + (x n+1 x n ) = 0 (n )e n + (x n+1 x n ),
on en dduit que
en =

x n+1 x n
.
1 0 (n )

Par consquent, ce critre fournit un estimateur derreur satisfaisant si 0 (x) ' 0 dans un voisinage de xb. Cest le
cas notamment des mthodes dordre 2, dont la mthode de N EWTON. Cette estimation devient dautant moins
bonne que 0 sapproche de 1.
Notons dailleurs que si la mthode de point fixe converge avec K < 1 et si on considre le critre darrt |x n+1
x n | < alors

|e n | = |x n xb|
2.
1K
En effet, il suffit de considrer les ingalits suivantes :
|e n+1 | = |x n+1 xb| = |(x n ) (b
x )| K |x n xb| = K |e n |,
|e n+1 | = |x n+1 xb| = |x n+1 x n + x n xb| |x n xb| |x n+1 x n | = |e n | |x n+1 x n | > |e n |

G. Faccanoni

23

1. Rsolution dquations non linaires

TTTTTTTTTTTTT

Jeudi 5 juin 2014

Codes Python

TTTTTTTTTTTT

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 fixe, maxITER est le nombre maximal ditrations et tol est la tolrance.
Mthodes numriques.
1
2

#!/usr/bin/python
#-*- coding: Utf-8 -*-

3
4

import math, sys

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

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

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

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)

54
55
56
57
58

def newton(f,x_init,tol,maxITER):
k = 0
x = x_init
fx = f(x)

24

G. Faccanoni

Jeudi 5 juin 2014

59
60
61
62
63
64
65
66
67
68
69

1. Rsolution dquations non linaires

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

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

# CHOIX DU CAS TEST


exemple = 2

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

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

102
103
104
105
106
107

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
115

x_init = 0.

G. Faccanoni

25

1. Rsolution dquations non linaires

116

117

Jeudi 5 juin 2014

print "E) Zero calcule par la methode de \textsc{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)

118
119
120

121

x_init = 1.
print "G) Zero calcule par la methode de \textsc{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)

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
)

26

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

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

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

Exercices

Exercice 1.1

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

Dcrire les mthodes de la dichotomie et de L AGRANGE et les utiliser pour calculer le zro de la fonction
f (x) = x 3 4x 8.95
dans lintervalle [2; 3] avec une prcision de 102 .

C ORRECTION DE L EXERCICE 1.1. En partant de I 0 = [a, b], les mthodes de la dichotomie et de L AGRANGE produisent
une suite de sous-intervalles I k = [a k , b k ] avec I k I k1 , k 1, et tels que f (a k ) f (b k ) < 0. Pour cela, soit x k tel que I k =
[a k ; x k ] [x k , b k ], alors
(
[a k ; x k ] si f (a k ) f (x k ) < 0,
I k+1 =
[x k , b k ] sinon.
k 0
ak 2
bk 3
while |b k a k | > 0.01 do
x k g (a k , b k )
k k +1
if (a k3 4a k 8.95)(x k3 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
Lunique diffrence entre les deux mthode rside dans la construction de x k :
(a
x k = g (a k , b k ) =

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

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.

Dichotomie
signe de f (a k )

signe de f (x k )

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

L AGRANGE
signe de f (a k )

signe de f (x k )

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

xk
2.5000000
2.7500000
2.6250000
2.6875000
2.7187500
2.7031250
2.7109375

bk
3.00000
3.00000
2.75000
2.75000
2.75000
2.71875
2.71875

xk
2.596666667
2.690262642
2.702092263
2.703541518
2.703718378
2.703739951
2.703742582

bk
3.00000
3.00000
3.00000
3.00000
3.00000
3.00000
3.00000

Exercice 1.2
Soit f : [0; 1] R une fonction continue strictement dcroissante telle que f (0) = 1 et f (1) = 1.
1. Sachant que f (0.3) = 0, dterminer la suite des premiers quatre itrs de la mthode de la dichotomie dans lintervalle [0; 1] pour lapproximation du zro de f . On pourra utiliser le tableau ci-dessous :

G. Faccanoni

27

1. Rsolution dquations non linaires

k
0
1
2
3
4

ak
0

Jeudi 5 juin 2014

xk

bk
1

signe de f (a k )
+

signe de f (x k )

signe de f (b k )

2. Combien ditrations faut-il effectuer pour approcher le zro de f 25 prs ?


C ORRECTION DE L EXERCICE 1.2.
1. On a
k
0
1
2
3
4

ak
0
0
0.25
0.25
0.25

xk
0.5
0.25
0.375
0.3125
0.28125

bk
1
0.5
0.5
0.375
0.3125

signe de f (a k )
+
+
+
+
+

signe de f (x k )

signe de f (b k )

donc, aprs quatre itrations, le zro de f est approch par 0.28125.

2. Il faut effectuer au moins log2 10


= 5 itrations.
5
2

Exercice 1.3
Soit f : [0; 1] R une fonction continue strictement dcroissante telle que f (0) = 1 et f (1) = 1.
1. Sachant que f (0.6) = 0, dterminer la suite des premiers quatre itrs de la mthode de la dichotomie dans lintervalle [0; 1] pour lapproximation du zro de f . On pourra utiliser le tableau ci-dessous :
k
0
1
2
3
4

ak
0

xk

bk
1

signe de f (a k )
+

signe de f (x k )

signe de f (b k )

2. Combien ditrations faut-il effectuer pour approcher le zro de f 210 prs ?


C ORRECTION DE L EXERCICE 1.3.
1. On a
k
0
1
2
3
4

ak
0
0.5
0.5
0.5
0.5625

xk
0.5
0.75
0.625
0.5625
0.59375

bk
1
1
0.75
0.625
0.625

signe de f (a k )
+
+
+
+
+

signe de f (x k )
+

+
+

signe de f (b k )

donc, aprs quatre itrations, le zro de f est approch par 0.59375.

2. Il faut effectuer au moins log2 210


10 = 10 itrations.

Exercice 1.4
Dterminer la suite des premiers 3 itrs des mthodes de dichotomie dans lintervalle [1, 3] et de N EWTON 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 DE L EXERCICE 1.4. 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
a 0 +b 0
? on pose a 0 = a, b 0 = b, x 0 =
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

28

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

y
f (x)

y
f (x)

1
4

5
4
3
2

7
16

17
12
3
2

I0

I1

I2
I3
I4

(a) Mthode de la dichotomie.

(b) Mthode de N EWTON.

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


a k+1 +b k+1
.
2

et on pose x k+1 =
Voir la figure 1.3a.
? Mthode de N EWTON :
?

x k+1 = x k

x k2 2 1
f (x k )
1
= xk + .
=
x

k
f 0 (x k )
2x k
2
xk

Voir la figure 1.3b.


Donc on a le tableau suivant
x0

x1

x2

Dichotomie

3
2

= 1,5

5
4

Newton

3
2

= 1,5

17
12

x3
11
8

= 1,25
= 1,416

17
24

= 1,375

12
+ 17
' 1,4142156

On rappelle quavec la mthode de la dichotomie, les itration sachvent la m-me tape quand |x m xb| |I m | < , o
est une tolrance fixe et |I m | dsigne la longueur de lintervalle I m . Clairement I k = ba
, donc pour avoir |x m xb| < on
2k
doit prendre

ba
m log2
.

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


|x k xb| =

|x j xb|
10

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

Exercice 1.5
1. Donner la suite dfinissant la mthode de N EWTON pour la recherche dun zro de fonction. Justifier lexpression
de la suite.
2. crire lalgorithme pour une convergence 106 prs.
3. Dterminer lordre de convergence minimale de cette suite.
C ORRECTION DE L EXERCICE 1.5.
1. Supposons f C 1 et f 0 (b
x ) 6= 0 (cest--dire xb est une racine simple de f ). La mthode de N EWTON 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 0 (x k )(x x k )

G. Faccanoni

29

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

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


x k+1 = x k

f (x k )
.
f 0 (x k )

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

f (x)
.
f 0 (x)

Si xb est racine simple, cest--dire si f 0 (b


x ) 6= 0, on trouve g 0 (b
x ) = 0 et g 00 (b
x) =
0

f 00 (b
x)
f 0 (b
x)

: la mthode de N EWTON est donc

1
m

dordre 2. Si la racine xb est de multiplicit m > 1, alors g (b


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 N EWTON en modifiant la
mthode comme suit :
f (x k )
x k+1 = x k m 0
.
f (x k )

Exercice 1.6
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 vrifie | f (x k )| < 104 ).
p
k
ak
xk
bk
signe de f (a k )
f (x k )
signe de f (b k )
|x k 2|
0
0.00000
1.00000
2.00000

-1.00000
+
0.41421
1
..
.
2. On applique la mthode de N EWTON : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera au plus
petit k qui vrifie | f (x k )| < 104 ). Le point de dpart x 0 est donn.
p
k
xk
f (x k )
|x k 2|
0
1.00000
1
..
.
C ORRECTION DE L EXERCICE 1.6.
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 k1 , 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
while |x k2 2| > 0.0001 do

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

xk

b k+1 x k
else
a k+1 x k
b k+1 b k
end if

30

G. Faccanoni

Jeudi 5 juin 2014

k k +1
end while
k
ak
0 0.00000
1 1.00000
2 1.33333
3 1.40000
4 1.41176
5 1.41379
6 1.41414

1. Rsolution dquations non linaires

xk
1.00000
1.33333
1.40000
1.41176
1.41379
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 )
+
+
+
+
+
+
+

2. La mthode de N EWTON est une mthode de point fixe avec fonction ditration (x) = x
rithme suivant :
k 0
x k 1.00000
while |x k2 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

f (x)
f 0 (x)

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

ce qui donne lalgo-

p
|x k 2|
0.41421
0.08579
0.00246
0.00001

Exercice 1.7 volution dun capital


On investit un capital C 0 > 0. Le placement a un taux de 5% par an et des frais de gestion fixes de 50 euros qui sont
prlevs chaque anne.
1. Dcrire la suite rcurrente qui dcrit lvolution du placement.
2. Donner les points fixes du systme et indiquer sils sont attractifs ou rpulsifs.
3. tudier lvolution du capital au fil des ans selon la valeur de C 0 .
C ORRECTION DE L EXERCICE 1.7.
1. Notons u n le capital au dbut de la n-ime anne, alors on a
(
u0 = C 0 ,
un + 1 = (1 + 5%)u n 50 = 1.05u n 50, n N.
2. Il sagit dune suite rcurrente dfinie par u n+1 = (u n ) avec (x) = 1.05x 50. On a (x) = x ssi x = 1000 : lunique
point fixe du systme est x = 1000. Comme 0 (1000) = 1.05 > 1, il sagit donc dun point fixe rpulsif.
3. volution du capital au fil des ans selon la valeur de C 0 :
? si C 0 > 1000 alors u n +,
? si C 0 = 1000 alors u n = 1000 pour tout n N,
? si C 0 < 1000 alors u n .
y = (x)
y =x

1000

x 3x 2x 1x 0

G. Faccanoni

1000

x 0x 1x 2x 3

31

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Exercice 1.8 Dtermination des points fixes attractifs et rpulsifs


On considre des systmes dynamiques donns par la loi dvolution x 7 (x). Dans chaque cas dterminer les points
fixes et leur nature (sont-ils attractifs ou rpulsifs ?). Tracer le graphe de et quelques points de la suite.

: [0; 1] R

: [0; 1] R

1
x 7 x(1 x)
2

: R R

1
x 7 x(1 + x)
2

1
x 7 x(1 + x 2 )
2

C ORRECTION DE L EXERCICE 1.8.


2

(x) = 12 x(1 x) = x 2+x et 0 (x) = x + 21


?

Point fixe (dans [0; 1]) : ` = 0.


Nature : 0 (`) = 21 ] 1; 1[ donc ` est attractif.
y

y =x

x2 x1

x0

x
y = (x)

x 2 +x
2

et 0 (x) = x + 21
? Points fixes (dans [0; 1]) : `1 = 0 et `2 = 1.
1
? Nature : 0 (`1 ) = 2 ] 1; 1[ donc `1 est attractif, 0 (`2 ) =

(x) = 21 x(1 + x) =

3
2

> 1 donc `2 est rpulsif.


y = (x)

y =x

x3 x2 x1 x0

(x) = 21 x(1 + x 2 ) =

x 3 +x
2

et 0 (x) = 3x 2+1
? Points fixes (dans [0; 1]) : `1 = 0 et `2 = 1.
1
? Nature : 0 (`1 ) = 2 ] 1; 1[ donc `1 est attractif, 0 (`2 ) = 2 > 1 donc `2 est rpulsif.
y = (x)

y =x

x3 x2 x1 x0

Exercice 1.9 Points fixes o la drive vaut 1


On considre les systmes dynamiques sur [0; 1] donns par les lois dvolution suivantes :
1. (x) = x x 3
2. (x) = x + x 3

32

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

3. (x) = x + x 2
Dans chacun des cas, montrer que 0 est un point fixe du systme et que la drive de la loi dvolution en 0 est gale
1. Dans chacun des cas, tracer le graphe de la loi dvolution et quelques orbites (i.e. quelques points de la suite). Dans
quel cas le point fixe 0 est-il attractif ? Rpulsif ?
C ORRECTION DE L EXERCICE 1.9.
p
p
1. (x) = x x 3 = x(1 x)(1 + x) et 0 (x) = 1 3x 2 = (1 3x)(1 + 3x)
? Points fixes (dans [0; 1]) : ` = 0.
? Nature : 0 (`) = 1 donc on ne peut pas tablir directement la nature du point fixe.
y

y =x

x 3x 2 x 1

x0

x
y = (x)

On voit quil sagit dun point fixe attractif. Pour le dmontrer il suffit dtudier directement la suite dfinie par rcurrence
(
u 0 [0; 1]
u n+1 = (u n ), n N.
Si la suite converge, elle converge vers `.
On vrifie facilement que ([0; 1]) [0; 1] ainsi u n [0; 1] pour tout n N.
3
? u n+1 u n = u n
< 0 pour tout n N donc la suite est monotone dcroissante.
Conclusion : u n 0.
?

2. (x) = x + x 3 = x(1 + x 2 ) et 0 (x) = 1 + 3x 2


? Points fixes (dans [0; 1]) : ` = 0.
? Nature : 0 (`) = 1 donc on ne peut pas tablir directement la nature du point fixe.
y

y = (x)
y =x

x 0x 1

x2

On voit quil sagit dun point fixe rpulsif. Pour le dmontrer il suffit dtudier directement la suite dfinie par rcurrence suivante (on considre dfinie sur R+ )
(
u 0 [0; 1]
u n+1 = (u n ), n N.
Si la suite converge, elle converge vers `.
On vrifie facilement que (x) 0 pour tout x R+ ainsi u n 0 pour tout n N.
3
? u n+1 u n = u n
> 0 pour tout n N donc la suite est monotone croissante.
Conclusion : u n +.
?
?

3. (x) = x + x 2 = x(1 + x) et 0 (x) = 1 + 2x


? Points fixes (dans [0; 1]) : ` = 0.
? Nature : 0 (`) = 1 donc on ne peut pas tablir directement la nature du point fixe.

G. Faccanoni

33

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

y
y = (x)

x0 x1

y =x

x2

On voit quil sagit dun point fixe rpulsif. Pour le dmontrer il suffit dtudier directement la suite dfinie par rcurrence suivante (on considre dfinie sur R+ )
(
u 0 [0; 1]
u n+1 = (u n ), n N.
Si la suite converge, elle converge vers `.
On vrifie facilement que (x) 0 pour tout x R+ ainsi u n 0 pour tout n N.
? u n+1 u n = u n > 0 pour tout n N donc la suite est monotone croissante.
Conclusion : u n +.
?

Exercice 1.10
Pour approcher les racines relles de la fonction f : R R dfinie par f (x) = (x 2 3x + 2)e x on veut utiliser la mthode
de point fixe suivante :
(
x 0 donn,
x2 + 2
o
(x) =
.
3
x n+1 = (x n ) pour tout n N
1. Montrer quil existe deux racines relles `1 < `2 de f et les calculer.
2. Faire ltude graphique de la convergence de la mthode de point fixe et montrer que
? si x 0 ] 2; 2[ alors la suite converge vers `1 ,
? si x 0 = 2 alors x n = `2 pour tout n N ,
? si x 0 < 2 ou x 0 > 2 alors la suite diverge vers +.
3. Notons [a; b] lintervalle maximale contenant `1 pour lequel le thorme de point fixe sapplique. Calculer a et b
et expliquer pourquoi la suite converge vers `1 mme si x 0 ] 2; 2[\[a; b].
C ORRECTION DE L EXERCICE 1.10.
1. f (x) = (x 1)(x 2)e x donc f admet deux uniques racines relles `1 = 1 et `2 = 2.
2. Comparons , qui est une parabole convexe de sommet (0, 2/3), lidentit :
y = (x)
y

y =x

`2 = 2

`1 = 1

x0

34

x0

x0

x 1 x 2x 3

`1

x 4x 3x 2x 1

`2

x1 x2 x3

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

Ltude graphique montre que la suite converge quel que soit x 0 [2; 2]. Plus prcisment, on voit que
? si x 0 = 2 alors x 2 = 2 pour tout n N ,
? si x 0 ] 2; 1[ alors x n & 1 pour tout n N ,
? si x 0 = 1 alors x n = 1 pour tout n N ,
? si x 0 ] 1; 1[ alors x n % 1 pour tout n N ,
? si x 0 = 1 alors x n = 1 pour tout n N,
? si x 0 ]1; 2[ alors x n & 1 pour tout n N,
? si x 0 = 2 alors x 2 = 2 pour tout n N,
? si x 0 > 2 alors x n % +.
3. Lintervalle maximale pour appliquer
le thorme de point
fixe

est dfini comme le plus grand intervalle pour lequel


|0 (x)| < 1, i.e. lintervalle 23 ; 32 . On remarque que 23 ; 32 [2; 2]. Or, si x 0 ] 2; 3/2] ou x 0 [3/2; 2[, alors
x 1 = (x 0 ) < |x 0 | ]1; 2[ (car (x) < x lorsque x ]1; 2[) et on montre que la suite (x n )nN est monotone dcroissante et
minore par `1 donc convergente. Comme lunique limite possible est `1 on conclut que x n & 1.

Exercice 1.11
Considrons lquation x(1 + e x ) = e x .
1. Montrer que cette quation admet une unique solution relle ` dans [0; 1].
2. crire la mthode de N EWTON pour approcher la solution `.
3. Proposer une autre itration de point fixe pour approcher `. Montrer analytiquement que cette itration converge
vers ` pour tout x 0 [0; 1] et faire ltude graphique de la convergence.
C ORRECTION DE L EXERCICE 1.11.
1. Soit f : R R dfinie par f (x) = x(1 + e x ) e x . f (x) = 0 si et seulement si x est solution de lquation donne. f est de
classe C (R), f (0) = 1 < 0 et f (1) = 1 > 0 donc, daprs le thorme des valeurs intermdiaire, la fonction f admet
au moins une racine sur [0; 1]. De plus, f est monotone sur [0; 1] (car f 0 (x) = 1 + xe x > 0 pour tout x [0; 1]), donc
cette racine est unique.
2. Mthode de N EWTON :
(

x 0 [0; 1]
xn

)e
x n+1 = x n xn (1+e
1+x n e xn

3. On considre litration

x 0 [0; 1]

est une fonction croissante sur R car 0 (x) =


? Montrons que ([0; 1]) [0; 1] :
(

ex
(1+e x )2

x [0; 1]

continue et croissante

x n2 x n +1 x n
1+x n e xn e

(x) =

avec

x n+1 = (x n )
?

xn

ex
.
1 + ex

>0;

= (x) [(0); (1)] =

1 e
;
[0; 1];
2 1+e

est contractante stricte car |0 (x)| < 1 pour tout x R.


Daprs le thorme de convergence globale des itrations de point fixe, litration propose converge pour tout
x [0; 1]. De plus, 0 < 0 (x) < 1 pour tout x R, donc la convergence est monotone et du premier ordre.
Comparons lidentit :

y =x
y = (x)

x0

G. Faccanoni

x 1 x 2x 2x 1

x0

35

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Exercice 1.12
Pour calculer les racines de la fonction f (x) = x 3 x 2 + 8x 8 on utilise 4 mthodes de point fixe diffrentes dcrites par
les fonctions ditration suivantes :
1 (x) = x 3 + x 2 7x + 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

Montrer que ` = 1 est lunique racine relle de f .


tudier la convergence locale des mthodes de point fixe x k+1 = i (x k ) pour i = 1, . . . , 4.
C ORRECTION DE L EXERCICE 1.12. 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.
1. 01 (x) = 3x 2 + 2x 7 et 01 (1) = 8 : la suite diverge en oscillant ;
2. 02 (x) =

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

14
: la suite converge de faon oscillante ;
et 02 (1) = 49

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

4
10

: la suite converge de faon monotone ;

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


(3x 2 2x+8)2

et 04 (1) = 0 : la suite converge lordre au moins 2.

Dans le tableau suivant sont reportes les suites des itres obtenues par ces quatre mthodes.

x0
x1
x2
x3
x4
x5
x6

Mthode 3

Mthode 4

Mthode 1

Mthode 2

0.5000000000000000
0.9125000000000001
0.9897857421875000
0.9989578145726552
0.9998955643403695
0.9999895542527895
0.9999989554034564

0.500000000000000
1.032258064516129
1.000235245684712
1.000000012299503
1.000000000000000
1.000000000000000
1.000000000000000

0.5000000000000000
4.625000000000000
101.9160156250000
1.069697123778202 106
1.224001861234915 1018
1.833775789385161 1054
6.16649954570005210162

0.5000000000000000
1.050000000000000
0.9845143884892086
1.004312677086027
0.9987590594698483
1.000353832012369
0.9998988463640411

Exercice 1.13
Pour approcher les racines relles de la fonction
f : RR
x 7 x 3 x 2 1
on utilise trois mthodes de point fixe :
(

x 0 donn,
x n+1 = i (x n ) pour tout n N

o
1 (x) = x 3 x 2 + x 1,

2 (x) =

p
3

x 2 + 1,

3 (x) =

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

1. Montrer quil existe une unique racine relle ` de f . Montrer que ` [1; 2].
2. tudier la convergence locale des trois mthodes de point fixe et, si elles convergent, donner lordre de convergence.
3. Pour la deuxime mthode, faire ltude graphique de la convergence globale et tablir analytiquement pour
quelles valeurs de x 0 la suite converge.
C ORRECTION DE L EXERCICE 1.13.
1. On tudie brivement f :
? D f = R et f de classe C (R),
? limx f (x) = ,
? f 0 (x) = x(3x 2),
? f croissante pour x < 0 et x > 3/2,
dcroissante pour 0 < x < 2/3,
? maximum local en x = 0 et f (0) = 1 < 0,

36

minimum local en x = 2/3 et f (2/3) = 31/27 < 0,


f (1) = 1, f (2) = 3 et f 0 (x) = x(3x 2) > 0 pour tout
x [1; 2] : il existe une unique racine ` [1; 2] de f .

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires


y
2
1

1 `

2 x

1
2
3

2. Vrifions si on peut appliquer le thorme dO STROWSKI (attention : il ne sagit pas de vrifier si on peut appliquer
le thorme de point fixe sur lintervalle [1; 2] mais de vrifier sil existe un voisinage de ` tel que pour tout x 0 assez
proche de ` la mthode converge).
2.1. 1 (x) = x f (x) = 0 : la mthode est consistante. Comme 01 (`) = 3`2 2` + 1 = `(3` 2) + 1 > ` + 1 > 1, la
suite ne converge pas.
2`
2.2. 2 (x) = x f (x) = 0 : la mthode est consistante. Sachant que ` [1; 2] on a |02 (`)| = p
3
2
3

24/3
3

(` +1)2

<

4
p
3
3 22

< 1 donc la suite converge lordre 1 pour x 0 suffisamment proche de `.

2.3. 3 (x) = x f (x) = 0 : la mthode est consistante. 03 (`) =


2`(`2)
`(3`2)

6`2
` `(3`2)

(6`2 2`)(3`2 2`)(2`3 `2 +1)(6`2)


`2 (3`2)2

2`(`2)
6`2
`(3`2) 3 (`) `(3`2)

= 0 donc la suite converge au moins lordre 2 pour x 0 suffisamment proche de `. (Il sagit en
effet de la mthode de N EWTON).
3. Pour faire ltude globale de la convergence on essaye dappliquer le thorme de point fixe sur lintervalle [1; 2] mais
ici on peut facilement tendre ltude R.
On tudie donc brivement 2 pour pouvoir tracer son graphe et le comparer lidentit :
? D2 = R et 2 de classe C (R),
? limx 2 (x) = +,
2x
,
? 02 (x) = p
3
2
2
3

(x +1)

2 croissante pour x > 0,


dcroissante pour x < 0,
minimum locale en x = 0 et 2 (0) = 1,
? 2 (x) = x ssi f (x) = 0 donc il existe un unique ` [1; 2] tel que 2 (`) = `,
2(x 2 3)
p
? 00
2 (x) = 9 3 (x 2 +1)5 ,
p
p
2 convexe pour 3 <
px < 3, p
2 concave pour x < 3 et x > 3.
?

y =x

x0

x3 x2

x1

Ltude graphique suggre que la suite converge quel que soit x 0 R. Mieux encore, on voit que
? si x 0 > ` alors x n & ` pour tout n N,
? si 0 < x 0 < ` alors x n % ` pour tout n N,
? si ` < x 0 < 0 alors 0 < x 1 < ` et x n % ` pour tout n N ,
? si x 0 < ` alors x 1 > ` et x n & ` pour tout n N .
Pour prouver analytiquement la convergence pour tout x 0 R on va montrer que
|02 (x)| =

2
|x|
<1
p
3
3 (x 2 + 1)2

x R.

Comme 02 est une fonction impaire, il suffit de ltudier sur R+ .

G. Faccanoni

37

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Soit g : R+ R la fonction dfinie par g (x) = 02 (x).


? g (x) 0 pour tout x R+ ,
p
? g est croissante pour 0 < x < 3,
p
? dcroissante pour x > 3,
p
p
p
3
? g ( 3) = 1/( 2 3) < 1
donc 0 g (x) < 1 pour tout x R+ et alors |02 (x)| < 1
pour tout x R : la mthode converge pour tout choix du
point initial x 0 .

1
0

2
p
3

Exercice 1.14
Pour approcher les racines relles de la fonction f : R R dfinie par f (x) = x e (1+x) on utilise quatre mthodes de
point fixe :
(
x 0 donn,
x n+1 = i (x n ) pour tout n N
o
2 (x) = x 2 e (1+x) ,

1 (x) = e (1+x) ,

3 (x) = 1 ln(x),

1. Montrer quil existe une unique racine relle ` de f . Montrer que `

1
5; 2

4 (x) =

1+x
1 + e (1+x)

2. Montrer que les


quatre mthodes de point fixe sont consistantes avec la recherche du zro de f , i.e. montrer que
pour x 15 ; 12 on a
i (x) = x

f (x) = 0
i = 1, 2, 3, 4.
3. tudier la convergence locale des trois mthodes de point fixe (i.e. vrifier si on peut appliquer le thorme
dO STROWSKI) et, si elles convergent, donner lordre de convergence.
Attention : on ne demande pas la convergence globale,

autrement dit on ne demande pas de vrifier si on peut


appliquer le thorme de point fixe sur lintervalle 15 ; 12 mais de vrifier sil existe un voisinage de ` tel que pour
tout x 0 assez proche de ` la mthode converge.
4. Pour la premire mthode, faire ltude graphique de la convergence pour tout x 0 R et tablir analytiquement
pour quelles valeurs de x 0 la suite converge (i.e. trouver des intervalles pour lesquels le thorme de point fixe
sapplique).
C ORRECTION DE L EXERCICE 1.14.
1. On tudie brivement f :
? D f = R et f de classe C (R),
? limx f (x) = ,
? f 0 (x) = 1 + e (1+x) , f croissante pour tout x R,
1
1
1
1
1
1
? f ( 5 ) = 5 6/5 < 0, f ( 2 ) = 2 3/2 > 0,
e
e
0
f (x) > 0 pour tout x R :
il existe une unique racine ` [1/5; 1/2] de f .

y
f ( 21 )
f ( 15 )

1
5`
1
2

2. 2.1. 1 (x) = x ssi x = e (1+x) ssi f (x) = 0.


2.2. 2 (x) = x ssi x = x 2 e (1+x) ssi x = 0 ou 1 = xe (1+x) ssi x = 0 ou 1 (x) = x ssi x = 0 ou f (x) = 0.
2.3. 3 nest dfinie que pour x > 0 et 3 (x) = x ssi x = 1 ln(x) ssi (1 + x) = ln(x) ssi 1 (x) = x ssi f (x) = 0.
2.4. 4 (x) = x ssi x =

1+x
1+e (1+x)

ssi xe (1+x) = 1 ssi 1 (x) = x ssi f (x) = 0.

3. 3.1. |01 (`)| = e (1+`) = ` [1/5; 1/2] donc la suite converge lordre 1 pour x 0 suffisamment proche de `.
3.2. Sachant que ` > 1/5 on a |02 (`)| = (2 + `)`e (1+`) >
3.3.

11 6/5
25 e

> 1 donc la suite ne converge pas.

Sachant que ` < 1/2 on a |03 (`)| = 1/` > 2 donc la suite ne converge pas.
(1+`)

1`e
1
3.4. 04 (`) = (1+e
(1+`) )2 = 4 (`) 1+e (1+`) ` =
2 pour x 0 suffisamment proche de `.

`
1+e (1+`)

` = 4 (`)` = `` = 0 donc la suite converge au moins lordre

4. Le graphe de 1 sobtient partir de celui de e x en faisant une symtrie par rapport laxe des ordonnes (ce qui
donne le graphe de e x ) suivie de la translation vers la gauche dune unit. Si on na pas observ ce comportement,
on peut tudier brivement 1 pour pouvoir tracer son graphe et le comparer lidentit :

38

G. Faccanoni

Jeudi 5 juin 2014


?
?
?
?
?
?
?

1. Rsolution dquations non linaires

D1 = R et 1 de classe C (R),
1 (x) > 0 pour tout x R,
limx 1 (x) = +,
limx+ 1 (x) = 0+ ,
01 (x) = 1 (x) < 0 pour tout x R : 1 dcroissante pour tout x R,
1 (x) = x ssi f (x) = 0 donc il existe un unique ` [0.2; 0.5] tel que 1 (`) = `,
001 (x) = 1 (x) : 1 convexe pour tout x R.
y

y =x

`
x0

x2 x3

x1

Ltude graphique suggre que la suite converge quel que soit x 0 R. Mieux encore, on voit que x n > 0 pour tout
n N .
Pour prouver cela on vrifie si
|01 (x)| < 1,
x R.
Comme 01 (x) = 1 (x), on a |01 (x)| < 1 ssi x > 1 donc la condition de contraction stricte nest pas satisfaite. Voyons
si on peut appliquer le thorme au moins pour x > 1. On a 1 (] 1; +[) =]0; 1[] 1; +[ donc 1 est stable sur
] 1; +[ et contractante stricte. Le thorme de point fixe permet alors de conclure que la mthode de point fixe
converge pou tout x 0 ] 1; +[.
Que peut-on dire si x 0 1 ? Dans ce cas le thorme de point fixe ne sapplique pas. Cependant on a x 1 = 1 (x 0 )
]0; +[] 1; +[ et le thorme de point fixe sapplique partir de x 1 .
On conclut que la mthode 1 converge vers lunique point fixe de 1 pour tout x 0 R.

Exercice 1.15

1m

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. crire la mthode de N EWTON pour le calcul
approch de la distance entre les deux murs.

d
C ORRECTION DE L EXERCICE 1.15.

1 +(1c)

1 +c
2
.
12 +(1c)2

,
2

c =
c =

=p

p d
,
9d 2
p d
.
4d 2

On a alors
p
9 d 2 = p 23 2 ,
1 +c
p
4 d2 = p 2
2

2
a

1m

p
22 d 2
1

En utilisant la similarit des triangles rectangles qui ont


hypotnuses respectivement 3 et 2 on a les deux quations :
p 2 2
3 d = 3 = p 3 ,
2
2
1
b

c
d

1
1
+p
= 1.
Il reste rsoudre p
4 d2
9 d2
Posons f (d ) = p 1 2 + p 1 2 1. partir de d 0 donn dans lintervalle ]0; 2[, la mthode de N EWTON construit une suite
4d
9d
(d k )kN par la rcurrence suivante
p 1
+ p 1 2 1
f (d k )
4d 2
9d
d k+1 = d k 0
= dk
.
f (d k )
p d
p d
+
2 3
2 3
(4d )

G. Faccanoni

(9d )

39

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

Pour que cette suite converge il faut choisir d 0 dans un intervalle [a; b] ]0; 2[ tel que d k

f (d k ) 0
< 1 pour tout
0
f (d k )

x [a; b].

Exercice 1.16
Soit f , g : [a; b] R deux fonctions monotones de classe C 1 ([a; b]). On suppose quil existe un et un seul ` [a; b] tel que
f (`) = g (`). partir de
x0 0 [a; b], on construit une suite (x n )nN par la relation f (x n+1 ) = g (x n ) pour n N.
g (`)
1. Montrer que si f 0 (`) < 1 alors il existe un intervalle [; ] [a; b] tel que x n ` pour tout x 0 [; ].
0
g (`)
2. Dans le cas o f 0 (`) > 1, proposer une mthode itrative convergente pour calculer `.
C ORRECTION DE L EXERCICE 1.16.
1. La fonction f est inversible donc la mthode donne correspond une mthode de point fixe x n+1 = (x n ) o =
f 1 g : [a; b] [a; b] est une fonction de classe C 1 ([a; b]) et 0 (x) =

g 0 (x)
.
f 0 ( f 1 (g (x)))

Donc 0 (`) =

g 0 (`)
f 0 ( f 1 (g (`)))

g 0 (`)
.
f 0 (`)

Si

|g (`)/ f (`)| < 1 alors, pour le thorme dO STROWSKI, il existe un intervalle [; ] [a; b] tel que x n ` pour tout
x 0 [; ].
0

2. Si |g 0 (`)/ f 0 (`)| > 1, il suffit de construire la suite (x n )nN par la relation f (x n ) = g (x n+1 ) pour n N et appliquer le
raisonnement du point prcdant.

Exercice 1.17

Lobjectif de cet exercice est de dterminer les zros de la fonction f : [ 2 ; ] R dfinie par
f (x) =

p
x

3
sin(x) +
.
2
6
2

1. Montrer quil existe deux solutions ` < 0 et `+ > 0 de lquation f (x) = 0 pour x [ 2 ; ].
2. Peut-on appliquer la mthode de la bissection pour calculer les deux racines ? Pourquoi ? Dans le cas o cest
possible, estimer le nombre minimal ditrations ncessaires pour calculer le(s) zro(s) avec une tolrance =
1010 aprs avoir choisi un intervalle convenable.
3. crire la mthode de N EWTON pour la fonction f . laide du graphe de la fonction f , dduire lordre de convergence de la mthode pour les deux zros.
C ORRECTION DE L EXERCICE 1.17.
1. tude de la fonction f :

? f est classe C ([ 2 ; ]) ;
p

?
?
?
?
?
?

f ( 2 ) = 1 23 12
0.12785 < 0, f (0) = 6 23 0.34244 < 0, f () = 2
3 2 1.2284 > 0 ;
1
0
f (x) = 2 cos(x) ;
f est croissante sur [ 2 ; 3 ] [ 3 ; ], dcroissante sur [ 3 ; 3 ] ;
x = 3 est un maximum local et f ( 3 ) = 0 ; x = 3 est un minimum local et f ( 3 ) < 0 ;
f 00 (x) = sin(x) ;
f est concave sur [ 2 ; 0], convexe sur [0; ].

y
f (x)

3
`

`+

Par consquence ` = 3 est lunique solution de lquation f (x) = 0 pour x [ 2 ; 0] et il existe un et un seul `+
solution de lquation f (x) = 0 pour x [0; ]. On peut mme amliorer lencadrement et conclure que `+ [ 3 ; ].
2. La mthode de dichotomie ne peut pas tre utilise pour approcher ` car il est impossible de trouver un intervalle
]a, b[ R sur lequel f (a) f (b) < 0. En ce qui concerne lapproximation de `+ , en partant de [a, b] = [ 3 ; ], la mthode

de dichotomie converge en log2 ba


35 itrations vers la valeur 2.246005589.

40

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

3. La mthode de N EWTON est une mthode de point fixe


(

x k+1 = (x k ),
x 0 donn,

avec lapplication dfinie par (x) = x

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

p
x k 2 sin(x k ) + 3 3
f (x k )
x k+1 = x k 0
= xk
.
f (x k )
1 2 cos(x k )
laide du graphe de la fonction f , on voit que la mthode converge vers `+ quel que soit x 0 [/2; /3] avec
un ordre de convergence quadratique et converge vers ` quel que soit x 0 [/3; ] avec un ordre de convergence
linaire (car f (` ) = f 0 (` ) = 0).

Exercice 1.18 (Python)


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
N EWTON. Pourquoi cette mthode nest-elle pas prcise quand = 2 ?

C ORRECTION DE L EXERCICE 1.18.

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

x +e x

et sinh(x) =

e x e x
2

donc
limx f (x) = +
? f 0 (x) = sinh(x) sin(x) et f 0 (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 00 (x) = cosh(x) cos(x) > 0 pour tout x 6= 0.
Par consquence,
? pour = 1, la fonction na pas de zro rel,
b = 0 et il est de multiplicit quatre (cest--dire f 2 (b
? pour = 2 il ny a que le zro x
x ) = f 20 a(b
x ) = f 200 (b
x ) = f 2000 (b
x ) = 0 et
(I V )
f 2 (b
x ) 6= 0),
? pour = 3, f 3 admet deux zros distincts, un dans lintervalle ] 3, 1[ et lautre dans ]1, 3[.
?

y
y = f 1 (x)
y = f 2 (x)
y = f 3 (x)

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 xb = 1.85792082914850 avec f 3 (b
x ) ' 3.6 1012 . De mme, en
prenant [a, b] = [1, 3], la mthode de dichotomie converge en 34 itrations vers la valeur xb = 1.85792082914850 avec
f 3 (b
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 xb = 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 N EWTON 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.
Voici les instructions :
130
131

def f(x):
return math.cosh(x)+math.cos(x)-gamma

132
133

maxITER = 100

134
135

gamma = 3

G. Faccanoni

41

1. Rsolution dquations non linaires

136
137
138
139
140

141

142
143
144
145

146

tol = 1.0e-15
a = -3.
b = -1.
x_init = -1.
print "Zero calcule par la
tol,maxITER)
print "Zero calcule par la
x_init,tol,maxITER)
a = 1.
b = 3.
x_init = 1.
print "Zero calcule par la
tol,maxITER)
print "Zero calcule par la
x_init,tol,maxITER)

Jeudi 5 juin 2014

methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,


methode de \textsc{Newton} a partir du point x_0 =",x_init," : ", newton(f,

methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,


methode de \textsc{Newton} a partir du point x_0 =",x_init," : ", newton(f,

147
148
149
150
151

152
153

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

Exercice 1.19 quation dtat dun gaz (Python)


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 coefficients qui dpendent du gaz considr, N est le nombre de molcules contenues dans le volume
V et k = 1.380 650 3 1023 J K1 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 coefficients a et b prennent les valeurs 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 .

C ORRECTION DE L EXERCICE 1.19. 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 0 (V ) = p aN 2 /V 2 + 2abN 3 /V 3 = p + aN 2 (2bN /V 1)/V 2
p
? f 0 (V ) = 0 si et seulement si
V 3 V = 2bN donc pour aucun V > 0.
aN 2
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

162
163
164
165

tol = 1.0e-12
left = 0.01
right = 0.06

166
167

print "Zero calcule par la methode de dichotomie dans lintervalle [", left, ",", right,"] : ", dichotomie
(f,left,right,tol,maxITER)

42

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

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

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

A x k2
2

k = 0, 1, 2, . . .

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

p
A soit A.

p
2. On
p considre le cas o A ]0, 4[. Montrer quil existe > 0 tel que, si |x 0 A| alors la suite x k converge vers
A.
p
p
3. Vrifier
graphiquement que si x 0 est proche de A mais diffrent de A, alors la suite x k ne converge pas vers
p
A.
4. Vrifier 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 efficace pour calculer la racine carre dun nombre positif A.

C ORRECTION DE L EXERCICE 1.20.


1. Supposons que x k converge vers `. En passant la limite dans la formule de rcurrence on obtient
` = `+

A `2
,
2

p
cest--dire `2 = A et donc ` = A.
2. La mthode peut scrire sous la forme dune mthode de point fixe o la fonction est dfinie par
A x2
.
2
p
p
0
Si A ]0, 4[ et ` = A, puisque 0 (x)
p= 1 x, alors | (`)| = |1 A| < 1 : on
p peut appliquer le thorme dO STROWSKI
donc il existe > 0 tel que, si |x 0 A| alors la suite x k converge vers A.
p
3. On a reprsent dans la figurepci-dessousple graphe de la fonction lorsque A = 1/2. Si on choisit x 0 < Apalors
la suite divergepvers ; si A < x 0 < A alors la suite converge (de manire monotone croissante) vers p A ; si
p
A < x 0p< 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 .
(x) = x +

y
y =x
p

A
x5

p
A

x4
x0 x1 x2

x 3x

x4

x2

p
2+ A
x

x1

p
A

4. Soit f la fonction dfinie 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

x k2 A
f (x k )
=
x

,
k
f 0 (x 0 )
2x 0

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

Si on choisit x 0 = 1, cette mthode scrit donc


x k+1 = x k

x k2 A
f (x k )
=
x

,
k
f 0 (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.

G. Faccanoni

43

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

5. Si on choisit la mthode de N EWTON pour rsoudre f (x) = 0 avec f (x) = x 2 A, on a


x k2 A
f (x k )
=
x

,
k
f 0 (x k )
2x k

x k+1 = x k

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

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

Exercice 1.21
Soit f : R R la fonction dfinie par f (x) = x 3 2. On veut approcher le zro de f par la mthode de point fixe suivante :
(

x 0 donn,

(1.2)

x k+1 = g (x k ) pour tout k 0,


avec g : R R la fonction dfinie par

2
g (x) = (1 )x 3 + 1
x + 2( 1) + 2 ,
3
3x

R.

1. Pour quelles valeurs du paramtre la mthode de point fixe (1.2) est-elle consistante (i.e. est un point fixe de
g) ?
2. Pour quelles valeurs du paramtre la mthode de point fixe (1.2) est dordre 2 ?
3. Existe-t-il des valeurs du paramtre pour lesquelles la mthode de point fixe (1.2) est-elle dordre 3 ?
C ORRECTION DE L EXERCICE 1.21. Comme est le zro de f , on a 3 = 2.
1. La mthode de point fixe (1.2) est consistante pour tout R car

2
2
(3 2)

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

= 3(1 )2 + 1 = (1 )(32 + 1)
3 33

donc la mthode de point fixe (1.2) est au moins dordre 2 si = 1.


3. Pour que la mthode de point fixe (1.2) soit dordre 3 il faudrait g 0 () = g 00 () = 0. Puisque g 0 () = 0 si et seulement si
= 1 et g 100 () = 4
6= 0, il nest pas possible davoir une convergence dordre suprieur 2.
4

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

0
[0, ]

2. On considre la mthode de point fixe suivante :


(

x 0 [0, ],
x k+1 = g (x k ) pour tout k 0,

(1.3)

avec g : [0, ] R la fonction dfinie par g (x) = 1 14 cos(x).


2.1. tudier graphiquement la convergence de cette mthode.
2.2. Montrer rigoureusement que la mthode converge pour tout 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 `|
pour approcher ` 103 prs ?

44

1C . Quelle valeur de faut-il choisir

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

C ORRECTION DE L EXERCICE 1.22.


1. Soit f : [0, ] R la fonction dfinie par f (x) = 1 14 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 0 (x) = 14 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 ]

[0, ]

1

0, 2

`k

4, 2

3
4, 8

3
8

5
16

Lerreur quon obtient aprs 3 itrations est au plus gale la largeur de lintervalle [a 3 ; b 3 ], cest--dire infrieure
ba
= 8 .
23
2. On considre la mthode de point fixe de fonction ditration g .
2.1. tude graphique de la convergence :
y

g est de classe C , g (0) = 3/4, g () = 5/4, g 0 (x) = 41 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

xx1x22 x 1

x0

2.2. g ([0, ]) = [3/4, 5/4] [0, ] et |g (x)| 1/4 < 1 : la mthode de point fixe converge vers ` pour tout x 0 [0, ].
0

2.3. Pour tout k N il existe k compris entre ` et x k tel que |x k `| = |g (x k1 )g (`)| = |g 0 (k )||x k1 `|

4k

1
4k

|x 0 `|

. Donc, pour approcher ` 103 prs, il faut prendre le plus petit k N qui vrifie k log4 (103 ) 5.9, i.e.
k = 6.
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 `|

|x k+1 x k |
.
1 C
1 C

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

Exercice 1.23
On considre le problme du calcul de ` [0, ] tel que ` = 1 + 12 sin(`).
1. Montrer quon peut utiliser la mthode de la dichotomie pour approcher `. Que vaut lapproximation de ` aprs 3
itrations ?
2. On considre la mthode de point fixe suivante :
(

x 0 [0, ],
x k+1 = g (x k ) pour tout k 0,

(1.4)

avec g : [0, ] R la fonction dfinie par g (x) = 1 + 21 sin(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.

2.4. Montrer que si on utilise le critre darrt |x k+1 x k | alors |x k+1 `| 1C


. 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 DE L EXERCICE 1.23.


1. Soit f : [0, ] R la fonction dfinie par f (x) = 1+ 12 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 0 (x) = 12 cos(x)1 < 0, ce zro est unique. On peut alors utiliser la mthode de la dichotomie pour approcher
` et lon a

G. Faccanoni

45

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

[a k , b k ]

[0, ]

1

0, 2

`k

2
4, 2

3
3
8 ,2

3
8

7
16

2. On considre la mthode de point fixe de fonction ditration g .


2.1. tude graphique de la convergence :
y

g est de classe C , g (0) = g () = 1, g 0 (x) = 12 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 0 (x)| 1/2 < 1 : la mthode de point fixe 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 k1 )g (`)| = |g 0 (k )||x k1 `|

2k

. Donc, pour approcher ` 10


k = 12.

1
2k

|x 0 `|

prs, il faut prendre le plus petit k N qui vrifie k log2 (10 ) 11.7, 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 `| 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.24
Le but de cet exercice est de calculer la racine cubique dun nombre positif a. Soit g la fonction dfinie sur R+ par
1 a
2
g (x) = x +
3
3 x2

(a > 0 fix).

1. Faire ltude complte de la fonction g .


2. Comparer g lidentit.
3. Soit la suite (x n )nN dfinie par
x n+1 = g (x n ),
laide des graphe de g et de lidentit sur
quement la convergence.

R+ ,

x 0 > 0.

dessiner la suite (x n )nN sur laxe des abscisses. Observer graphi-

4. Justifier 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 dfini par la suite (x n )nN qui permet de dterminer

p
3

a une prcision de 106 .

7. Expliciter la mthode de N EWTON pour la recherche du zro de la fonction f dfinie par f (x) = x 3 a. Que
remarque-t-on ?
C ORRECTION DE L EXERCICE 1.24.
1. tude de la fonction g : R+ R dfinie par g (x) = 23 x + 13 xa2 :
? g (x) > 0 pour tout x R+ ;
? lim g (x) = lim g (x) = + ;
x+
g (x)
= 2 et lim g (x) 23 x
lim
x+ x 3 x+
g 0 (x) = 23 1 xa3 ;
x0+

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

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

46

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

p
3

y
i (x)

i (x)

g (x)
y = 32 x

g (x)

p
3

p
3

x0

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

p
3

x4 x3

x2

x1

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

F IGURE 1.4.: Exercice 1.24

p
3

g 0 (x)

g (x)

p
3

2. Graphe de g compar au graphe de i (x) = x : voir la figure 1.4a. On vrifie analytiquement quil existe une et une
seule intersection entre la courbe dquation y = g (x) et la droite dquation y = x :
g (x) = x

2
1 a
x+
=x
3
3 x2

x 3 = a.

3. tude graphique de la convergence de la mthode de point fixe : voir la figure 1.4a.


p
p
4. On en dduit que pour tout x > 0 on a g (x) 3 a. Donc, pour tout k > 0, x k = g (x k1 ) 3 a. Vrifions les hypothses
du thorme de point fixe qui fournit une condition suffisante de convergence de la suite :
p
p
p
p
p
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) ;
3
1 p
4.2. g C ([ a, +[) ;
p
4.3. pour tout x dans [ 3 a, +[ on a

2
a
|g 0 (x)| = 1 3 < 1
3
x
donc g est contractante.
p
p
Alors la mthode converge vers xb point fixe de g . De plus, pour tout x 0 [ 3 a, +[ on a xb = g (b
x ) xb = 3 a : la
mthode permet donc de calculer de faon itrative la racine cubique de a.
5. tant donn que
g 0 (b
x ) = 0,

g 00 (b
x) =

2a
6= 0
xb4

la mthode de point fixe converge lordre 2.


6. Algorithme de point fixe :
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 (b
x ) g (x k )| = |g 0 (z k )ek |

G. Faccanoni

47

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

avec z k compris entre xb et x k . Donc


|x k+1 x k | = |ek+1 ek | = |g 0 (z k ) 1|ek ' |g 0 (b
x ) 1|ek .
Puisque g 0 (b
x ) = 0, on a bien |x k+1 x k | ' ek .
7. La mthode de N EWTON est une mthode de point fixe avec g (x) = x
x k+1 = x k

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

x k3 a
f (x k )
1
2
a
a
=
x

= xk xk + 2 = xk + 2
k
2
f 0 (x k )
3
3
3x k
3x k
3x k

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

Exercice 1.25
On veut rsoudre lquation e x = x avec 0 < < 1.
1. Vrifier que cette quation admet une unique solution, note ` , dans R.
2. Soit g : R R la fonction dfinie par g (x) = e x . On dfinit la suite rcurrente
(
u0 R

(1.5)

u n+1 = g (u n ).

On veut montrer que u n converge vers ` . Pour cela, comparer dabord le graphe de g lidentit et observer
graphiquement la convergence, ensuite justifier mathmatiquement la convergence observe graphiquement.
3. crire la mthode de N EWTON pour rsoudre lquation e x = x avec 0 < < 1. Parmi la mthode de N EWTON et
la mthode de point fixe (1.5), laquelle faut-il prfrer vis--vis de la vitesse de convergence ?
C ORRECTION DE L EXERCICE 1.25.
1. Deux mthodes (quivalentes) possibles :
Mthode 1 : La fonction g : x 7 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 7 e x est positive pour tout x R tandis que la fonction x 7 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 7 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 figure 1.25. 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 0 (x)| nest pas borne pour tout x R (croissance exponentielle ). Plus particulirement, |g 0 (x)| < 1 ssi
e x > ssi x > ln()/. Comme 0 < < 1, on conclut que |g 0 (x)| < 1 pour tout x 0.
Cette tude prliminaire suggre dutiliser le thorme de point fixe dans lintervalle ]0; +[. On a
? g C (]0; +[),
? g (]0; +[) ]0; +[,
? |g 0 (x)| < 1 pour tout x ]0; +[,
on peut alors utiliser le thorme de point fixe pour conclure que la suite (u n )nN 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 )nN converge vers ` pour tout u 0 R.
3. Soit f (x) = e x x. La mthode de N EWTON (qui sapplique f et non g ) dfinit la suite rcurrente
(
u0 R
u n

e
u n
u n+1 = u n e
u n 1 .

(1.6)

La mthode de point fixe (1.5) nest que dordre 1 car g 0 (` ) 6= 0 tandis que la mthode de N EWTON, qui est encore
une mthode de point fixe, est dordre 2 (car est un zro simple).

48

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

i (x)

i (x)

`
0

` 1

g (x)
x

x0

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

x2

x3

x1

g (x)
x

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


fixe.

F IGURE 1.5.: Exercice 1.25

Exercice 1.26
Soit f une application de R dans R dfinie 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 xb comprise entre 0 et 1.
3. Soit la mthode de point fixe
(

x k+1 = (x k ),

(1.7)
x 0 ]0, 1[,
p
exp(x 2 )
. Examiner la convergence de cette mthode et en
avec lapplication de R dans R dfinie par (x) =
2
prciser lordre de convergence.
4. crire la mthode de N EWTON pour la recherche des zros de la fonction f .
5. Entre la mthode de N EWTON et la mthode de point fixe (1.7), quelle est la plus efficace ? Justifier la rponse.
C ORRECTION DE L EXERCICE 1.26. 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+
p
p
p
? f 0 (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 > ln 4 et
p
dcroissante pour 0 < x < ln 4.
On a
p
? une racine dans lintervalle ] , ln 4[,
p
? une racine dans lintervalle ] ln 4, 0[,
p
? une racine dans lintervalle ]0, ln 4[,
p
? une racine dans lintervalle ] ln 4, [.
Voir la figure 1.6a pour le graphe de f sur R.
2. Puisque f (0) = 1 > 0 et f (1) = e 4 < 0, pour le thorme des valeurs intermdiaires il existe au moins un xb ]0, 1[ tel
que f (b
x ) = 0. Puisque f 0 (x) = 2x exp(x 2 ) 8x = 2x(exp(x 2 ) 22 ) < 2x(e 4) < 0 pour tout x ]0, 1[, ce xb est unique.
Voir la figure 1.6b.
3. tude de la convergence de la mthode (1.7) :
3.1. pour tout x dans ]0, 1[ on a
s
0<

exp(x 2 )
<
4

e
<1
4

donc : ]0, 1[]0, 1[ ;


3.2. C 1 (]0, 1[) ;
3.3. pour tout x dans ]0, 1[ on a
p

x exp(x 2 )

| (x)| =
= x(x) < |x| < 1

2
0

donc est contractante.


Alors la mthode (1.7) converge vers xb point fixe de . De plus, pour tout xb ]0, 1[,
q
xb = (b
x ) 2b
x = exp(b
x 2 ) 4b
x 2 = exp(b
x 2 ) f (b
x ) = 0;

G. Faccanoni

49

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

y
f (x)

f (x)
1

p
ln 4

0
x

1
xb

4(1ln 4)

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

(b) Zoom.

F IGURE 1.6.: Exercice 1.26


y

xb

xb

xb

xb
0

xb

F IGURE 1.7.: Exercice 1.26 : convergence de la mthode de point fixe.


donc xb, point fixe de , est un zro de f .
tant donn que
0 (b
x ) = xb(b
x ) = xb2 6= 0,
la mthode de point fixe (1.7) converge seulement lordre 1.
4. La mthode de N EWTON est une mthode de point fixe avec (x) = x
x k+1 = x k

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

exp(x k2 ) 4x k2
exp(x k2 ) 4x k2
f (x k )
=
x

=
x

.
k
k
f 0 (x k )
2x k exp(x k2 ) 8x k
2x k (exp(x k2 ) 4)

xb

5. Puisque xb est une racine simple de f , la mthode de N EWTON converge lordre 2 tandis que la mthode de point
fixe (1.7) converge seulement lordre 1 : la mthode de N EWTON est donc plus efficace.

Exercice 1.27
On cherche valuer
dfinie par rcurrence

p
5 laide dun algorithme nautorisant que les oprations lmentaires. Soit (x n )nN la suite

x 0 = 1,
x n+1 =

50

10x n
x n2 + 5

n N.

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

y
p
5

i (x)

5
3

g (x)

i (x)

g (x)

p
5

x0

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

x1

x2

(b) tude graphique de la convergence de la


mthode de point fixe x k+1 = g (x k ).

F IGURE 1.8.: Exercice 1.27


p
1. Montrer que si la suite converge, alors elle converge vers 0 ou 5.
p
2. Soit la fonction g dfinie sur [1; 5] par g (x) = x10x
2 +5 . tudier g et la comparer lidentit.
p
3. Montrer que la suite (x n )nN est croissante et majore par 5. Conclure.
4. Dterminer lordre de convergence de cette suite.
C ORRECTION DE L EXERCICE 1.27.
1. Supposons quil existe ` R tel que x n `.
n+

p
p
Par dfinition de convergence on a ` = `10`
5 .
2 +5 et par consquent ` 5, 0,
? 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.
p
Comme x 0 = 1 > 0, alors x n > 0 pour tout n N et ` 0, 5 .
p
2. Soit la fonction g dfinie sur [1; 5] par g (x) = x10x
2 +5 . On tudie la fonction g :
p
? g (x) > 0 pour
p toutpx [1; 5] ;
? g (1) = 35 , g ( 5) = 5 ;
?

5
? g 0 (x) = 10 (xx2 +5)
2 ;

p
p
? g est croissante sur [1; 5[ et g 0 ( 5) = 0.
Graphe de g compar au graphe de i (x) = x : voir la figure 1.8a. On vrifie analytiquement
p 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.

p
p
p
p
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) = 5.
De plus, g (x) x car
10x
10x
g (x) = 2
p
= x,
x + 5 ( 5)2 + 5
par consquent la suite x k+1 = g (x k ) x k est croissante.
p
p
p
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,
p ce qui
implique quelle converge.
Comme
au
premier
point
on
a
montr
que
si
elle
converge
vers
`
alors
`

0, 5 , on
p
conclut que x n 5. Pour ltude graphique de la convergence de la mthode de point fixe voir la figure 1.8b.
n+

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

G. Faccanoni

51

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

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

Exercice 1.28
Lobjectif de cet exercice est de dterminer le zro dune fonction C 2 (R, R) vrifiant 2 < f 0 (x) < 1 sur R. On dfinit la
suite {x n }nN 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 dfinie par g (x) = x + f (x) vrifie
1 < 1 2 < g 0 (x) < 1 < 1

sur R.

4. En dduire la convergence de la suite {x n }nN si 0 < < 1 pour tout x 0 R.


5. La suite converge-t-elle pour = f 01(`) ?
6. Donner lordre de convergence de la suite {x n }nN pour 0 < < 1 en distinguant le cas =

1
.
f 0 (`)

7. Peut-on choisir = f 01(`) dun point de vue pratique ?


1
8. On choisit alors dapprocher = f 01(`) par n = f 0 (x

n)

et la suite {x n }nN est dfinie 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 }nN converge quel que soit x 0 R.
C ORRECTION DE L EXERCICE 1.28.
1. Puisque f est de classe C 2 (R, R) et f 0 (x) < 0 sur R alors f est monotone dcroissante.
De plus, puisque 2 < Rf 0 (x) < 1 sur R, onRobtient :
x
x
,
? si x > 0 alors f (x) = 0 f 0 (x) dx + f (0) < 0 1 dx + f (0) = x + f (0)
Rx 0
R0 0
R 0 x+
? si x < 0 alors f (x) = 0 f (x) dx + f (0) = x f (x) dx + f (0) > x 2 dx + f (0) = 2x + f (0)
+.
x

donc
lim f (x) = +

lim f (x) = .

x+

NB : seul la condition f 0 (x) < 1 permet de conclure car une fonction peut tre monotone dcroissante mais avoir
une limite finie !
2. Puisque lim f (x) = + > 0 et lim f (x) = < 0, pour le thorme des valeurs intermdiaires il existe au moins
x

x+

un ` R tel que f (`) = 0. Puisque f 0 (x) < 0 pour tout x R, ce ` est unique.
3. Considrons la fonction g dfinie par g (x) = x + f (x) alors g est de classe C 2 (R, R) et
g 0 (x) = 1 + f 0 (x)
Puisque f 0 (x) < 1 et 0 < < 1 on a
et puisque f (x) > 2 et 0 < < 1 alors

sur R.

g 0 (x) < 1 < 1

sur R

g 0 (x) > 1 2 > 1

sur R.

Autrement dit
|g 0 (x)| < 1

sur R.

4. Soit 0 < < 1. On tudie la suite


x n+1 = g (x n )
et on va vrifier quil sagit dune mthode de point fixe pour le calcul du zro ` de f .

52

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

4.1. On vrifie dabord que, si la suite converge vers un point fixe de g , ce point est bien un zro de f (ici le rciproque
est vrai aussi) : soit ` R, alors
` = g (`) ` = ` + f (`) 0 = f (`) f (`) = 0;
4.2. vrifions maintenant que la suite converge vers un point fixe de g (et donc, grce ce quon a vu au point
prcdant, elle converge vers lunique zro de f ) :
4.2.1. on a videmment que g : 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 0 (x)| < 1, i.e. que g est contractante.
Alors la suite x n+1 = g (x n ) converge vers ` point fixe de g et zro de f .
5. Si = f 01(`) alors
x n+1 = g (x n ) = x n
qui converge car 2 < f 0 (`) < 1 ssi

1
2

f (x n )
,
f 0 (`)

< < 1 et donc on rentre dans le cas de 0 < < 1.

6. tant donn que


g 0 (`) = 1 + f 0 (`)
la mthode de point fixe converge lordre 2 si f 0 (`) = 1,
? la mthode de point fixe converge lordre 1 si 2 < f 0 (`) < 0 mais f 0 (`) 6= 1,
? la mthode de point fixe ne converge pas si f 0 (`) < 2 ou f 0 (`) > 0.
tant donn que 2 < f 0 (`) < 1 et que 0 < < 1 on peut conclure que
1
? la mthode de point fixe converge lordre 2 si = f 0 (`) ,
?

la mthode de point fixe converge lordre 1 si 6= f 01(`) .

7. Dun point de vue pratique on ne peut pas choisir = f 01(`) car on ne connat pas `.
1
8. Si on choisit dapprocher = f 01(`) par n = f 0 (x

n)

et on considre la suite {x n }nN dfinie par

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

Exercice 1.29
Lobjectif de cet exercice est de dterminer le zro dune fonction f C 2 (R, R) vrifiant 1 < f 0 (x) < 2 sur R. On dfinit la
suite {x n }nN 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 dfinie 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 vrifie |g 0 (x)| < 1 sur R. En dduire la convergence de la suite {x n }nN pour
tout ]0; 1[ quel que soit x 0 R.
3. Donner lordre de convergence de la suite {x n }nN en fonction de ]0; 1[.
4. Comme dun point de vue pratique on ne peut pas choisir = f 01(`) , on va lapprocher par n =
la suite {x n }nN dfinie par
x n+1 = x n n f (x n ).

1
f 0 (x n )

et on obtient

Quel est le nom de cette mthode itrative ? Montrer que la suite {x n }nN converge quel que soit x 0 R.
C ORRECTION DE L EXERCICE 1.29.
1. Puisque f est de classe C 2 (R, R) et f 0 (x) > 0 sur R alors f est monotone croissante.
De plus, puisque 1 < f R0 (x) < 2, on obtient
:
Rx
x
? si x > 0 alors f (x) = 0 f 0 (x) dx > 0 1 dx = x
+,
x+
Rx 0
R0 0
R0
? si x < 0 alors f (x) = 0 f (x) dx = x f (x) dx < x 2 dx = 2x
.
x

donc
lim f (x) =

G. Faccanoni

lim f (x) = +.

x+

53

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

NB : seul la condition 1 < f 0 (x) < 2 permet de conclure car une fonction peut tre monotone croissante mais avoir
une limite finie !
Puisque lim f (x) = < 0 et lim f (x) = + > 0, pour le thorme des valeurs intermdiaires il existe au moins
x

x+

un ` R tel que f (`) = 0. Puisque f 0 (x) > 0 pour tout x R, ce ` est unique.
2. g est de classe C 2 (R, R). Puisque 1 < f 0 (x) < 2 et 0 < < 1 on a
1 < 1 2 < g 0 (x) = 1 f 0 (x) < 1 < 1
Autrement dit
|g 0 (x)| < 1

sur R.

On tudie alors la suite


x n+1 = g (x n )
et on va vrifier quil sagit dune mthode de point fixe pour le calcul du zro ` de f .
2.1. On vrifie dabord que, si la suite converge vers un point fixe de g , ce point est bien un zro de f (ici le rciproque
est vrai aussi) : soit ` R, alors
6=0

` = g (`) ` = ` f (`) 0 = f (`) f (`) = 0;


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

la mthode de point fixe converge lordre 1 si 6=

4. Dun point de vue pratique on ne peut pas choisir =


par n =

1
f 0 (x n )

1
,
f 0 (`)
1
.
f 0 (`)

1
f 0 (`)

car on ne connat pas `. Si on choisit dapprocher =

1
f 0 (`)

et on considre la suite {x n }nN dfinie 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 0 (x) < 2 alors 0 < n < 1 donc la suite {x n }nN converge quel que soit x 0 R.

Exercice 1.30
Soit g la fonction dfinie 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 )nN dfinie par
x n+1 = g (x n ),

x 0 > 0.

R+ ,

laide des graphe de g et de lidentit sur


dessiner la suite (x n )nN sur laxe des abscisses. Observer graphiquement la convergence. En particulier, montrer que cette suite est dcroissante partir du rang 1.
4. Expliciter (sans la vrifier) la condition ncessaire pour la convergence observe graphiquement.
5. crire lalgorithme dfini par la suite (x n )nN qui permet de dterminer le point fixe une prcision de .
6. Expliciter la mthode de N EWTON pour la recherche du zro de la fonction f dfinie par f (x) = x 3 + 4x 2 10. Que
remarque-t-on ?
7. Donner lordre de convergence de la suite.

54

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

y
y

i (x)

i (x)

g (x)
y = 32 x 49

g (x)

x0

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

x4 x3

x2

x1

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


fixe.

F IGURE 1.9.

C ORRECTION DE L EXERCICE 1.30.


1. tude de la fonction g : R+ R dfinie par g (x) =
? g (x) > 0 pour tout x R+ ;
? lim g (x) = lim g (x) = + ;
x+
g (x)
lim
= 23 et lim g (x) 23 x
x+ x
x+
3 +4x 2 10)
;
g 0 (x) = 2(3x+4)(x
x 2 (3x+8)2

2x 3 +4x 2 +10
3x 2 +8x

x0+

= 94 donc y = 23 x 49 est un asymptote ;

?
? 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 0 (x)

+
+

g (x)
m
2. Graphe de g compar au graphe de i (x) = x : voir la figure 1.9a. On vrifie analytiquement quil existe une et 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.

3. Pour ltude graphique de la convergence de la mthode de point fixe voir la figure 1.9b.
4. On en dduit que pour tout x > 0 on a g (x) m. Donc, pour tout k > 0, x k = g (x k1 ) m. Pour tudier la convergence
de la mthode vrifions si on peut appliquer le thorme de point fixe :
4.1. pour tout x dans [m, +[ on a g (x) > m donc g ([m, +[) [m, +[ ;
4.2. g C 1 ([m, +[) ;
2

(6x +8x)g (x)(6x+8)


4.3. pour tout x dans [m, +[, on a |g 0 (x)| =
< 1 alors g est contractante.
2
3x +8x

Si les conditions prcdentes sont vrifies alors la mthode converge vers m point fixe de g . De plus, pour tout
[m, +[ : = g () = m donc le point fixe de g est racine de f .

5. Algorithme de point fixe :


Require: x 0 > 0, g : x 7 g (x)

G. Faccanoni

55

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

while |x k+1 x k | > do


x k+1 g (x k )
k k +1
end while
6. La mthode de N EWTON est une mthode de point fixe avec g (x) = x
x k+1 = x k

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

x k3 + 4x k2 10
f (x k )
= g (x k )
=
x

k
f 0 (x k )
3x k2 + 8x k

autrement dit la mthode de point fixe assigne est la mthode de N EWTON.


7. tant donn que la mthode de point fixe donne est la mthode de N EWTON 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 (b
x ) g (x k )| = |g 0 (z k )ek |
avec z k compris entre m et x k . Donc
|x k+1 x k | = |ek+1 ek | = |g 0 (z k ) 1|ek ' |g 0 (m) 1|ek .
3x+4
0
Puisque g 0 (x) = 2 x 2 (3x+8)
2 f (x), alors g (m) = 0 donc on a bien |x k+1 x k | ' ek .

Exercice 1.31
q
On se propose de calculer 4 13 en trouvant les racines relles de lapplication f de R dans R dfinie par f (x) = x 4 31 .
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 xb comprise entre 0 et 1.
2. Soit g la fonction dfinie 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 )nN dfinie 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 )nN sur laxe des abscisses. Observer
graphiquement la convergence.
2.3. Justifier mathmatiquement la convergence observe graphiquement.
2.4. Calculer lordre de convergence de la suite.
2.5. crire lalgorithme dfini par la suite (x n )nN qui permet de dterminer

q
4

1
3

une prcision de .

3. Expliciter la mthode de N EWTON pour la recherche du zro de la fonction f .


4. Entre la mthode de N EWTON et la mthode de point fixe x k+1 = g (x k ), quelle est la plus efficace ? Justifier la
rponse.
C ORRECTION DE L EXERCICE 1.31.
1. f est paire ; comme f 0 (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 : xb ]0; 1[ et b
x ] 1; 0[.
2. On tudie la fonction g (x) =
2.1.

56

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

pour x 0.

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


q

2
q
5(9x 8 6x 4 +1)
4 1
4 1
5 3x 4 1
0
0
? g 0 (x) =
=
.
De
plus,
g
donc
g
(x)

0
pour
tout
x
]0;
1[
et
g
(x)
=
0
ssi
x
=
3 5x 4 +1
3
3 =
3(5x 4 +1)2
q
4 1
3.
q
q
320x 3 (3x 4 1)
10 3x 4 1 32x 3
20 0
32x 3
? Enfin, g 00 (x) = 3
donc g 00 (x) = 0 ssi x = 0 ou x = 4 13 , g est
4 +1)2 =
4 +1)3
3 g (x) (5x 4 +1)2 =
5x 4 +1
(5x
(5x
q
i q h
concave pour x 0; 4 13 , convexe pour x > 4 13 .

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

y
g (x)

i (x)
q
4

y = 35 x

1
3

q
4

1
3

q
4

1
3

g (x)

i (x)

x0 x1

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

x2

x3

x4

q
4

1
3

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

F IGURE 1.10.

?
?

Pour le graphe de g compar au graphe de i (x) = x pour x [0; 1] voir la figure 1.10a.
On vrifie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x) et
la droite dquation y = x :
g (x) = x

x(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 fixe voir la figure 1.10b.
2.3. tudions la convergence de la mthode. On remarque que
9x k4 + 5
x k+1
=
> 1 x k <
xk
3(5x k4 + 1)
donc la suite rcurrente
(

r
4

1
3

i q h
x 0 0; 4 13
x k+1 = g (x k )

est monotone croissante et majore par 4 13 : elle est donc convergente vers `
q
q
4 1
4 1
3 , on conclut quelle converge vers
3 . De mme, la suite rcurrente
(

x0

iq
4

q
4

1
3.

Comme ` = g (`) ssi ` =

1
3;0

x k+1 = g (x k )
q
q
est monotone dcroissante et minor par 4 13 : elle est donc convergente vers ` 4 13 . Comme ` = g (`) ssi
q
q
` = 4 13 , on conclut quelle converge vers 4 13 .
q
Par consquent, quelque soit le point initiale, la mthode de point fixe donne converge vers 4 13 point fixe de
g (et racine de f ).
Soulignons quon ne peut pas utiliser le thorme de point fixe pour prouver la convergence de la mthode car
g nest pas contractante sur [0; 1]. En effet, dans [0; 1] on a
|g 0 (x)| < 1 g 0 (x) < 1 5(3x 4 1)2 < 3(5x 4 + 1)2 15x 8 + 30x 4 1 > 0 x 4 > 1 +
q
8
x 4 +1
2.4. Si on pose xb = 4 13 alors g (b
x ) = xb, g 0 (b
=
x ) = 0, g 00 (b
x ) = 0 et g 000 (b
x ) = 320b
x 2 25bx(5bx22b
4 +1)4
suite converge lordre 3.

p
15 3
2

16
]0; 1[.
15

: on conclut que la

2.5. Algorithme de point fixe :


Require: x 0 > 0, g : x 7 g (x)

G. Faccanoni

57

1. Rsolution dquations non linaires

Jeudi 5 juin 2014

while |x k+1 x k | > do


x k+1 g (x k )
k k +1
end while
3. Entre la mthode de N EWTON et la mthode de point fixe x k+1 = g (x k ), la plus efficace est la mthode de point fixe
x k+1 = g (x k ) car elle est dordre 3 tandis que celle de N EWTON nest que dordre 2.

Exercice 1.32 (Python)


Comparer les mthodes de la dichotomie, de L AGRANGE et de N EWTON pour approcher la racine xb ' 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 N EWTON on
prendra x 0 = 0.75.

C ORRECTION DE L EXERCICE 1.32. On modifie les fonctions donnes la page 24 pour que les mthodes sarrtent lorsque
le nombre ditrations est gal maxITER :
1

import math, sys

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

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

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

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:

58

G. Faccanoni

Jeudi 5 juin 2014

1. Rsolution dquations non linaires

b = c
fb = fc
return a-fa*(b-a)/(fb-fa)

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

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)
k += 1
return x

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

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

69
70

exact = 0.5149332646611294

71
72
73
74
75
76

nITER = 10
tol = sys.float_info.epsilon
a = 0.
b = 1.5
x_init = 0.75

77
78
79
80
81
82

XXX
Dic
Lag
New

=
=
=
=

[]
[]
[]
[]

83
84
85
86
87
88
89
90

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 affiche enfin les erreurs absolues |b


x x maxITER | en fonction du nombre ditrations pour chaque mthode avec une
chelle logarithmique pour laxe des ordonnes.
91

from matplotlib.pylab import *

G. Faccanoni

59

1. Rsolution dquations non linaires

92
93
94
95
96
97

Jeudi 5 juin 2014

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

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.

60

G. Faccanoni

2. Interpolation

n
tant donn n + 1 points (x i , y i ) i =0 , trouver une fonction f : x 7 f (x) telle que f (x i ) = y i
Approcher une fonction f consiste la remplacer par une autre fonction dont la forme est plus simple et dont on
peut se servir la place de f . On verra dans le prochain chapitre quon utilise frquemment cette stratgie en intgration
Rb
Rb
numrique quand, au lieu de calculer a f (x) dx on calcule de manire exacte a (x) dx, o est une fonction simple
intgrer (par exemple polynomiale). Dans dautres contextes, la fonction f peut ntre connue que par les valeurs quelle
prend en quelques points particuliers. Dans ce cas, on cherche construire une fonction continue reprsentant une loi
empirique qui se cacherait derrire les donnes.

2.1. Interpolation polynomiale

n
tant donn n + 1 couples (x i , y i ) i =0 , le problme consiste trouver une fonction = (x) telle que (x i ) = y i ; on dit
alors que interpole lensemble de valeurs {y i }ni=0 aux nuds {x i }ni=0 . Les quantits y i reprsentent 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 et dinterpolation polynomiale par morceaux (ou dinterpolation
par fonctions splines) si est polynomiale par morceaux.
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.

Thorme Interpolation polynomiale


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.

2.1.1. Mthode directe (ou nave)


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 coefficients qui devront tre dtermins. Les (m + 1) relations (2.1) scrivent alors

a 0 + a 1 x 0 + . . . a n x 0m = y 0

a + a x + . . . a x m = y
0
1 1
n 1
1

.
.
.

m
an + a1 xm + . . . am xm
= ym

61

2. Interpolation

Jeudi 5 juin 2014

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


1 x 0 . . . x 0m
a0
y0
1 x

. . . x 1m

a1 y 1
1
.

(2.2)
..
..
.
. = . .
.
.
. .. ..
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 .

2.1.2. Mthode de Lagrange


Quand on crit le polynme P m dans la base canonique de Rm [x], le problme est de dterminer les (m + 1) coefficients
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),
autrement dit sil existe une base telle que les coordonnes du polynme dans cette base ne sont rien dautre que les valeurs
connues y 0 , y 1 , . . . , y m .
Pour trouver une telle base, commenons par imposer le passage du polynmes par les m + 1 points donns : les (m + 1)
relations (2.1) imposent la condition :
L i (x j ) =

(
1 si i = j
0 sinon

pour 0 i , j m,

ce qui donne
L i (x) =

m x x
Y
j
j =0 x i 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 )

j 6=i

Clairement, le numrateur de L i (x) est un produit de m termes (x x j ) avec i 6= j et est donc un polynme de degr m. Le
dnominateur est une constante et il est facile de vrifier que
? L i (x) Rm [x],
? L i (x j ) = 0 si i 6= j , 0 i m,
? L i (x i ) = 1.
P
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 satisPm
P
faite pour tout x R alors i =0 i L i (x j ) = 0 doit tre vraie pour tout j = 0, 1, . . . , m et puisque m
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.

Thorme Interpolation de L AGRANGE


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

m
X

y i L i (x) Rm [x]

i =0

o L i (x) =

m x x
Y
j
j =0
j 6=i

xi x j

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

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

1. La matrice .
.
.

.
.
.

sappelle matrice de VANDERMONDE.


.
.
.

m
1 x m ... x m

62

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

Exemple
Pour m = 2 le polynme de L AGRANGE 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
(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

P (x) = y 0

Remarque
Si m est petit il est souvent plus simple de calculer directement les coefficients a 0 , a 1 , . . ., a m avec la mthode nave en
rsolvant le systme linaire (2.2).
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 signifie chercher un polynme P m de degr m tel que
P m (x i ) = f (x i )

pour 0 i m.

(2.3)

La solution de ce problme est donc donne par


P m (x) =

m
X

f (x i )L i (x) Rm [x]

o L i (x) =

m x x
Y
j
j =0
j 6=i

i =0

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 dfinie par f (x) = e x . On cherche linterpolant de f aux points 1, 0, 1. On a


(x x 1 )(x x 2 )
(x x 0 )(x x 2 )
(x x 0 )(x x 1 )
+ 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 )

(x + 1)x
e 2
1
1
e
1 x(x 1) (x + 1)(x 1)
+
+e
=
1
x +

x + 1.
=
e
2
1
2
2e
2
2 2e

P (x) = f (x 0 )

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

G. Faccanoni

63

2. Interpolation

Jeudi 5 juin 2014

contenant les nuds distincts { x i }ni=0 , alors il existe I tel que lerreur dinterpolation au point x I est donne par
E n (x) f (x) P n (x) =
o n+1 (x)

m
Q
i =0

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

(x x j ).

Dmonstration. Le rsultat est videmment vrai si x concide avec lun des nuds dinterpolation car E n (x i ) = 0 pour
i = 0, 1, . . . , n. Autrement, soit x I fix, x 6= x i pour i = 0, . . . , n et dfinissons la fonction
G: I R
t 7 E n (t ) E n (x)

n+1 (t )
n+1 (x)

Puisque f C (n+1) (I ) et puisque n+1 est un polynme, G C (n+1) (I ) et possde au moins n + 2 zros distincts dans I . En
effet, les zros de G sont les n + 1 nuds x i et le point x car
n+1 (x i )
= 0,
n+1 (x)
n+1 (x)
G(x) = E n (x) E n (x)
= 0.
n+1 (x)

G(x i ) = E n (x i ) E n (x)

i = 0, . . . , n

Ainsi, daprs le thorme des valeurs intermdiaires, G 0 admet au moins n + 1 zros distincts et par rcurrence G ( j ) a au
moins n + 2 j zros distincts. Par consquent, G (n+1) a au moins un zro, quon note . Dautre part, puisque E n(n+1) (t ) =
f (n+1) (t ) et (n+1)
n+1 (x) = (n + 1)! on a
(n + 1)!
G (n+1) (t ) = f (n+1) (t ) E n (x)
n+1 (x)
ce qui donne, avec t = , lexpression voulue pour E n (x).
Dans le cas dune distribution uniforme de nuds, i.e. quand x i = x i 1 + h avec i = 1, 2, . . . , n et h > 0 et x 0 donns, on a
|n+1 (x)| n!
et donc
max|E n (x)|
xI

h n+1
4

maxxI | f (n+1) (x)| n+1


h
.
4(n + 1)

Attention Les dfauts de linterpolation polynomiale avec nuds quirpartis


Malheureusement, on ne peut pas dduire de cette relation que lerreur tend vers 0 quand n tend vers linfini, bien que
h n+1 /[4(n + 1)] tend effectivement vers 0. En fait, il existe des fonctions f pour lesquelles maxxI |E n (x)| +. Ce
n+

rsultat frappant indique quen augmentant le degr n du polynme dinterpolation, on nobtient pas ncessairement
une meilleure reconstruction de f .

Exemple Le contre-exemple de RUNGE


1
. La fonction f
1+x 2
(n)
est infiniment drivable sur [5, 5] et | f (5)| devient trs rapidement grand lorsque n tend vers linfini. Si on considre une dis-

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

tribution uniforme des nuds on voit que lerreur tend vers linfini quand n tend vers linfini. Ceci est li au fait que la quantit
n+1

h
maxx[5,5] | f (n+1) (x)| tend plus vite vers linfini que 4(n+1)
tend vers zro. La figure 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 figure 2.1b)

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 figures ont t obtenue

64

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

par les instructions suivantes :


1

from matplotlib.pylab import *

2
3
4
5
6
7
8
9
10
11
12

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

13
14
15

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

"Noeuds quirpartis"
1
2
3
4
5
6

x1
x2
x3
y1
y2
y3

=
=
=
=
=
=

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

7
8
9
10
11
12
13
14
15
16

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

17
18
19
20
21

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

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

3
4
5
6
7
8
9

x1
x2
x3
y1
y2
y3

=
=
=
=
=
=

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

10
11
12
13
14
15
16
17
18
19

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

20
21
22

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)

G. Faccanoni

65

2. Interpolation

Jeudi 5 juin 2014

1.0

1.0

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.0

0.0

f
p_3
p_5
p_10

0.2
0.4
4

f
p_3
p_5
p_10

0.2
0.4
4

(a) Distribution quirepartie des nuds

(b) Nuds de C HEBYSHEV-G AUSS -L OBATTO

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

axis([-5, 5, -0.5, 1])


show()

23
24

2.1.3. Stabilit de linterpolation polynomiale


Soit f : I R une fonction de classe C n+1 (I ) o I est le plus petit intervalle contenant les nuds distincts { x i }ni=0 .
Quarrive-t-il aux polynmes dinterpolation si, au lieu des valeurs exactes f (x i ), on considre des valeurs perturbes f(x i ),
i = 0, . . . , n ? Ces perturbations peuvent provenir derreurs darrondi ou dincertitudes dans les mesures. Soit P n le polynme
exact interpolant les valeurs f (x i ) et Pn le polynme exact interpolant les valeurs f(x i ). En notant x le vecteur dont les
composantes sont les nuds dinterpolation, on a
max|P n (x) Pn (x)| = max|
xI

n
X

xI i =0

( f (x i ) f(x i ))i (x)| n (x) max | f (x) f(x)|


0i n

o
n (x) max

n
X

xI i =0

|i (x)|

est appele constante de L EBESGUE (noter que cette constante dpend des nuds dinterpolation). Des petites perturbations sur les valeurs nodales f (x i ) entranent des petites variations sur le polynme dinterpolation quand la constante
de L EBESGUE est petite. La constante de L EBESGUE mesure donc le conditionnement du problme dinterpolation. Pour
linterpolation de L AGRANGE avec des nuds quirpartis
n (x) '

2n+1
(ln(n) + )ne

o e ' 2.71834 (nombre de N EPER) et ' 0.547721 (constante dE ULER). Quand n est grand, linterpolation de L AGRANGE
sur des nuds quirpartis peut donc tre instable.

Exemple
Dans la Figure 2.2 on a trac
? la fonction f (x) = sin(2x),
? le polynme de L AGRANGE `21 qui interpole f en 22 nuds quirpartis sur lintervalle [1; 1], cest--dire lensemble

21
x i = 1 + 0.1i , y i = f (x i ) i =0 ,

21
? le polynme de L AGRANGE p 21 qui interpole lensemble perturb (x i , yi ) i =0 o yi est une perturbation alatoire des valeurs
exactes y i de sorte que
max |y i yi | 103 .

i =0,...,21

On remarque que la diffrence entre ces deux polynmes est bien plus grande que la perturbation des donnes. Plus prcisment
max|P n (x) Pn (x)| ' 6.212
xI

66

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

F IGURE 2.2.: Effet de perturbations sur linterpolation de L AGRANGE en des nuds quirpartis.
et lcart est particulirement important aux extrmits de lintervalle. Remarquer que dans cet exemple la constante de L EBESGUE
est trs grande : n (x) ' 19274.
Cette figure a t obtenue par les instructions :
1
2

from matplotlib.pylab import *


import random

3
4
5
6
7
8
9
10
11
12
13

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

14
15
16

def f(x):
return sin(2*math.pi*x)

17
18
19
20

x1 = linspace(-1,1,22)
y1 = f(x1)
y2 = [yi+(2.*random.random()-1.)*0.001 for yi in y1]

21
22
23
24
25
26
27
28

# Calcul des polynomes en plusieurs points dun intervalle pour affichage


t = arange(-1,1,.01)
l1t = []
l2t = []
for k in t:
l1t.append(lagrange(k,x1,y1))
l2t.append(lagrange(k,x1,y2))

29
30
31

print max(abs(y1-y2))
print max([abs(l1t[i]-l2t[i]) for i in range(len(t))])

32
33
34
35
36

plot(t,f(t),r-,t,l1t,b:,t,l2t,g:)
legend([f,l_21,p_21],loc=lower center)
axis([-1, 1, -3, 4])
show()

2.1.4. Mthode de Newton


On a vu que calculer le polynme dinterpolation de L AGRANGE dans la base canonique de Rn [x] comporte la rsolution
dun systme linaire dordre n. On a alors introduit une autre base de Rn [x], la base des polynmes de L AGRANGE, qui

G. Faccanoni

67

2. Interpolation

Jeudi 5 juin 2014

permet de calculer directement le polynme dinterpolation car les coordonnes du polynme cherch dans cette base
ne sont rien dautres que les valeurs y i . Cependant, cette mthode nest pas la plus efficace dun point de vue pratique.
En effet, pour calculer le polynme dinterpolation dun ensemble de n + 1 points on doit calculer les
n + 1 polynmes
{ L 0 , L 1 , L 2 , . . . , L n }. Si ensuite on ajoute un point dinterpolation, on doit calculer les n + 2 polynmes L 0 , L 1 , L 2 , . . . , L n+1
qui diffrent tous des n + 1 calculs prcdemment. La mthode de N EWTON est base sur le choix dune autre base de sort
ce que lajout dun point comporte juste lajout dune fonction de base.
Considrons la famille de polynmes { 0 , 1 , 2 , . . . , n } o
0 (x) = 1,
k (x) =

k1
Y

(x x i ) = (x x k1 )k1 (x),

k = 1, . . . , n.

i =0

Il est facile de vrifier que


? k (x) Rn [x],
? la famille { 0 , 1 , 2 , . . . , n } est gnratrice de Rn [x]
? la famille { 0 , 1 , 2 , . . . , n } est libre.
Par consquent, la famille { 0 , 1 , 2 , . . . , n } forme une base de Rn [x].
Si on choisit comme base de Rn [x] la famille { 0 , 1 , 2 , . . . , n }, le problme du calcul du polynme dinterpolation p n
est alors ramen au calcul des coefficients { 0 , 1 , 2 , . . . , n } tels que
p n (x) =

n
X

i i (x).

i =0

Si on a calcul les n + 1 coefficients { 0 , 1 , 2 , . . . , n } et on ajoute un point dinterpolation, il ny a plus a calculer que le


coefficient n+1 car la nouvelle base est dduite de lautre base en ajoutant simplement le polynme n+1 .
Commenons par chercher une formule qui permet de calculer ces coefficients. Le polynme dinterpolation dans la
base de N EWTON valu en x 0 donne
n
X
p n (x 0 ) =
i i (x 0 ) = 0
i =0

donc 0 = y 0 . Le polynme dinterpolation dans la base de N EWTON valu en x 1 donne


p n (x 1 ) =

n
X

i i (x 1 ) = 0 + 1 (x 1 x 0 )

i =0

donc 1 =

y 1 y 0
x 1 x 0 . Le polynme dinterpolation dans la base de

p n (x 2 ) =

n
X

N EWTON valu en x 2 donne

i i (x 2 ) = 0 + 1 (x 2 x 0 ) + 2 (x 2 x 0 )(x 2 x 1 )

i =0

donc

y y

1
0
y 2 0 1 (x 2 x 0 ) y 2 y 0 x1 x0 (x 2 x 0 )
2 =
=
=
(x 2 x 0 )(x 1 x 0 )
(x 2 x 0 )(x 1 x 0 )

y 2 y 1
x 2 x 1

y y

x11 x00

x2 x0

Pour calculer tous les coefficients on va alors introduire la notion de diffrence divise :

Dfinition
Diffrences divises

Soit (x i , y i ) i =0 un ensemble de n + 1 points distincts.


? La diffrence divise dordre 1 de x i 1 et x i est
f [x i 1 , x i ]
?

y i y i 1
.
x i x i 1

La diffrence divise dordre n des n+1 points x 0 , . . . , x n est dfinie par rcurrence en utilisant deux diffrences divises
dordre n 1 comme suit :
f [x 0 , . . . , x n ]

f [x 1 , . . . , x n ] f [x 0 , . . . , x n1 ]
xn x0

Pour expliciter le processus rcursif, les diffrences divises peuvent tre calcules en les disposant de la manire suivante dans un tableau :

68

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

f [x i 3 , x i 2 , x i 1 , x i ]

f [x i 4 , x i 3 , x i 2 , x i 1 , x i ]

x0

y0

x1

y1

f [x 0 , x 1 ]

x2

y2

f [x 1 , x 2 ]

f [x 0 , x 1 , x 2 ]

x3

y3

f [x 2 , x 3 ]

f [x 1 , x 2 , x 3 ]

f [x 0 , x 1 , x 2 , x 3 ]

x4

y4

f [x 3 , x 4 ]

f [x 2 , x 3 , x 4 ]

f [x 1 , x 2 , x 3 , x 4 ]

f [x 0 , x 1 , x 2 , x 3 , x 4 ]

..
.

..
.

..
.

..
.

..
.

..
.

..
.

...

..

Thorme

Formule de N EWTON
n

Soit (x i , y i ) i =0 un ensemble de n + 1 points distincts. Le polynme dinterpolation de L AGRANGE p n sous la forme de


N EWTON est donn par
n
X
i (x) f [x 0 , . . . , x i ].
p n (x) =
i =0

Comme le montre la dfinition des diffrences divises, des points supplmentaires peuvent tre ajouts pour crer
un nouveau polynme dinterpolation sans recalculer les coefficients. De plus, si un point est modifi, il est inutile de
recalculer lensemble des coefficients. Autre avantage, si les x i sont quirpartis, le calcul des diffrences divises devient
nettement plus rapide. Par consquent, linterpolation polynomiale dans une base de N EWTON est privilgie par rapport
une interpolation dans la base de L AGRANGE pour des raisons pratiques.

Exemple

On veut calculer le polynme dinterpolation de de la fonction f (x) = sin(x) en les 3 points x i = 2 i avec i = 0, . . . , 2. On cherche donc
p 2 R2 [x] tel que p 2 (x i ) = sin(x i ) pour i = 0, . . . , 2.
Mthode directe. Si on crit p 2 (x) = 0 + 1 x + 2 x 2 , on cherche 0 , 1 , 2 tels que

1
1


0
0
2
1 = 1

4
0
2 2

En rsolvant ce systme linaire on trouve 0 = 0, 1 = 4 et 2 = 42 .

Mthode de Lagrange. On a
x(x )
4
= x(x ).
p 2 (x) = y 0 L 0 (x) + y 1 L 1 (x) + y 2 L 2 (x) =
2

Mthode de Newton. On commence par construire le tableau des diffrences divises :


i

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

42

On a alors

p 2 (x) =

2
X

i (x) f [x 0 , . . . , x i ]

i =0

= 0 (x) f [x 0 ] + 1 (x) f [x 0 , x 1 ] + 2 (x) f [x 0 , x 1 , x 2 ]


4
2
1 (x) 2 2 (x)

4
2

= x 2x x

4
= 2 x(x ).

Maintenant on veut calculer le polynme dinterpolation de la mme fonction en les 4 points x i = 2 i avec i = 0, . . . , 3, i.e. on a juste
ajout le point x = 3/2. On cherche donc p 3 R3 [x] tel que p 3 (x i ) = sin(x i ) pour i = 0, . . . , 3.

G. Faccanoni

69

2. Interpolation

Jeudi 5 juin 2014

Mthode directe. Si on crit p 3 (x) = 0 + 1 x + 2 x 2 + 3 x 3 , on cherche 0 , 1 , 2 , 3 tels que

2
4
2

3
2

92
4


0
0
3

8 1 = 1
3 2 0
273
3
1
8

16
, 2 = 82 et 3 = 8 3 .
En rsolvant ce systme linaire on trouve 0 = 0, 1 = 3

Mthode de Lagrange. On a

x(x ) x 3
x x 2 (x )
2

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


3 3 3 3

2 2
2
2
2
2
2
2

4
4
3

= 3 x(x ) x
3x x
(x ).
2
2

Mthode de Newton. Il suffit de calculer une diffrence divise en plus, i.e. ajouter une ligne au tableau :
i

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

42

3
2

f [x i 3 , x i 2 , x i 1 , x i ]

8
33

On a alors
p 3 (x) =

3
X

i (x) f [x 0 , . . . , x i ]

i =0

= p 2 (x) + 3 (x) f [x 0 , x 1 , x 2 , x 3 ]
8
4
= 2 x(x ) + 3 3 (x)

3
4
8

= 2 x(x ) + 3 x x
(x )
2

3
8
=
x(x 2 3x + 22 ).
33

Mthode des moindres carrs : fitting par une relation affine


Lorsquun chercheur met au point une exprience (parce quil a quelques raisons de
les deux grandeurs x
croire que
n
et y sont lies par une fonction f ), il rcolte des donnes sous la forme de points (x i , y i ) i =0 . Lorsquil en fait une
reprsentation graphique il cherche f pour quelle sajuste le mieux possible aux points observs.
Nous avons dj vu que si n est grand, le polynme dinterpolation de L AGRANGE nest pas toujours une bonne approximation dune fonction donne/cherche. De plus, si les donnes sont affectes par des erreurs de mesure, linterpolation
peut tre instable. Ce problme peut tre rsolu avec linterpolation composite (avec des fonctions linaires par morceau
ou des splines). Nanmoins, aucune de ces 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. On introduit alors la mthode des moindres carrs : 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.
Supposons que les deux grandeurs x et y sont lies approximativement par une relation affine, cest--dire de la forme
y = mx + q pour certaines valeurs de m et q (autrement dit, lorsquon affiche 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. Pour cela,
introduisons d i y i (mx i + q) lcart vertical du point (x i , y i ) par rapport la droite.

70

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

La mthode des moindres carrs est celle qui choisit m et q de sorte que la somme des carrs de ces dviations soit
minimale. Pour cela, on doit minimiser la fonction E : R2 R+ dfinie par
E (m, q) =

n
X
i =0

d i2 =

n
X

(y i mx i q)2 .

i =0

Pour minimiser E on cherche dabord les points stationnaires, i.e. les points (m, q) qui vrifient
!

n
X
E
(y i (mx i + q))x i ,
(m, q) = 2
m
i =0

E
m

E
q

= 0. Puisque

n
X
E
(y i (mx i + q)) ,
(m, q) = 2
q
i =0

alors
(

E
m (m, q) = 0
E
q (m, q) = 0

(P
n

Pin=0

(y i mx i q)x i = 0

i =0 (y i

mx i q) = 0

(P

P
n
x i2 m + ni=0 x i q = ni=0 y i x i
i
=1

Pn
Pn
i =1 x i m + (n + 1)q = i =0 y i

Pn
Pn

Pn

i =0 x i
i =0 y i (n + 1)
i =0 x i y i

,
m=

Pn
Pn
2

2
x
x

(n
+
1)
i
i
=0
i
=0
i
Pn
Pn
Pn
Pn

i =0 x i
i =0 x i y i
i =0 y i
i =0 x i

.
q =
Pn

Pn
2

2
i =0 x i
i =0 x i (n + 1)

On a trouv un seul point stationnaire. On tabli sa nature en tudiant la matrice Hessienne :


Pn
x2
HE (m, q) = 2 Pin=1 i
i =0 x i

Pn

i =0 x i

(n + 1)

P
2
P
P
et det(HE (m, q)) = 4 (n + 1) ni=1 x i2 ni=0 x i
> 0 avec mm E (m, q) = ni=1 x i2 > 0 donc il sagit dun minimum. La
droite dquation y = mx + q ainsi calcule sappelle droite de rgression de y par rapport x.

Exemple
Si on a le points suivantes
x
y

1
0.9

2
1.5

on trouve m = 1.07 et q = 0.21.

3
3.5

4
4.2

5
4.9

y
5
4
3
2
1
012345x

2.2. 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 i0 ), le problme est de trouver un polynme m (x) = a 0 + a 1 x + . . . a m x m Rm [x] tel
quel
(
m (x i ) = y i ,
i = 0, . . . n.
0m (x i ) = y i0 ,
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 00 ), . . . , (y n , y n0 ), il existe un unique

G. Faccanoni

71

2. Interpolation

Jeudi 5 juin 2014

polynme 2n+1 R2n+1 [x] tel que 2n+1 (x i ) = y i et 02n+1 (x i ) = y i0 , pour i = 0, . . . n quon peut crire sous la forme

Q(x) =

n
X
i =0

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

L i (x)

ci

A i (x)

B i (x)

=
=

n
Q
j =0
j 6=i
n
P
j =0
j 6=i

xx j
x i x j

1
x i x j

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


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

ou encore sous la forme

Q(x) =

n
X
i =0

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

L i (x)

n
Q
j =0
j 6=i
n
P

xx j
x i x j

1
ci
=

x i x j ,

j
=0

j 6=i

D (x) = 1 2(x x )c .
i
i i

Cette relation est appele formule dinterpolation de H ERMITE.

Exemple
Pour n = 2 le polynme dH ERMITE scrit

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

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

1
(x x 0 )(x x 1 ) 2
1
(x x 0 )(x x 1 ) 2
+ y 2 1 2(x x 2 )
+
+ y 20 (x x 2 )
,
x2 x0 x2 x1
(x 2 x 0 )(x 2 x 1 )
(x 2 x 0 )(x 2 x 1 )

Q(x) = y 0 1 2(x x 0 )

quon peut rcrire comme

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

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

1
(x x 0 )(x x 1 ) 2
1
+
+ y 20 (x x 2 )
.
+ y 2 1 2(x x 2 )
x2 x0 x2 x1
(x 2 x 0 )(x 2 x 1 )

Q(x) = y 0 1 2(x x 0 )

Remarque
Si n est petit on peut calculer directement les coefficients a 0 , a 1 , . . ., a 2n+1 en rsolvant le systme linaire de 2n + 2
quations

a 0 + a 1 x 0 + . . . a 2n+1 x 02n+1 = y 0

2n+1

= y1

a 0 + a 1 x 1 + . . . a 2n+1 x 1

. . .

a + a x + . . . a
x 2n+1 = y
n

1 n

2n+1 n

a 1 + a 2 x 0 + . . . (2n + 1)a 2n+1 x 02n+11 = y 00

a 1 + a 2 x 0 + . . . (2n + 1)a 2n+1 x 2n+11 = y 0

1
1

...

a n + a 1 x n + . . . (2n + 1)a 2n+1 x n2n+11 = y n0

72

1
1

.
..

.
..
0
|

i.e.

x0
x1
xn
x0
x1
xn

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

x 02n+1
a0
a1
x 12n+1

.
..
..
.

x n2n+1

=
2n+11

(2n + 1)x 0

2n+11

(2n + 1)x 1

.
..
.

.
.
2n+11
a 2n+1
(2n + 1)x n
{z
} | {z }

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

(2n+2)1

y0
y1

.
..


yn
0
y0
0
y1

.
..
y n0
| {z }

(2n+2)1

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

Exemple RUNGE

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

0.5

0.0

0.5

1.0

f
q_3
q_5
q_10
4

Cette figure a t obtenue par les instructions :


1

from matplotlib.pylab import *

2
3
4
5
6
7
8
9
10
11
12
13
14

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

15
16
17

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

18
19
20

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

21
22
23
24
25
26
27
28
29
30
31

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

32
33
34
35
36
37
38
39
40
41

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

42
43
44
45
46

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

73

2. Interpolation

Jeudi 5 juin 2014

Mme avec linterpolation dH ERMITE on voit que lerreur tend vers linfini quand n tend vers linfini 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 6= 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 i0 ) i =0
p 0
for i = 0 to n do
Li 1
for j = 0 to n do
if j 6= 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 i0 (t x i ) L 2i
end for
return p

2.3. Splines : interpolation par morceaux


On a mis en vidence le fait quon ne peut pas garantir la convergence uniforme du polynme interpolatoire de L A vers f quand les nuds dinterpolation sont quirpartis. Linterpolation de L AGRANGE de bas degr est cependant suffisamment prcise quand elle est utilise sur des intervalles assez petits, y compris avec des nuds quirpartis
(ce qui est commode en pratique). Il est donc naturel dintroduire une partition de [a; b] en n sous-intervalles [x i , x i +1 ], tels
que [a; b] = 0i n1 [x i , x i +1 ] et dutiliser linterpolation de L AGRANGE sur chaque sous-intervalles [x i , x i +1 ] en utilisant m
nuds quirpartis avec m petit (gnralement m = 1 ou 3).
GRANGE

Dfinition
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 k1 ([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 n1 .

2.3.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 dfinie 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).

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

74

y i +1 y i
(x x i )
x i +1 x i

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

Il est intressant de noter que la commande plot(x,y), utilise pour afficher 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
h2
max | f 00 (x)|,
max | f (x) `(x)|
x[a;b]
8 x[a;b]
o h = maxi =0,...,n1 x i +1 x i . 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 0 (x i )) et (x i +1 , f (x i +1 ), f 0 (x i +1 )) sur chaque [x i ; x i + 1]
pour i = 0, 1, . . . , n 1.

G. Faccanoni

75

2. Interpolation

TTTTTTTTTTTTT

Jeudi 5 juin 2014

Codes Python

TTTTTTTTTTTT

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

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

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

def divided_difference(xx,yy):
n = len(xx)
# Initialisation de la matrice vide
A = []
for i in range(n):
A+=[[]] # ajoute n fois une sous-liste vide : [[],[],[],[]]
for j in range(n):
A[i]+=[0] # ajoute n lments 0 chacune des n sous-listes vides
# On rempli la partie triangulaire inferieure
for i in range(n):
A[i][0]=float(yy[i])
for j in range(1,i+1):
A[i][j]=(float(A[i][j-1])-float(A[i-1][j-1]))/(float(xx[i])-float(xx[i-j]))
return [ A[i][i] for i in range(n) ]

26
27
28
29
30
31
32
33
34
35

def newton(t,xx,yy):
p = 0
n = len(xx)
OMEGA = [1. for i in range(n+1)]
DD = divided_difference(xx,yy)
for i in range(n):
p += DD[i]*OMEGA[i]
OMEGA[i+1] = OMEGA[i] * float(t-xx[i])
return p

36
37
38
39
40
41
42
43
44
45
46
47
48

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

from matplotlib.pylab import *

50
51
52
53
54

# INPUT
x = [1,2,3,4,5]
y = [0,1,0,1,0]
dy = [-1,1,0,-1,0]

76

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

55
56
57
58
59
60

# Calcul des polynomes en un


t = 1.5
print "La valeur du polynome
print "La valeur du polynome
print "La valeur du polynome

point
de Lagrange en", t, "est", lagrange(t,x,y)
de Newton en", t, "est", newton(t,xx,yy)
dHermite en", t, "est", hermite(t,x,y,dy)

61
62
63
64
65
66
67
68
69
70
71
72
73

# Calcul des polynomes en plusieurs points dun intervalle pour affichage


axis([0, 6, -2, 2])
t = arange(0,6,.1)
lt = []
nt = []
ht = []
for k in t:
lt.append(lagrange(k,x,y))
nt.append(newton(k,x,y))
ht.append(hermite(k,x,y,dy))
plot(x,y,ro,t,lt,b,t,nt,g.,t,ht,m)
show()

G. Faccanoni

77

2. Interpolation

Jeudi 5 juin 2014

Exercices

..............
Exercice 2.1

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

Construire le polynme P qui interpole les points (0, 2), (1, 1), (2, 2) et (3, 3).
C ORRECTION DE L EXERCICE 2.1. On cherche un polynme de degr au plus 3 tel que P (0) = 2, P (1) = 1, P (2) = 2 et P (3) =
3. Construire P signifie trouver ses coordonnes dans une base de R3 [x]. On considre trois mthodes qui sont bases sur
trois choix diffrents de bases de R3 [x] :
Mthode directe (nave)

On considre C = 1, x, x 2 , x 3 la base canonique de R3 [x] et on cherche (a 0 , a 1 , a 2 , a 3 ) = coord(P, C ), i.e. a 0 , a 1 , a 2 , a 3


P3
tels que P (x) = i =0 a i x i .
Il sagit de trouver les 4 coefficients a 0 , a 1 , a 2 et a 3 solution du systme linaire

p(0) = 2
a + a 1 0 + a 2 02 + a 3 03 = 2

1 0 0 0
a0
2

p(1) = 1
a + a 1 + a 12 + a 13 = 1
1 1 1 1 a 1 1
0
1
2
3

1 2 4 8 a 2 = 2
2
3

p(2)
=
2
a
+
a

2
+
a

2
+
a

2
=
2

0
1
2
3

1 3 9 27 a 3
3
p(3) = 3
a + a 3 + a 32 + a 33 = 3
0

10
11

12
13

0
1
4
9

0
1
8
27

L 2 L 2 L 1
L 3 L 3 L 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

2
L 3 L 3 2L 2
1
L 4 3L 2
L4

0
1

1
0
0
0

0
1
0
0

0
1
2
6

0
1
6
24

2
1
L 4 3L 3
L4

2
4

1
0
0
0

0
1
0
0

0
1
2
0

0
1
6
6

2
1

2
2

donc a 3 = 13 , a 2 = 2, a 1 = 38 et a 0 = 2 et on trouve P (x) = 2 38 x + 2x 2 13 x 3 .


Mthode de Lagrange
P
On considre L = { L 0 , L 1 , L 2 , L 3 } une base de R3 [x] telle que coord(P, L ) = (y 0 , y 1 , y 2 , y 3 ), i.e. P (x) = 3i =0 y i L i (x). On
a
n x x
Y
j
L i (x) =
x

x
j
j =0 i
j 6=i

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

P (x) = y 0

P (x)

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

=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

Mthode de Newton
On considre N = { 0 , 1 , 2 , 3 } une base de R3 [x] telle que coord(p, N ) = (y 0 , f [x 0 , x 1 ], f [x 0 , x 1 , x 2 ], f [x 0 , x 1 , x 2 , x 3 ]),
P
i.e. P (x) = 3i =0 f [x 0 , . . . , x i ]i (x).
La base de Newton est dfinie rcursivement comme suit :
0 (x) = 0;

1 (x) = x x 0 ;

pour k = 2, . . . , n

k (x) = k1 (x)(x x k1 ).

Les coordonnes sont les valeurs encadres dans le tableau des diffrences divises ci-dessous :

78

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

0
1
2

0
1
2

2
1
2

1
1

f [x i 3 , x i 2 , x i 1 , x i ]

13

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

On a alors
P 3 (x) =

3
X

f [x 0 , . . . , x i ]i (x)

i =0

= y 0 0 (x) + f [x 0 , x 1 ]1 (x) + f [x 0 , x 1 , x 2 ]2 (x) + f [x 0 , x 1 , x 2 , x 3 ]3 (x)


1
= 20 (x) 1 (x) + 2 (x) 3 (x)
3
1
= 2 x + x(x 1) x(x 1)(x 2)
3
1 3
8
2
= x + 2x x + 2.
3
3

Exercice 2.2
1. Calculer le polynme dinterpolation de la fonction f (x) = cos(x) en les 3 points x i = 2 i avec i = 0, . . . , 2.

2. Calculer ensuite le polynme dinterpolation de la mme fonction en les 4 points x i = 2 i avec i = 0, . . . , 3, i.e. en
ajoutant le point x 3 = 3/2.

C ORRECTION DE L EXERCICE 2.2.


1. On cherche p 2 R2 [x] tel que p 2 (x i ) = cos(x i ) pour i = 0, . . . , 2. On peut choisir lune des quatre mthodes ci-dessous
(on prfrera la mthode de N EWTON car elle permet de rutiliser les calculs de cette question pour rpondre la
question suivante).

Mthode directe (nave). Si on crit p 2 (x) = 0 + 1 x + 2 x 2 , on cherche 0 , 1 , 2 tels que


1


0
1
2 = 0
1
4
1
2 2
0

En rsolvant ce systme linaire on trouve 0 = 0, 1 = 2 et 2 = 0.

Mthode astucieuse. Le polynme p 2 sannule en 2 , ceci signifie quil existe un polynme R(x) tel que

p 2 (x) = R(x) x
.
2
Puisque p 2 (x) a degr 2, le polynme R(x) quon a mis en facteur a degr 1, autrement dit R est de la forme
ax + b. On cherche alors a et b tels que

(
,
R(0) = p 2 (0)
b = 1 ,
b = 2 ,
0 2
0 2

p
()
2
1
R() = .
a + b = .
a = 0.

Ainsi

= x
= x + 1.
p 2 (x) = R(x) x
2

Mthode de Lagrange. On a

x 2 (x )
(x 0) x 2
2

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


1

= 1 x.
0 2 (0 )
( 0) 2

Mthode de Newton. On commence par construire le tableau des diffrences divises :


i

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

On a alors
p 2 (x) =

2
X

i (x) f [x 0 , . . . , x i ]

i =0

G. Faccanoni

79

2. Interpolation

Jeudi 5 juin 2014

= 0 (x) f [x 0 ] + 1 (x) f [x 0 , x 1 ] + 2 (x) f [x 0 , x 1 , x 2 ]


2
= 0 (x) 1 (x)

2
= 1 x.

2. On cherche donc p 3 R3 [x] tel que p 3 (x i ) = sin(x i ) pour i = 0, . . . , 3. On peut choisir lune des quatre mthodes
ci-dessous (on prfrera la mthode de N EWTON car elle permet dutiliser les calculs prcdents).

Mthode directe. Si on crit p 3 (x) = 0 + 1 x + 2 x 2 + 3 x 3 , on cherche 0 , 1 , 2 , 3 tels que

1
1

2
4
2


0
1
3

0
1
8
=
3 2 1
273
3
0
0

3
2

92
4

2
En rsolvant ce systme linaire on trouve 0 = 1, 1 = 3
, 2 = 42 et 3 =

Mthode astucieuse. Le polynme p 3 sannule en

et en

8
.
33

3
2 , ceci signifie quil existe un polynme R(x) tel que

3
p 3 (x) = R(x) x
x
.
2
2

Puisque p 3 (x) a degr 3, le polynme R(x) quon a mis en facteur a degr 1, autrement dit R est de la forme
ax + b. On cherche alors a et b tels que

(
3 (0)

R(0) = p
b = 1 3 ,
3 ,
b = 34 2 ,
0 2 0 2
0 2 0 2

3 ()
R() = p
a + b = 1

a = 38 3 .
3 .
3 .
2

Ainsi

3
2
8

4
4
8
x
=
x
= 1
p 3 (x) = R(x) x
x+ 2 x
x 2 x2 + 3 x3.
2
2
33
3
2
2
3

Mthode de Lagrange. On a

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

( 0) 2 3
0 2 (0 ) 0 3
2
2

3
2
4
8
= 3 x
x
x 2 x2 + 3 x3.
(x + + 3x) = 1
3
2
2
3

Mthode de Newton. Il suffit de calculer une diffrence divise en plus, i.e. ajouter une ligne au tableau prcdant :
i

xi

yi

f [x i 1 , x i ]

f [x i 2 , x i 1 , x i ]

3
2

4
2

f [x i 3 , x i 2 , x i 1 , x i ]

8
33

On a alors
p 3 (x) =

3
X

i (x) f [x 0 , . . . , x i ]

i =0

= p 2 (x) + 3 (x) f [x 0 , x 1 , x 2 , x 3 ]
8
2
= 1 x + 3 3 (x)

3
2
8

= 1 x + 3 x x
(x )

3
2
2
4
8
= 1
x 2 x2 + 3 x3.
3

80

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

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

C ORRECTION DE L EXERCICE 2.3.


y

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,

p(x)

(
(1 + 02 ) + (04 ) = 1,
(1 + 12 ) + (14 ) = 3,

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

Exercice 2.4
1. Construire le polynme de L AGRANGE P qui interpole les points (1, 2), (0, 1), (1, 2) et (2, 3).
2. Soit Q le polynme de L AGRANGE 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 DE L EXERCICE 2.4. Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points
{(x i , y i )}ni=0 scrit

p n (x) =

n
n x x
X
Y
j
yi
.

i =0
j =0 x i x j
j 6=i

1. Ici n = 3 donc on a
(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 )

P (x) = y 0

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

= x(x 1) (x + 1)(x 1) + (x + 1)x

G. Faccanoni

81

2. Interpolation

Jeudi 5 juin 2014

= x 2 + 1.
Ainsi

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 )
= y 0
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 )

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 )

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

Q(x) P (x) = y 0

et = 13 . 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 = 13 .
y
Q(x)

3
x3
2
x0

x2
P (x)
x1

Exercice 2.5
1. Construire le polynme de L AGRANGE P qui interpole les trois points (1, e), (0, 1) et (1, e).
2. Sans faire de calculs, donner lexpression du polynme de L AGRANGE 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 DE L EXERCICE 2.5.
1. Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit

p n (x) =

n
n x x
X
Y
j
yi
.

x
j
i =0
j =0 i
j 6=i

Ici n = 2 donc on a

82

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

P (x)

e
(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) = y 0

1
y

2. Il suffit de changer les coefficients y i dans lexpression


prcdente :

1
x

Q(x) =

x(x 1) (x + 1)x

= x 2 .
2
2
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 suffisait de remarquer


que le polynme Q Vec{1, x, x 2 } pour conclure que le polynme p cherch est Q lui mme.

Exercice 2.6
1. Construire le polynme de L AGRANGE P qui interpole les points (1, 1), (0, 1), (1, 2) et (2, 3).
2. Soit Q le polynme de L AGRANGE 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).
C ORRECTION DE L EXERCICE 2.6. Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points
{(x i , y i )}ni=0 scrit

p n (x) =

n
n x x
X
Y
j
yi
.

x
i
j
i =0
j =0
j 6=i

1. Ici n = 3 donc on a
(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 )

P (x) = y 0

(x + 1)x(x 1)
x(x 1)(x 2) (x + 1)(x 1)(x 2)
+
(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),

G. Faccanoni

83

2. Interpolation

Jeudi 5 juin 2014

Q(0) = P (0),
Q(1) = P (1),
donc le polynme Q(x) P (x) sannule en 1, en 0 et en 1, ceci signifie quil existe un polynme R(x) tel que
Q(x) P (x) = R(x)(x + 1)x(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
2

1
1
= x 2 + x + 1.
2
2
Ainsi

(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 x3
(x x 0 )(x x 1 )(x x 2 )
(x x 0 )(x x 1 )
1
y3
+ y2
(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 )
= y 0
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 )
y3
y2
(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 )

y3
y2
+
(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

Q(x) P (x) = y 0

et = 16 . 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 = 16 .
Q(x)
y
3
x3

P (x)

2
x2
1
x0

84

x1

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

Exercice 2.7
1. Construire le polynme de L AGRANGE 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 DE L EXERCICE 2.7.
1. Construire le polynme de L AGRANGE P qui interpole les trois points (1, ), (0, ) et (1, ) o et sont des rels.
Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit

p n (x) =

n
X

n
Y

i =0

j =0
j 6=i

yi

x xj
.
x x
i

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 (x) = 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.8
Soit f : R R la fonction dfinie par f (x) = 1 + x 3 .
1. Calculer le polynme p 0 qui interpole f au point dabscisse x 0 = 0.
2. Calculer le polynme p 1 qui interpole f aux points dabscisse { x 0 = 0, x 1 = 1 }.
3. Calculer le polynme p 2 qui interpole f aux points dabscisse { x 0 = 0, x 1 = 1, x 2 = 2 }.
4. Calculer le polynme p 3 qui interpole f aux points dabscisse { x 0 = 0, x 1 = 1, x 2 = 2, x 3 = 3 }.
5. Pour n > 3, calculer les polynmes p n qui interpolent f aux points dabscisse { x 0 = 0, x 1 = 1, . . . , x n = n }.
C ORRECTION DE L EXERCICE 2.8.
1. On interpole lensemble { (0, 1) } donc p 0 (x) = 1.
2. On interpole lensemble { (0, 1), (1, 2) } donc p 1 (x) = 1 + x.
3. On interpole lensemble { (0, 1), (1, 2), (2, 9) } donc p 2 (x) = 1 2x + 3x 2 .
4. f R3 [x] et comme il existe un seul polynme de degr au plus 3 qui interpole quatre points ce polynme concide
forcement avec f donc p 3 f .
5. f Rn [x] pour tout n 3 et comme il existe un seul polynme de degr au plus 3 qui interpole quatre points ce
polynme concide forcement avec f donc p n f pour n 3.

Exercice 2.9
Soit Vn la matrice de VANDERMONDE :

1
1

1
Vn =
.
.
.
1

a0
a1
a2
..
.
an

a 02
a 12
a 22
..
.
a n2

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

a 0n
a 1n

a 2n
.
..

a nn

Quel est le lien entre cette matrice et linterpolation polynomiale de lensemble de points { (a i ; b i ) }ni=0 ?

G. Faccanoni

85

2. Interpolation

Jeudi 5 juin 2014

P
C ORRECTION DE L EXERCICE 2.9. Soit p(x) = ni=0 c i x i le seul polynme de degr n qui interpole lensemble de (n + 1)
P
points { (a i ; b i ) }ni=0 , i.e. b i = p(a i ) = ni=0 c i a i . Alors le vecteur c = (c 0 , c 1 , . . . , c n )T est solution du systme linaire Vc = b.

Exercice 2.10
Vrifier 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 DE L EXERCICE 2.10. Le polynme dinterpolation dH ERMITE en un point (x 0 , f (x 0 ), f 0 (x 0 )) est lunique polynme q R1 [x] qui vrifie q(x 0 ) = f (x 0 ) et q 0 (x 0 ) = f 0 (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 0 (x 0 ) = f 0 (x 0 ),

a 0 + a 1 x 0 = f (x 0 ),

a 1 = f 0 (x 0 ),

a 0 = f (x 0 ) x 0 f 0 (x 0 ),
a 1 = f 0 (x 0 ),

donc q(x) = f (x 0 ) + (x x 0 ) f 0 (x 0 ).

Exercice 2.11
Soit f une fonction de classe C 1 et x 0 D f le domaine de dfinition de f . Soit ` le polynme dinterpolation de L A GRANGE de f en x 0 et h le polynme dinterpolation dH ERMITE en x 0 . Calculer h(x) `(x).
C ORRECTION DE L EXERCICE 2.11. Le polynme dinterpolation de L AGRANGE de f en x 0 est lunique polynme ` R0 [x]
qui vrifie `(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 vrifie h(x 0 ) = f (x 0 ) et h 0 (x 0 ) = f 0 (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 0 (x 0 ) = f 0 (x 0 ),

a 0 + a 1 x 0 = f (x 0 ),

a 1 = f 0 (x 0 ),

a 0 = f (x 0 ) x 0 f 0 (x 0 ),
a 1 = f 0 (x 0 ),

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

Exercice 2.12
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 ? Justifier la rponse.

C ORRECTION DE L EXERCICE 2.12. Le polynme dH ERMITE dune fonction f en x i a quation q(x) = f (x i )+(x x i ) f 0 (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 0 (x i ) = 0, do x i +1 = x i
On a alors la suite dfinie par rcurrence
(
x 0 donne,
x i +1 = x i

f (x i )
.
f 0 (x i )

f (x i )
,
f 0 (x i )

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

Exercice 2.13
Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dH ERMITE (de degr 3) de f vrifiant
p(1) = f (1),

p 0 (1) = f 0 (1),

p(1) = f (1),

p 0 (1) = f 0 (1).

crire le polynme p.

C ORRECTION DE L EXERCICE 2.13. 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 dH ERMITE scrit

p(x) =

n
X

i =0

86

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

n
Y
j =0
j 6=i

(x x j )
(x i x j

)2

ci =

n
X

1
.
j =0 x i x j
j 6=i

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

Pour n = 1 on a alors

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

1
x0 x1

(x x 1 )
(x 0 x 1 )

+ y 1 1 2(x x 1 )

1
x1 x0

(x x 0 )
(x 1 x 0 )

+ y 00 (x x 0 )

(x x 1 )
(x 0 x 1 )

+ y 10 (x x 1 )

(x x 0 )
(x 1 x 0 )

2
.

Dans notre cas x 0 = 1, x 1 = 1, y 0 = f (1), y 1 = f (1), y 00 = f 0 (1), y 10 = f 0 (1) donc

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

p(x) =

Le polynme interpolateur dH ERMITE est donc le polynme


p(x) = + x + x 2 + x 3
o
3 f (1) + 3 f (1) f 0 (1) f 0 (1)
,
4
f (1) f (1) + f 0 (1) + f 0 (1)
=
.
4

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


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

p 0 (1) = f 0 (1),

p(1) = f (1),

p 0 (1) = f 0 (1),

cest--dire tel que

+ = f (1),

+ + + = f (1),

2 + 3 = f 0 (1),

+ 2 + 3 = f 0 (1).
En utilisant la mthode dlimination de G AUSS on obtient :
1
1

[A|b] =
0
0

1
1
1
1

1
L 4 L 4 2 L 3 0

0
L 3 L 3 21 L 2

1
2

1
1
2
2
1
0

1
1
3
3

f (1)
f (1)
L 2 L 1
L2

0

f (1)
f 0 (1)
f (1)
f (1) f (1)

1
2

f (1) f (1)
f (1)
2
f
(1) f (1)
f 0 (1)
2
0

f (1)
1 1
0
2
f (1) f (1)
2 3
f 0 (1)
2
3
f 0 (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)
0

f (1) f (1)
2

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

ainsi
2 f (1) + 2 f (1) + f 0 (1) f 0 (1)
,
4
f 0 (1) + f 0 (1)
=
,
4

G. Faccanoni

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


,
4
f (1) f (1) + f 0 (1) + f 0 (1)
=
.
4

87

2. Interpolation

Jeudi 5 juin 2014

Exercice 2.14
1. Construire le polynme de L AGRANGE 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 dH ERMITE Q qui interpole les points (1, 0, 1) et (2, 0, 1).
C ORRECTION DE L EXERCICE 2.14.
1. Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit

p n (x) =

n x x
n
Y
X
j
yi
.

x
i
j
j =0
i =0
j 6=i

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 00 ), . . . , (y n , y n0 ), le polynme dH ERMITE
Q de degr N = 2n + 1 tel que Q(x i ) = y i et Q 0 (x i ) = y i0 , pour i = 0, . . . n scrit

Q(x) =

n
X
i =0

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

n xx
Q
j

L i (x) =

x i x j ,

j
=0

j 6=i

P
1
ci =
x i x j ,
j
=0

j 6=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 .

Ici n = 1 et le polynme dH ERMITE scrit


Q(x) = y 0 A 0 + y 00 B 0 + y 1 A 1 + y 00 B 1 = B 0 B 1

x +1 2
x x0 2
x 2 2
x x1 2
(x 2)
(x x 1 )
= (x + 1)
= (x x 0 )
x0 x1
x1 x0
3
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 suffit 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 0 (1) = 1 et
Q 0 (2) = 1, on trouve alors a et b en rsolvant le systme linaire
(
(
(
3a(1)2 + 2(a + b)(1) + (b 2a) = 1,
3a + 2a 2b b 2a = 1,
a = 0,

2
3a(2) + 2(a + b)(2) + (b 2a) = 1,
12a 4a + 4b b 2a = 1,
b = 1/3.
On obtient le polynme Q(x) = (x+1)(x2)
.
3
Une autre ide pour calculer le polynme Q sans utiliser la formule ni la remarque prcdente est de calculer directement le polynme selon la dfinition : 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 vrifie Q(1) = 0, Q(2) = 0, Q 0 (1) = 1 et Q 0 (2) = 1. On doit alors rsoudre le systme linaire

a 0 a 1 +a 2 a 3 x = 0

a +2a +4a +8a x 3 = 0


0
1
2
3
3

a
2a
+3a
=1

1
2
3x

3
a 1 +4a 2 +12a 3 x = 1
quon peut rcrire sous la forme Aa = b avec

1
1
A=
0
0

88

1
2
1
1

1
4
2
4

1
8
,
3
12

a0
a 1

a=
a 2

a3

0
0

b=
1
1

et

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

On utilise la mthode dlimination de G AUSS :


1
1
(A|b) =
0
0

1
2
1
1

1
4
2
4

1
8
3
12

0
0
L 2 L 1
L2

1
1

1
0
0
0

1
0

0
0
1
a2 = ,
3

a 3 = 0,
do Q(x) =

0
0

1
1

1
9
3
12

1
2
3
3

1
3
0
0

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

et finalement on obtient

1
2
2
4

1
3
1
1

1
9
0
9

1
a1 = ,
3

0
0
L 4 +L 3
L4

1
1

1
0
0
0

1
3
0
0

1
2
3
0

1
9
0
9

0
0

1
0

2
a0 = ,
3

x 2 + x + 2
.
3
y

y = x +1

r a (x)

p 3 (x)

2
Q(x)

y = x + 2

Exercice 2.15
Montrer quil nexiste aucun polynme p de R3 [x] tel que
p 0 (1) = 1,

p(1) = 1,

p 0 (1) = 2,

p(2) = 1.

C ORRECTION DE L EXERCICE 2.15. Si on crit p(x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 , on cherche quatre coefficients a 0 , a 1 , a 2 , a 3


solution du systme linaire


1 1 1 1 a 0
1
0 1 2 3 a 1 1

=
0 1
2
3 a 2 2
1 2
4
8
a3
1
Comme
1
0
rg
0
1

1
1
1
2

1
2
2
4

1
3
= 3,
3
8

1
0
rg
0
1

1
1
1
2

1
2
2
4

1
3
3
8

1
1
= 4,
2
1

le systme linaire nadmet pas de solutions. (On arrive la mme conclusion en utilisant la mthode du pivot de G AUSS).

Exercice 2.16
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 L AGRANGE pour estimer lesprance de vie en 1977, 1983 et 1988. La comparer avec une interpolation linaire par morceaux.

G. Faccanoni

89

2. Interpolation

Jeudi 5 juin 2014

C ORRECTION DE L EXERCICE 2.16. Le polynme dinterpolation de L AGRANGE de degr n sur lensemble des n + 1 points
{(x i , y i )}ni=0 scrit

p n (x) =

n x x
n
Y
X
j
.
yi

j =0 x i x j
i =0
j 6=i

Ici n = 3 et si on choisit de poser x 0 = 0 pour lanne 1975, x 1 = 5 pour lanne 1980 etc., on a
(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 )

P (x) = y 0

(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

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

On a alors que
? 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
74,272,8
? lesprance de vie en 1977 correspond
50 2 + 72,8 = 73,36 < P (2),
75,274,2
? lesprance de vie en 1983 correspond 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

P (x)

75,86
75,2
74,81
74,2
73,45
72,8
1975

1977

1980

1983

1985

1988

1990

Exercice 2.17
Pour calculer le zro dune fonction y = f (x) inversible sur un intervalle
peut utiliser linterpolation : aprs avoir
[a; b]on
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 DE L EXERCICE 2.17. Calculons dabord les valeurs interpoler

90

xi

yi

0
1
2

1
p
e 2
e 2

1
2

G. Faccanoni

Jeudi 5 juin 2014

2. Interpolation

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

p n (y) =

n
n yy
X
Y
j
.
x i

y
i
j
i =0
j =0
j 6=i

Ici n = 2 donc on a
(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 )
p
1
(y + 1)(y e + 2)
(y + 1)(y e + 2)
= p
+
.
p
p
2 ( e 2 + 1)( e 2 e + 2) (e 2 + 1)(e 2 e + 2)

p(y) = x 0

Par consquent une approximation de la racine de f est p(0) =


La mthode de Newton scrit
(
x 0 = 0,

1 p
e+2
p
2 ( e2+1)( e2e+2)

p
e+2

+ (e2+1)(e2pe+2) 0.7087486785.

xk

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


on obtient ainsi la suite
k

xk

0
1
2
3

0
1
2
e 0.7357588825
2
2e
e 2e 0.6940422999
e

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 peut 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.18
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 dfinit 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 DE L EXERCICE 2.18. Soit ` = E [t ] la partie entire 2 de t . Alors t [`; ` + 1] et il sagit de dfinir le polynme
p interpolant les points
( 1, f ( 1)),

(, f ()),

( + 1, f ( + 1)),

( + 2, f ( + 2)),

ce qui donne

P (t ) =

3
3
3
3 t +1 j
X
Y
Y
X
t ( 1 + j )
=

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

ij
i =0
i =0
j =0
j =0 ( 1 + i ) ( 1 + j )
j 6=i

j 6=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
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 bxc 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).

G. Faccanoni

91

2. Interpolation

Jeudi 5 juin 2014

x1
x2 + 1
x3 + 2
y 0
for i = 0 to 3 do
L1
for j = 0 to 3 do
if j 6= i then
t xj
L
L
xi x j
end if
end for
y y + f (x i ) L
end for
return y

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

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

p
f
4 x

1 2

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

42
1
de dichotomie. Pour que lerreur soit infrieur 10 , il faut E log2 101 + 1 = E 2 log2 (2) + log2 (5) + 1 = 5 tapes :
k

[a k , b k ]

[2, 4]

[3, 4]

2
7
3, 2

`k

7
2

13
4

25
8

49
16

99
32

bk ak

2 > 101

1 > 101

0.5 > 101

0.25 > 101

0.125 > 101

0.0625 < 101

Lerreur prend sa valeur maximale pour x

99
32

3
13
3, 4

4
25
3, 8

5
49

25
16 , 8

0.01166653913.
= 3.09375 et vaut (x)

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
thorique (x) =
Comme (x) =

92

4
x

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

7 + 27 x 12 x 2 , on obtient thorique = ssi x =

p
4
6x.

G. Faccanoni

3. Quadrature
Calculer

Rb
a

f (x) dx o f est une fonction donne

Dans ce chapitre on va tudier des mthodes pour approcher les intgrales de fonctions. On sait bien quil nest pas toujours
possible, pour une fonction arbitraire, de trouver la forme explicite dune primitive. Par exemple, comment peut-on tracer
le graphe de la fonction erf (appele fonction derreur de G AUSS) dfinie comme suit ?
erf : R R
2
x 7 p

e t dt

Mais mme quand on la connat, il est parfois difficile de lutiliser. Cest par exemple le cas de la fonction f (x) = cos(4x) cos(3 sin(x))
pour laquelle on a
Z
(9/4)k
81 X
f (x) dx =
;
16 k=0 k!(k + 4)!
0
on voit que le calcul de lintgrale est transform en un calcul, aussi difficile, de la somme dune srie. Dans certains cas, la
fonction intgrer nest connue que par les valeurs quelle prend sur un ensemble fini de points (par exemple, des mesures
exprimentales). On se trouve alors dans la mme situation que celle aborde au chapitre prcdent pour lapproximation
des fonctions. Dans tous ces cas, il faut considrer des mthodes numriques afin dapprocher la quantit laquelle on
sintresse, indpendamment de la difficult intgrer la fonction.
Dans les mthodes dintgration, lintgrale dune fonction f continue sur un intervalle born [a, b] est remplace par
une somme finie. Le choix de la subdivision de lintervalle dintgration et celui des coefficients 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
S
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 G AUSS
fondes sur les polynmes orthogonaux pour lesquelles les points de la subdivision sont imposs.

3.1. Principes gnraux


Rb
Soit f une fonction relle intgrable sur lintervalle [a; b]. Le calcul explicite de lintgrale dfinie I [a;b] ( f ) a f (x)dx
peut tre difficile, voire impossible. On appelle formule de quadrature ou formule dintgration numrique toute formule
permettant de calculer une approximation de I [a;b] ( f ). Une possibilit consiste remplacer f par une approximation f et
calculer I [a;b] ( f) au lieu de I [a;b] ( f ). En posant I[a;b] ( f ) I [a;b] ( f), on dfinit
I[a;b] ( f )

f(x)dx.

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

E [a;b] ( f ) =

b
a

Z b

f (x) f (x)dx
| f (x) f(x)|dx (b a) max | f (x) f(x)|.
x[a;b]

Lapproximation f doit tre facilement intgrable, ce qui est le cas si, par exemple, f est un polynme.
P
Une approche naturelle consiste prendre f = ni=0 f (x i )L i (x), le polynme dinterpolation de L AGRANGE de f sur un
. Ainsi on aura
ensemble de n + 1 nuds distincts {x i }ii =n
=0
I [a;b] ( f ) I[a;b] ( f ) =

n
X
i =0

Z
f (x i )

b
a

L i (x)dx

L i (x) =

n x x
Y
j
j =0
j 6=i

xi x j

93

3. Quadrature

Jeudi 5 juin 2014

Il sagit dun cas particulier de la formule de quadrature suivante


I[a;b] ( f ) =

n
X

i f (x i )

i =0

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 coefficients 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 L AGRANGE et dH ERMITE sont toutes les deux des formules
de quadrature interpolatoires, car la fonction f est remplace par son polynme dinterpolation.

Dfinition Degr dexactitude


On dfinit le degr de prcision (ou dexactitude) dune formule de quadrature comme le plus grand entier r 0 pour
lequel la valeur approche de lintgrale (obtenue avec la formule de quadrature) dun polynme de degr r est gale
la valeur exacte, i.e. I[a;b] (q) = I [a;b] (q) pour tout polynme q Rr [x]. Autrement dit, une formule de quadrature est dite
dordre r si elle est exacte sur Rr [x] et inexacte pour au moins un polynme de degr strictement suprieur r .

Astuce

Pour vrifier quune formule de quadrature est dordre r il suffit de vrifier quelle est exacte sur une base de Rr [x] (par
exemple la base canonique) et inexacte pour un polynme de degr r + 1 (par exemple le polynme x r +1 ). En effet, si q
P
est un polynme de Rr [x], il existe 0 , 1 , . . . , r tels que q(x) = rk=0 k x k . Alors
b

Z
I [a;b] (q) =

q(x) dx =

r
X

Z
k

k=0

x k dx

r
X
k I [a;b] (x k ) .
k=0

Pour vrifier quune formule de quadrature I[a;b] a degr de prcision r il suffit alors de vrifier que I[a;b] (x k ) = I [a;b] (x k )
pour tout k = 0 . . . r .

Thorme
Toute formule de quadrature interpolatoire utilisant n + 1 nuds distincts a un degr de prcision 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 de prcision au
moins gale n est ncessairement de type interpolatoire. Le degr de prcision peut mme atteindre 2n + 1 dans le cas
des formules de quadrature de G AUSS.

Dfinition Stabilit
Une formule de quadrature I[a;b] ( f ) =

Pn

i =0 i

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

Pn

i =0 |i | M .

Thorme

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

Dfinition Formule de quadrature composite


On dcompose lintervalle dintgration [a; b] en m sous-intervalles [y j ; y j +1 ] tels que y j = a + j H o H = ba
m pour
n
o
(j) n
j = 0, 1, . . . , m. On utilise alors sur chaque sous-intervalle une formule interpolatoire de nuds x k
et de poids
k=0
n
o
(j) n
k
(gnralement la mme formule sur chaque sous-intervalle). Puisque
k=0

Z
I [a;b] ( f ) =

b
a

f (x)dx =

m1
X Z y j +1
j =0

yj

f (x)dx =

m1
X
j =0

I [y j ;y j +1 ] ( f ),

une formule de quadrature interpolatoire composite est obtenue en remplaant I [a;b] ( f ) par
m1
X
j =0
(j)
o I [y j ;y j +1 ] ( f ) ' I[y ;y
j

94

j +1 ]

(j)
I[y ;y
j

j +1 ]

(f ) =

m1
n
X X
j =0 k=0

(j)

(j)

k f (x k )

( f ).

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

Souvent on dfinit 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 affine.

Astuce Changement de variable affine


Soit x [a; b] et soit y [c; d ]. On considre une fonction de classe C 1 ([a; b])
g : [a; b] [c; d ]
x 7 y = g (x)
qui envoie lintervalle [a; b] dans lintervalle [c; d ], cest--dire telle que
(

g (a) = c,
g (c) = d .

On a alors
d

Z
c

Z
f (y)dy =

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

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

Z
c

Z
f (y)dy = m

b
a

f (mx + q)dx.

Rb
Rb
P
P
Par consquent, si a f (t ) dt ni=0 i f (t i ) alors a f (mx + q) dx ni=0 i f (mx i + q).
Pour dterminer cette transformation affine, on doit rsoudre le systme linaire
(

g (a) = c,

i.e.

g (c) = d ,

(
ma + q = c,
mb + q = d .

On obtient
m=

G. Faccanoni

d c
,
ba

q=

cb ad
.
ba

95

3. Quadrature

Jeudi 5 juin 2014

y
d

m
y=

x+

Par consquent y =

d c
cb ad
x+
do
ba
ba

Z
Z d
d c
cb ad
d c b
f
x+
dx.
f (y)dy =
ba a
ba
ba
c

Exemple
? Transformer lintervalle [0; 1] dans lintervalle [x i ; x i +1 ] par un changement de variable affine.

On a y = (x i +1 x i )x + x i et

Z x
i +1
xi

Z 1

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

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

? Transformer lintervalle [1; 1] dans lintervalle [x i ; x i +1 ] par un changement de variable affine.


x x
x +x
x x
On a y = i +12 i x + i +12 i , quon peut rcrire y = x i + (1 + x) i +12 i et

Z x
i +1
xi

f (y)dy =

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

3.2. Exemples de formules de quadrature interpolatoires


Dfinition Formule du rectangle gauche
Formule de base 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 qui interpole f en le point (a, f (a)) et donc de degr 0), ce
qui donne
Z b
I [a;b] ( f ) I [a;b] ( f) = I [a;b] ( f (a)) =
f (a) dx = (b a) f (a).
a

Erreur Si f C ([a; b]) alors il existe ]a; b[ tel que f (x) = f (a) + (x a) f 0 () et donc lerreur de quadrature est
majore par
Z

E [a;b] ( f ) =

b
a

Z

f (x) f(x) dx =

b
a

f (x) f (b) dx

Z b

(b a)2 0
(b a)2
| f ()|
max| f 0 (x)|.
= (x a) f 0 () dx =
[a;b]
2
2
a

Degr Le degr de prcision de la formule du rectangle gauche est 0.


Formule composite On dcompose lintervalle dintgration [a; b] en m sous-intervalles de largeur H = ba
m 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
m1
m1
m1
X
X
X
m
I [a;b]
( f) =
I [xk ;xk+1 ] ( f) = H
f (x k ) = H
f (a + k H ).
k=0

k=0

k=0

Erreur Si f C ([a; b]) alors lerreur de quadrature est majore par


m
E [a;b]
(f ) =

96

m1
X
k=0

E [xk ;xk+1 ] ( f ) m

H2
ba
max| f 0 (x)| =
H max| f 0 (x)|.
[a;b]
2 [a;b]
2

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

Dfinition Formule du rectangle droite


Formule de base 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 qui interpole f en le point (b, f (b)) et donc de degr 0), ce qui
donne
Z b
I [a;b] ( f ) I [a;b] ( f) = I [a;b] ( f (b)) =
f (b) dx = (b a) f (b).
a

Erreur Si f C ([a; b]) alors il existe ]a; b[ tel que f (x) = f (b) + (x b) f 0 () et donc lerreur de quadrature est
majore par
Z

E [a;b] ( f ) =

Z

f (x) f(x) dx =

b
a

f (x) f (b) dx

Z b

(b a)2 0
(b a)2
| f ()|
max| f 0 (x)|.
= (x b) f 0 () dx =
[a;b]
2
2
a

Degr Le degr de prcision de la formule du rectangle droite est 0.


Formule composite On dcompose maintenant lintervalle dintgration [a; b] en m sous-intervalles de largeur H =
ba
m 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
I [a;b]
( f) =

m1
X

I [xk ;xk+1 ] ( f) = H

m1
X

f (x k+1 ) = H

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

k=0

k=0

k=0

m1
X

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


m
(f ) =
E [a;b]

m1
X

H2
ba
max| f 0 (x)| =
H max| f 0 (x)|.
[a;b]
2 [a;b]
2

E [xk ;xk+1 ] ( f ) m

k=0

Dfinition Formule du rectangle ou du point milieu


Formule de base La formule du rectangle ou du point milieu est obtenue en
remplaant

f par une constante gale


a+b
la valeur de f au milieu de [a; b] (polynme qui interpole f en le point a+b
et donc de degr 0), ce qui
2 ,f
2
donne

Z b

f a+b dx = (b a) f a+b .
I [a;b] ( f ) I [a;b] ( f) = I [a;b] f a+b =
2

Erreur Si f C 2 ([a; b]) alors il existe ]a; b[ tel que f (x) = f a+b
+ x a+b
f 0 a+b
+ 12 x a+b
f 00 () et donc
2
2
2
2
lerreur de quadrature est majore par
Z b

E [a;b] ( f ) =
f (x) f (x) dx
a
Z b

a+b

=
f (x) f 2 dx =
a

1 00
f ()
2

b
a

x a+b
2

b
a

dx =

a+b
2

0 a+b
2

1
2

a+b
2

f () dx
00

1 00 (b a)3 (b a)3
f ()

max| f 00 (x)|.
[a;b]
2
12
24

Degr Le degr de prcision de la formule du point milieu est 1.


Formule composite On dcompose maintenant lintervalle dintgration [a; b] en m sous-intervalles de largeur H =
ba
H
m avec m 1. En introduisant les nuds de quadrature x k = a + k 2 pour k = 0, 1, . . . , 2m (i.e. chaque sousintervalle [x 2k ; x 2k+2 ] a largeur H et donc x 2k+1 est sont point milieu), on obtient la formule composite du point
milieu
m1
m1
m1
X
X
X

m
I [a;b]
( f) =
I [x2k ;x2k+2 ] ( f) =
(x 2k+2 x 2k ) f (x 2k+1 ) = H
f a + (2k + 1) H2 .
k=0

k=0

k=0

Erreur Si f C ([a; b]) alors lerreur de quadrature est majore par


m
(f ) =
E [a;b]

G. Faccanoni

m1
X
k=0

E [x2k ;x2k+2 ] ( f ) m

H3
ba 2
max| f 00 (x)| =
H max| f 00 (x)|.
[a;b]
24 [a;b]
24

97

3. Quadrature

Jeudi 5 juin 2014

Dfinition Formule du trapze


Formule de base La formule du trapze est obtenue en remplaant f par le segment qui relie (a, f (a)) (b, f (b))
(polynme qui interpole f en les points (a, f (a)) et (b, f (b)) et donc de degr 1), ce qui donne
I [a;b] ( f ) I [a;b] ( f) = I [a;b]

f (b) f (a)
(x a) +
ba

Z
f (a) =

b
a

f (b) f (a)
(x a) +
ba

Erreur Si f C 2 ([a; b]) alors il existe ]a; b[ tel que f (x) f(x) =

f (a) dx =

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

f 00 ()
f 00 ()
2 2 (x) = 2 (x a)(x b)

et donc lerreur

de quadrature est majore par


Z

E [a;b] ( f ) =

f (x) f (x) dx =

12 f 00 ()

b
a

b
a

f 00 ()

2 (x a)(x b) dx

3
(b a)3
(x a)(x b) dx = 12 f 00 () (ba)

max| f 00 (x)|.
6
[a;b]
12

Degr Le degr de prcision de la formule du point milieu est 1, comme celle du point milieu.
Formule composite Pour obtenir la formule du trapze composite, on dcompose lintervalle dintgration [a; b] en
m sous-intervalles de largeur H = ba
m 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 des trapzes
m1
X

m1
X

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

!
m1
m1
X

1
1
H X
f (x k ) + f (x k+1 ) = H
f (a + k H ) + f (b) .
=
f (a) +
2 k=0
2
2
k=1

m
I [a;b]
( f) =

I [xk ;xk+1 ] ( f) =

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


m
E [a;b]
(f ) =

m1
X

E [xk ;xk+1 ] ( f ) m

k=0

H3
ba 2
max| f 00 (x)| =
H max| f 00 (x)|.
[a;b]
12 [a;b]
12

Dfinition Formule de Cavalieri-Simpson


Formule de base La formule de Cavalieri-Simpson est obtenue en remplaant f par la parabole qui interpole f en a,
en b et en a+b
2 (donc un polynme de degr 2), ce qui donne
!

a+b

(xa) x a+b
x 2 (xb)
(xa)(xb)
2
a+b

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


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

Z b a+b

(xa) x a+b
x 2 (xb)
(xa)(xb)
2
a+b

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


=
a+b
a+b f (b) dx
(ba) b 2
a a 2 (ab)
2 a
2 b

I [a;b] ( f ) I [a;b] ( f) = I [a;b]

ba
a +b
f (a) + 4 f
+ f (b) .
6
2

Erreur Si f C 4 ([a; b]) on peut dmontrer que lerreur de quadrature est majore par
E [a;b] ( f )

(b a)5
max| f (I V ) (x)|.
2880 [a;b]

Degr Le degr de prcision de la formule du point milieu est 3.


Formule composite On dcompose maintenant lintervalle dintgration [a; b] en m sous-intervalles de largeur H =
H
ba
m avec m 1. En introduisant les nuds de quadrature x k = a + k 2 pour k = 0, 1, . . . , 2m (i.e. chaque sousintervalle [x 2k ; x 2k+2 ] a largeur H et donc x 2k+1 est sont point milieu), on obtient la formule composite de CavalieriSimpson
m
I [a;b]
( f) =

98

m1
X
k=0

I [x2k ;x2k+2 ] ( f) =

m1
X
k=0

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

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

H m1
f (x 2k ) + 4 f (x 2k+1 ) + f (x 2k+2 )
6 k=0
!

m1
m1
X
X
H
f (x 2k+1 )
f (x 2k ) + 4
=
f (a) + f (b) +
6
k=0
k=1

!
m1
m1
X
X


H
1
=
f a+ k+ 2 H .
f (a + k H ) + 4
f (a) + f (b) +
6
k=0
k=1
=

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


m
E [a;b]
(f ) =

m1
X
k=0

E [x2k ;x2k+2 ] ( f ) m

H5
ba 4
max| f 00 (x)| =
H max| f 00 (x)|.
[a;b]
2880 [a;b]
2880

Algorithmes
M THODE DU RECTANGLE GAUCHE
Require: a ; b > a ; m > 0 ; f : [a; b] R
H ba
m
s 0
for k = 0 to m 1 do
s s + f (a + k H )
end for
return I H s

M THODE DU RECTANGLE DROITE


Require: a ; b > a ; m > 0 ; f : [a; b] R
H ba
m
s 0
for k = 0 to m 1 do
s s + f (a + (k + 1)H )
end for
return I H s

M THODE DU POINT MILIEU


Require: a ; b > a ; m > 0 ; f : [a; b] R
H ba
m
s 0
for k = 0 to m 1
do
s s + f a + k + 12 H
end for
return I H s

M THODE DES TRAPZES


Require: a ; b > a ; m > 0 ; f : [a; b] R
H ba
m
f (a)+ f (b)

s
2
for k = 1 to m 1 do
s s + f (a + k H )
end for
return I H s

M THODE DE S IMPSON
Require: a ; b > a ; m > 0 ; f : [a; b] R
H ba
m

s f (a) + f (b) + 4 f a + H2
for k = 1 to m 1 do


s s + f (a + k H ) + f a + k + 21 H
end for
return I H6 s

G. Faccanoni

99

3. Quadrature

Jeudi 5 juin 2014

(a) Formule du rectangle gauche.

(e) Formule du point milieu.

x0 = a

x4 = b

x1

x2

x3

x4 = b

(f) Formule du point milieu composite.

a+b
2

x3

x3
x5
x7
x1
x0 = a
x2
x4
x6
x8 = b

x0 = a

(g) Formule du trapze.

x2

(d) Formule du rectangle droite composite.

a+b
2

x1

(b) Formule du rectangle gauche composite.

(c) Formule du rectangle droite.

x0 = a

x1

x2

x3

x4 = b

(h) Formule du trapze composite.

(i) Formule de Cavalieri-Simpson.

x0 = a

x1

x2

x3

x4 = b

(j) Formule de Cavalieri-Simpson composite.

F IGURE 3.1.: Exemples de formules de quadrature.

100

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

3.3. Approximation de drives


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

f 0 (x i ) = lim

h0

Une ide naturelle pour calculer numriquement f 0 (x i )


consiste donc se donner une valeur de h positive assez petite et calculer
f (x i + h) f (x i )
,
h
f (x i ) f (x i h)
,
f 0 (x i )
h f (x i )
h
f (x i + h) f (x i h)
f 0 (x i ) h f (x i )
,
2h

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

(3.1)

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

(3.2)
f (x)

(3.3)

On les appelles taux daccroissement ou diffrences finies


? droite (ou progressive) + ,
h
? gauche (ou rtrograde) ,
h
? centre h .

f (x i h)
h
xi h

h
xi

xi + h

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 0 (x i ) + h 2 f 00 (x i ) + O(h 3 ),
on obtient
f (x i + h) f (x i ) f (x i ) + h f 0 (x i ) + h 2 f 00 (x i ) + O((h)3 ) f (x i )
=
= f 0 (x i ) + O(h),
h
h
f (x i ) f (x i h) f (x i ) f (x i ) + h f 0 (x i ) h 2 f 00 (x i ) + O(h 3 )
=
= f 0 (x i ) + O(h),
h
h
f (x i + h) f (x i h) f (x i ) + h f 0 (x i ) + (h)2 f 00 (x i ) + O(h 3 ) f (x i ) + h f 0 (x i ) (h)2 f 00 (x i )
=
= f 0 (x i ) + O(h 2 ).
2h
2h
Donc, si f est assez rgulire, les diffrences finies convergent vers f 0 (x i ) lorsque h tend vers zro. De plus, pour les diffrences finies gauche et droite la convergence est dordre 1 alors que la diffrence finie centre converge lordre 2.

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

from math import *

2
3
4

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

5
6
7

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

8
9
10

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

11
12
13
14

# TEST
def f(x):
return sin(x)

15
16
17

x = 0
for i in range(1,13):

G. Faccanoni

101

3. Quadrature

18
19
20
21
22

Jeudi 5 juin 2014

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

Dfinition Erreur de troncature


Les diffrences
| f 0 (x i ) +
h |,

| f 0 (x i )
h |,

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

Remarque Erreurs darrondis


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

ailleurs, daprs lingalit de Taylor-Lagrange, on a | f 0 (x i )


|
h

h
2

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


| f (x)|

Une tude rapide de la fonction h 7 h2 max | f 00 (x)| + 2 h montre que cette


r
| f (x)|
fonction possde un minimum absolu sur R+ atteint en h = 2 max | f 00 (x)| . Pour une fonction suffisamment rgulire, il
p
est donc judicieux de choisir une valeur de h qui soit de lordre de , cest--dire de lordre de 108 .
| f 0 (x i ) flt(
)|
h

h
2

| f (x)|
00
(x)| + 2 h .

max | f

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

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

p
1 + x en 0, on obtient

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.

102

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

De manire analogue, la drive seconde peut tre approche par


f 00 (x i )

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

et on a lestimation derreur :
f (x i + h) 2 f (x i ) + f (x i h)
h2
f (x i ) + h f 0 (x i ) + (h)2 f 00 (x i ) + O((h)3 ) 2 f (x i ) + f (x i ) h f 0 (x i ) + (h)2 f 00 (x i )
= f 00 (x i ) + O(h 2 ).
=
h2

G. Faccanoni

103

3. Quadrature

TTTTTTTTTTTTT

Jeudi 5 juin 2014

Codes Python

TTTTTTTTTTTT

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
Rb
approche de a f (x) dx.
Mthodes numriques.
1
2

#!/usr/bin/python
#-*- coding: Utf-8 -*-

3
4

import math, sys

5
6
7
8
9
10
11

def rectangle_gauche_composite(f,a,b,m):
H = (b-a)/m
s = 0.
for k in range(m):
s += f(a+k*H)
return H*s

12
13
14
15
16
17
18

def rectangle_droite_composite(f,a,b,m):
H = (b-a)/m
s = 0.
for k in range(m):
s += f(a+(k+1)*H)
return H*s

19
20
21
22
23
24
25

def milieu_composite(f,a,b,m):
H = (b-a)/m
s = 0.
for k in range(m):
s += f(a+(2*k+1)*H*0.5)
return H*s

26
27
28
29
30
31
32

def trapeze_composite(f,a,b,m):
H = (b-a)/m
s = (f(a)+f(b))*0.5
for k in range(1,m):
s += f(a+k*H)
return H*s

33
34
35
36
37
38
39

def simpson_composite(f,a,b,m):
H = (b-a)/m
s = f(a)+f(b)+f(a+H*0.5)
for k in range(1,m):
s += f(a+k*H)+f(a+(2*k+1)*H*0.5)
return H*s/6.

et voici quelques exemples dutilisation de ces mthodes


40
41

# CHOIX DU CAS TEST


exemple = 1

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

# 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:
n = 100
a = 0.0

104

G. Faccanoni

Jeudi 5 juin 2014

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

3. Quadrature

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

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)

71
72
73
74
75
76
77
78

print
print
print
print
print
print

"** Exacte : ", primitive(b)-primitive(a)


"Formule du rectangle a gauche composite : ", rectangle_gauche_composite(f,a,b,n)
"Formule du rectangle a droite composite : ", rectangle_droite_composite(f,a,b,n)
"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)

79
80

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

105

3. Quadrature

Jeudi 5 juin 2014

Exercices

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

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

Exercice 3.1
Estimer

R 5/2
0

f (x) dx partir des donnes


x
f (x)

0
/2

/2
2

1
2

/2
1.6364

2
1.2500

/2
0.9565
5

en utilisant
1. la mthode des rectangles gauche composite,
2. la mthode des rectangles droite composite,
3. la mthode des trapzes composite.
C ORRECTION DE L EXERCICE 3.1. On a a = 0, b =

5
2

et m = 5 donc h =
Z

Mthode 2
Mthode 3

= 12 .

Mthode
Mthode 1

ba
m

f (t )d t '

m1
X

1 3
f (a + i h) =
h
+ 2 + 2 + 1.6364 + 1.2500 = 4.1932
2 2
i =0
m1
X
1
f (a + (i + 1)h) = (2 + 2 + 1.6364 + 1.2500 + 0.9565) = 3.92145
h
2!
i =0

m1
X
1
1
1 3
0.9565
f (a + i h) + f (b) =
h
f (a) +
+ 2 + 2 + 1.6364 + 1.2500 +
= 4.057325
2
2
2 4
2
i =1

Exercice 3.2
tant donne lgalit
=4

Z
0

e x dx

10

Z
=4

e x dx +

2
,

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

C ORRECTION DE L EXERCICE 3.2. La mthode des trapzes composite m intervalles pour calculer lintgrale dune fonction f sur lintervalle [a, b] scrit
!

Z b
m1
X
1
ba
1
f (t )d t ' h
f (a) +
f (a + i h) + f (b)
avec h =
.
2
2
m
a
i =1
2

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


I'

10
2
1 X
1
1 1 1
1
1
1
1
1
1
1
1
+
e i + 100 = + + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100 ,
2 i =1
2e
2 e e
e
e
e
e
e
e
e
2e

ainsi en utilisant la fonction trapeze_composite(f,a,b,m) dcrite la page 24 comme suit


1

import math

2
3
4

def f(x):
return math.exp(-(x**2))

5
6
7

I = trapeze_composite(f,0,10,10)
print (4.*I**2)

on obtient 4I 2 = 3.14224265994.

Exercice
3.3
R

Estimer 0 sin(x) dx en utilisant la mthode des trapzes composite avec 8 et puis 16 sous-intervalles en prenant en
compte lerreur.

106

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

C ORRECTION DE L EXERCICE 3.3. La mthode des trapzes composite m + 1 points pour calculer lintgrale dune fonction f sur lintervalle [a, b] scrit

!
Z b
m1
X
1
1
ba
f (a + i h) + f (b)
f (t )d t ' h
f (a) +
avec h =
2
2
m
a
i =1
et lerreur est donn par
E =

b a 2 00
h f ()
12

avec a < < b.


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

!
Z
7
sin()
sin(0) X
sin(i /8) +
1.97423
+
sin(x) dx '
8
2
2
0
i =1
et lerreur est
E=

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

3
sin(0) = 0
768

E max =

ainsi

Z
(1.97423 0)

3
3
sin(/2) =
' 0.04037
768
768

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 nuds se trouvent au milieux des sous-intervalles prcdents :
x j = /16 + j /8 = (1 + 2 j )/16 pour j = 0, 1, . . . , 7, ainsi

Z
0

sin(x) dx '

7
1.97423 X
+
sin((1 + 2 j )/16) 1.99358
2
16 j =0

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

E max '

Z
1.99358

0.04037
= 0.01009
4

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

Exercice 3.4
On considre lintgrale
2

Z
I=

1
dx.
x

1. Calculer la valeur exacte de I .


2. valuer numriquement cette intgrale par la mthode des trapzes avec m = 3 sous-intervalles.
3. Pourquoi la valeur numrique obtenue la question prcdente est-elle suprieure ln(2) ? Est-ce vrai quelque
soit m ? Justifier la rponse. (On pourra saider par un dessin.)
4. Quel nombre de sous-intervalles m faut-il choisir pour avoir une erreur infrieure 104 ? On rappelle que lerreur
de quadrature associe scrit, si f C 2 ([a; b]),

(b a)4 00
,
|E m | =
f
()

12m 2

G. Faccanoni

]a; b[.

107

3. Quadrature

Jeudi 5 juin 2014

C ORRECTION DE L EXERCICE 3.4.


1. Une primitive de

1
x

h
ix=2
est F (x) = ln(x). La valeur exacte est alors I = ln(x)
= ln(2).
x=1

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

!
Z b
m1
X
1
1
ba
f (t )d t ' h
f (a + i h) + f (b)
f (a) +
avec h =
.
2
2
m
a
i =1
Ici on a f (x) = x1 , a = 1, b = 2, m = 3 do h =
I'

1
3

et on obtient

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

3. La valeur numrique obtenue la question prcdente est suprieure ln(2) car la fonction f (x) = x1 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 :

0.5
0

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 signifie quune corde dfinie 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

4. Lerreur est majore par

|E m |

(b a)4
sup | f 00 ()|.
12m 2 ]a;b[

Donc ici on a f (x) = 1/x, f 0 (x) = 1/x 2 et f 00 (x) = 2/x 3 , ainsi


|E m |
Pour que |E m | < 104 il suffit que
quadrature est infrieure 104 .

1
6m 2

1
2
1
max
=
.
12m 2 ]1;2[ 3 6m 2

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

Exercice 3.5
On considre lintgrale
2

Z
I=

ln(x) dx.
1

1. valuer numriquement cette intgrale par la mthode des trapzes composite avec m = 4 sous-intervalles et
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 ? (Justifier 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 vrifie

(b a) 2 00

|E m | =
h f () ,
]a; b[.
12

C ORRECTION DE L EXERCICE 3.5.


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

!
Z b
m1
X
1
1
ba
f (t )d t ' h
f (a) +
f (a + i h) + f (b)
avec h =
.
2
2
m
a
i =1

108

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

1
4

et on obtient

1 1
3
7
1
5
3
7
1
5
1
I'
+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

Une primitive de ln(x) est F (x) = x(ln(x)1). La valeur exacte est alors I = [x(ln(x)1)]x=2
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 signifie quune corde dfinie 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 :

0.5

y
1
0.5

2. Lerreur est majore par

0.5 1 1.5 2

|E m |

0.5 1 1.5 2

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

On a f (x) = ln(x), f 0 (x) = 1/x et f 00 (x) = 1/x 2 , ainsi


|E m |
Pour que |E m | < 102 il suffit que
quadrature est infrieure 102 .

1
12m 2

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

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

Exercice 3.6

Soit f une fonction C (R, R).


1. On considre lapproximation
Z

1
1

f (x) dx



1
11 f 35 + f 15 + f 15 + 11 f 53 .
12

Quel est le degr de prcision de cette formule de quadrature ?


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

ba
n .

laide dun change-

xi

En tirer une formule de quadrature composite pour lintgrale


Rb
3. crire lalgorithme pour approcher a f (x) dx.

Rb
a

f (x) dx.

C ORRECTION DE L EXERCICE 3.6.


1. On a
R1

1 p k (x) dx

1
12 (11p k (3/5) + p k (1/5) + p k (1/5) + 11p k (3/5))

Degr dexactitude

au moins 0

au moins 1

x2

2/3

2/3

au moins 2

x3

au moins 3

2/5

446/1875

p k (x) = x k

La formule est donc exacte de degr 3.

G. Faccanoni

109

3. Quadrature

Jeudi 5 juin 2014

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

f (x) dx = m

xi

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

xi

f (mt + q) dt

x i +1 x i
2

avec

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

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

Z
x i +1 x i 1
x i +1 x i
dt
f x i + (t + 1)
2
2
1
h

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

11 f x i +
+ f xi + 2
+ f xi + 3
+ 11 f x i + 4
.
24
5
5
5
5

f (x) dx =

Soit h = x i +1 x i =

ba
n . La formule prcdente se rcrit

x i +1

h
h
2h
3h
4h
f (x) dx
11 f x i +
+ f xi +
+ f xi +
+ 11 f x i +
.
24
5
5
5
5

xi

et la formule de quadrature composite dduite de cette approximation est


Z

b
a

f (x) dx =

n1
X Z xi +1
i =0 x i

f (x) dx

X
h n1
h
2h
3h
4h
11 f x i +
+ f xi +
+ f xi +
+ 11 f x i +
.
24 i =0
5
5
5
5

Rb
3. Algorithme dapproximation de a f (x) dx
Require: a ; b > a ; n > 0 ; f : [a; b] R
h ba
n
s 0
for i = 0 to n 1 do
x a +ih

3h
4h
s s + 11 f x + h5 + f x + 2h
5 + f x + 5 + 11 f x + 5
end for
h
return I 24
s

Exercice 3.7

Soit f une fonction C (R, R).


1. On considre lapproximation
Z

1
1

f (x) dx


2
2 f 12 f (0) + 2 f 21 .
3

Quel est le degr de prcision de cette formule de quadrature ?


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

ba
n .

laide dun change-

xi

En tirer une formule de quadrature composite pour lintgrale


Rb
3. crire lalgorithme pour approcher a f (x) dx.

Rb
a

f (x) dx.

C ORRECTION DE L EXERCICE 3.7.


1. On a
R1

1 p k (x) dx

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

Degr dexactitude

au moins 0

au moins 1

x2

2/3

2/3

au moins 2

x3

au moins 3

2/5

1/6

p k (x) = x k

La formule est donc exacte de degr 3.

110

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

xi

f (x) dx = m

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

x i +1
xi

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

Soit h = x i +1 x i =

f (mt + q) dt

x i +1 x i
2

avec

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

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

"
x +x
!#
x +x !
i +1
i
x

x i + i +12 i
+ x i +1
x i +1 x i
x i +1 x i
i +1 + x i
2
f x i + (t + 1)
dt
2f
f
+2f
.
2
3
2
2
2
1
1

ba
n . La formule prcdente se rcrit

x i +1
xi

h
h
h
3h
f (x) dx
2 f xi +
f xi +
+ 2 f xi +
.
3
4
2
4

et la formule de quadrature composite dduite de cette approximation est


b

f (x) dx =

n1
X Z xi +1
i =0 x i

X
h n1
h
h
3h
f (x) dx
2 f xi +
f xi +
+ 2 f xi +
.
3 i =0
4
2
4

Rb
3. Algorithme dapproximation de a f (x) dx
Require: a ; b > a ; n > 0 ; f : [a; b] R
h ba
n
s 0
for i = 0 to n 1 do
x a + i h

s s + 2 f x + h4 f x + h2 + 2 f x + 3h
4
end for
return I h3 s

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

f (x) ln
a

ba
n .


1
dx.
x

1. On dsire dvelopper une formule dintgration numrique de la forme


1

Z
0


1
f (x) ln
dx f ().
x

Dterminer les valeurs des constantes et de telle sorte que le degr dexactitude de cette formule de quadrature
soit le plus lev possible. Donner ce degr.
Rappel : pour m 0,

Z 1
0

x m ln


1
1
dx =
.
x
(m + 1)2

2. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale

Z xi +1
1
f (x) ln
dx.
x
xi
3. 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

Z b
1
f (x) ln
dx.
x
a

G. Faccanoni

111

3. Quadrature

Jeudi 5 juin 2014

C ORRECTION DE L EXERCICE 3.8.



R1
1. On pose f (x) = x m et on note I m = 0 x m ln x1 dx la valeur exacte de lintgrale et Im = m la valeur obtenue par la
formule de quadrature. On a
? I 0 = 1 et I0 = : pour que le degr soit au moins 0 il faut choisir = 1 ;
1
1
? I 1 = 4 et I1 = = : pour que le degr soit au moins 1 il faut choisir x 0 = 4 ;
1
1
2
? I 2 = 9 et I2 = = 16 : le degr dexactitude est au plus 1.
2. Soit le changement de variable affine
x : [0; 1] [x i ; x i +1 ]
t 7 x = mt + q
tel que
(

x i = q,

i.e.

x i +1 = m + q,

(
m = (x i +1 x i ) = h,
q = x i = a + i h,

alors
Z

x i +1
xi

Z 1
1
1
f (x) ln
dx = m
f (mt + q) ln
dt
x
mt + q
0


1
1
h
mf m +q =hf
+ xi = h f a + i + h .
4
4
4

3. On trouve la formule de quadrature composite




Z b
n1
n1
X Z xi +1
X
1
1
1
f (x) ln
f (x) ln
dx =
dx h
f a+ i + h .
x
x
4
a
i =0 x i
i =0

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

ba
n .

f (x) dx.

(3.4)

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

1
1

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

(3.5)

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 de prcision de cette formule de quadrature ?
2. laide dun changement de variable affine, tendre cette formule de quadrature pour lintgrale suivante :
Z xi +1
f (x) dx.
xi

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 .
C ORRECTION DE L EXERCICE 3.9.
1. On a
k
0
1
2

p k (x) = x k
1
x
x2

R1

p k () + p k ()
Degr dexactitude
2
au moins 0
0
au moins 1
p
p
22
1 si 6= 1/ 3, au moins 2 si = 1/ 3
p
Soit = 1/ 3
3
x3
0
0
au moins 3
4
x4
2/5
2/9
3
p
p
Donc la formule de quadrature a degr de prcision 1 si 6= 1/ 3 et degr de prcision 3 si = 1/ 3.

112

1 p k (x) dx

2
0
2/3

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

2. Par le changement de variable y = x i + (x + 1)


Z

x i +1
xi

x i +1 x i
2

on dduit la formule de quadrature

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

q
q
x i +1 x i
x i +1 x i
x i +1 x i

f x i + 1 13
+ f x i + 1 + 13
.
2
2
2

f (y) dy =

3. Si h = x i +1 x i = ba
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)
Z

b
a

f (x) dx

q
q
q
q
X
X
h n1
h n1
f x i + h 1 13 + f x i + h 1 + 13
f a + h i + 1 13 + f a + h i + 1 + 13
=
.
2 i =0
2 i =0

Cette formule de quadrature est stable puisque tous les coefficients sont positifs.
4. Algorithme du calcul de F :
Require: a ; b > a ; n > 0 ; f : [a; b] R
h ba
n
q
1 a + 1 13 h
q

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

Exercice 3.10 Interpolation et Intgration


1. Soit f une fonction de classe C 1 ([1, 1]) et p le polynme de L AGRANGE 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 de prcision de la formule de quadrature ainsi trouve.


4. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z x2i +2
f (x) dx.
x 2i

5. Soit h =
2h.

ba
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


Z

f (x) dx.
a

6. crire lalgorithme associ cette formule de quadrature.


C ORRECTION DE L EXERCICE 3.10.
1. On a trois points, donc le polynme interpolateur de L AGRANGE est un polynme de R2 [x]. On cherche alors les
coefficients , et du polynme p(x) = + x + x 2 tels que

(3.6a)

f (1) = + ,
f (0) = ,
(3.6b)

f (1) = + + .
(3.6c)

G. Faccanoni

113

3. Quadrature

Jeudi 5 juin 2014

Lquation (3.6b) donne = f (0), la somme (3.6c)+(3.6a) donne =


donne =

f (1) f (1)
.
2

f (1)+ f (1)
f
2

(0) et enfin la soustraction (3.6c)(3.6a)

2. On en dduit la mthode de quadrature


Z

1
1

Z
f (t ) dt

1
1

p(t ) dt = 2( + /3) =

f (1) + 4 f (0) + f (1)


.
3

3. Par construction, cette formule de quadrature a degr de prcision au moins 2. De plus


k
3
4

p k (x) = x k
x3
x4

1 p k (x) dx

p k (1)+4p k (0)+p k (1)


3

0
2/5

0
2/3

R1

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

f (x) dx = m

f (mt + q) dt

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

x 2i +2
x 2i

f (x) dx =

x 2i +2 x 2i
2

avec

x 2i +2 x 2i
2

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

i.e.

(
m=
q=

x 2i +2 x 2i
,
2
x 2i +2 +x 2i
,
2

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

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

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

b
a

f (x) dx =

n1
X Z x2i +2
i =0 x 2i

f (x) dx

n1
X
i =0

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

h n1
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 )
3 i =0
"
#
n1
n1
X
X
h
=
f (a) + f (b) + 2
f (x 2i ) + 4
f (x 2i + h)
3
i =1
i =0
"
#
n1
n1
X
X
h
=
f (a) + f (b) + 2
f (a + 2i h) + 4
f (a + (2i + 1)h) .
3
i =1
i =0

6. Algorithme du calcul associ cette formule de quadrature


Require: a ; b > a ; n > 0 ; f : [a; b] R
h ba
2n
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 h3 f (a) + f (b) + 2s 1 + 4s 2


Il sagit de la mthode de C AVALIERI -S IMPSON composite.

Exercice 3.11 Interpolation et Intgration


1. Soit f une fonction de classe C 1 ([0, 2]) et p le polynme de L AGRANGE qui interpole f aux points 0, 1 et 2. crire le
polynme p.
2. En dduire une mthode de quadrature pour approcher lintgrale
2

f (t ) dt .
0

114

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

3. tudier le degr de prcision de la formule de quadrature ainsi trouve.


4. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z x2i +2
f (x) dx.
x 2i

5. Soit h =
2h.

ba
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

b
x 2n

h
x 2i +1 x 2i +2

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


Z

f (x) dx.
a

C ORRECTION DE L EXERCICE 3.11.


1. On a trois points, donc le polynme interpolateur de L AGRANGE est un polynme de R2 [x]. On cherche alors les
coefficients , et du polynme p(x) = + x + x 2 tels que

f (0) = ,
f (1) = + + ,

f (2) = + 2 + 4.

Donc = f (0), = 32 f (0) + 2 f (1) 21 f (2) et = 12 f (0) f (1) + 12 f (2).


2. On en dduit la mthode de quadrature
Z
Z 2
f (t ) dt
0

2
0

8
f (0) + 4 f (1) + f (2)
p(t ) dt = 2 + 2 + =
.
3
3

3. Par construction, cette formule de quadrature a degr de prcision au moins 2. De plus


R2
p k (0)+4p k (1)+p k (2)
k p k (x) = x k
Degr dexactitude
0 p k (x) dx
3
3
3
x
4
4
au moins 3
4
x4
32/5
2/3
3
La formule est exacte pour les polynmes de degr au plus 3.
4. Soit x = mt + q, alors
Z

x 2i +2
x 2i

f (x) dx = m

Z
0

f (mt + q) dt
x

avec

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

i.e.

(
m=

x 2i +2 x 2i
2

q = x 2i ,

do le changement de variable x = 2i +22 2i t + x 2i . On dduit la formule de quadrature (exacte sur lespace des
polynme de degr au plus 3)
Z x2i +2
Z

x 2i +2 x 2i 2 x 2i +2 x 2i
x 2i +2 x 2i
f (x) dx =
f
t + x 2i dt
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) .
2
2
6
x 2i
0
5. h = ba
2n = x i +1 x i pour i = 0, . . . , 2n 1. On subdivise lintervalle [a; b] en n intervalles [x 2i ; x 2i +2 ] de largeur 2h. On
trouve ainsi la formule de quadrature composite
Z b
n1
n1
X Z x2i +2
X x 2i +2 x 2i

f (x) dx =
f (x) dx
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 )
6
a
i =0 x 2i
i =0
X

h n1
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 )
3 i =0
"
#
n1
n1
X
X
h
=
f (a) + f (b) + 2
f (x 2i ) + 4
f (x 2i + h)
3
i =1
i =0
"
#
n1
n1
X
X
h
=
f (a) + f (b) + 2
f (a + 2i h) + 4
f (a + (2i + 1)h) .
3
i =1
i =0

Il sagit de la mthode de C AVALIERI -S IMPSON composite.

G. Faccanoni

115

3. Quadrature

Jeudi 5 juin 2014

Exercice 3.12 Interpolation et Intgration


1. Soit f une fonction de classe C 1 ([0, 4]) et p le polynme de L AGRANGE qui interpole f aux points 1, 2 et 3. crire le
polynme p.
2. En dduire une mthode de quadrature pour approcher lintgrale
4

f (t ) dt .
0

3. tudier le degr de prcision de la formule de quadrature ainsi trouve.


4. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z x4i +4
f (x) dx.
x 4i

5. Soit h =
4h.

ba
4n

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


a
x0

h
x 4i

b
x 4n

h
h
h
x 4i +1 x 4i +2 x 4i +3 x 4i +4

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


Z

f (x) dx.
a

C ORRECTION DE L EXERCICE 3.12.


1. On a trois points, donc le polynme interpolateur de L AGRANGE est un polynme de R2 [x]. On cherche alors les
coefficients , et du polynme p(x) = + x + x 2 tels que

f (1) = + + ,
f (2) = + 2 + 4,

f (3) = + 3 + 9.
Donc = 3 f (1) 3 f (2) + f (3), = 25 f (1) + 4 f (2) 32 f (3) et = 12 f (1) f (2) + 12 f (3).
2. On en dduit la mthode de quadrature
4

Z
0

Z
f (t ) dt

p(t ) dt = 4 + 8 +

64
4
= (2 f (1) f (2) + 2 f (3)).
3
3

3. Par construction,
cette formule de quadrature a degr de prcision au moins 2.
R4
De plus, 0 x 3 dx = 64 et 43 (213 23 +233 = 64 donc la formule est exacte pour les polynmes de degr au moins 3.
R4
8(1)4 4(2)4 +8(3)4
Enfin, 0 x 4 dx = 592
= 1024
3 et tandis que
3
3 donc la formule est exacte pour les polynmes de degr
au plus 3.
4. Soit le changement de variable affine
x : [0; 4] [x 4i ; x 4i +4 ]
t 7 x = mt + q
tel que
(

x 4i = q,
x 4i +4 = 4m + q,

alors
Z x4i +4
Z
f (x) dx = m
x 4i

116

i.e.

(
m=

x 4i +4 x 4i
4

= h,

q = x 4i = a + 4i h,

4
f (mt + q) dt m 2 f (m + q) f (2m + q) + 2 f (3m + q)
3
0
4

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

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

f (x) dx =

n1
X Z x4i +4
i =0 x 4i

f (x) dx

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

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

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

1
1

g (x) dx g (1) + g (0) + g (1),

(3.8)

o les rels et sont dterminer.


1. Dterminer et pour que la formule de quadrature (3.8) ait degr de prcision maximale.
2. laide dun changement de variable affine, en dduire une formule de quadrature exacte sur lespace des polynme de degr au plus 3 pour lintgrale suivante :
Z x2i +2
f (x) dx.
x 2i

3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.7). 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.7) et F .
C ORRECTION DE L EXERCICE 3.13.
1. On a
R1

k
0

p k (x) = x k
1

1
2

x
x2

0
2/3

3
4

x3
x4

0
2/5

1 p k (x) dx

p k (1) + p k (0) + p k (1)


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

Si 6= 2(1 ) la formule de quadrature nest mme pas exacte pour une constante, si = 2(1 ) mais 6= 1/3, 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
Z

x 2i +2
x 2i

f (x) dx = m

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

x 2i +2
x 2i

G. Faccanoni

f (x) dx =

x 2i +2 x 2i
2

f (mt + q) dt

x 2i +2 x 2i
2

avec

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

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

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

117

3. Quadrature

Jeudi 5 juin 2014

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


Z

b
a

x i +1 x i
2

Si h =
Z

b
a

ba
2n

f (x) dx =

n1
X Z x2i +2
i =0 x 2i

f (x) dx

n1
X
i =0

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

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

#
"
n1
n1
X
X
X
h
h n1
f (x 2i + h)
f (x 2i ) + 4
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) =
f (a) + f (b) + 2
f (x) dx
3 i =0
3
i =0
i =1
#
"
n1
n1
X
X
h
f (a + (2i + 1)h) .
=
f (a + 2i h) + 4
f (a) + f (b) + 2
3
i =0
i =1

Cette formule de quadrature est stable puisque tous les coefficients sont positifs et on a
#
"
n1
n1
X
X
h
ba
ba
1 =
1+4
1+1+2
6n = (b a).
[2 + 2(n 1) + 4n] =
3
6n
6n
i =0
i =1
4. Algorithme du calcul de F :
Require: f : [a, b] R, a, b > a, n > 0
H ba
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 H6 f (a) + f (b) + 2s 1 + 4s 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 2i ) + (x x 2i ) f 0 (x 2i ) + (x x 2i )2
et le reste de L AGRANGE
R i (x) = (x x 2i )4

f I V ()
24

f 00 (x 2i )
f 000 (x 2i )
+ (x x 2i )3
2
6

P3

avec ]x 2i ; x 2i +2 [.

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.7) et F suivante 1


Z b
n1 Z x
n1

2i +2
X Z x2i +2

f (x) dx F
P i (x) dx F +
R i (x) dx

i =0 x2i
i =0 x2i

Z
n1

X x2i +2

nH |R i (x 2i +2 )| +
R i (x) dx
i =0 x2i

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

nH

Rx
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 x2i2i +2 P i (x) dx F 6= 0.

118

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

ba
n .

f (x) dx.

(3.9)

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

1
1

g (x) dx

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

(3.10)

o le rel 0 < < 1 sera dterminer par la suite.


1. Dterminer pour que la formule de quadrature (3.10) ait degr de prcision maximale. Quel est alors le degr de
prcision de cette formule de quadrature ?
2. laide dun changement de variable affine, tendre cette formule de quadrature pour lintgrale suivante :
Z xi +1
f (x) dx.
xi

3. En dduire une formule de quadrature 3n points, note F , pour le calcul approch de (3.9). Cette formule de
quadrature est-elle stable ?
C ORRECTION DE L EXERCICE 3.14.
1. On a
k
0
1
2

p k (x) = x k
1
x
x2

3
4

x3
x4

R1

1 p k (x) dx

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

2
0
2/3

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

0
2/5

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

p
p
Si 6= 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)
Z

x i +1
xi

x i +1 x i
2

on dduit la formule de quadrature

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

q
q

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

f x i + 1 12
+ f xi +
+ f x i + 1 + 12
.
3
2
2
2

f (y) dy =

3. Si H = x i +1 x i = ba
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)
Z

b
a

Xh
H n1
f
3 i =0
Xh
H n1
=
f
3 i =0

f (x) dx

x i + H 1 p1 + f x i + H2 + f x i + H 1 + p1
2

.
a + H i + 1 p1 + f x i + H2 + f a + H i + 1 + p1
2

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

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

ba
n .

f (x) dx.

(3.11)

G. Faccanoni

119

3. Quadrature

Jeudi 5 juin 2014

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

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

(3.12)

o 0 < w 1 est dterminer.


1. Dterminer w pour que la formule de quadrature (3.12) 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 affine, en dduire une formule de quadrature pour lintgrale suivante :
Z xi +1
f (x) dx.
xi

3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.11). Cette formule de
quadrature est-elle stable ?
4. crire lalgorithme du calcul de F .
C ORRECTION DE L EXERCICE 3.15.
1. On a

R1

Degr dexactitude
2p k w2 + p k (w)
2
2
au moins 0
0
0
au moins 1
p
p
2/3
w2
1 si w 6= 2/3, au moins 2 si w = 2/3
p
Soit w = 2/3
3
x3
0
w 3 /2
2
p
p
Si w 6= 2/3 la formule de quadrature est exacte pour les polynmes de degr au plus 1, si w = 2/3 la formule est
exacte pour les polynmes de degr au plus 2.
k
0
1
2

p k (x) = x k
1
x
x2

1 p k (x) dx

2
3

2. Par le changement de variable y = x i + (x + 1)


Z

x i +1
xi

x i +1 x i
2

on dduit la formule de quadrature

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

q
q
x i +1 x i
x i +1 x i
x i +1 x i

f x i + (1 + 23 )
+ 2 f x i + (1 16 )
.
3
2
2

f (y) dy =

3. Si H = x i +1 x i = ba
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)
Z

b
a

q
q
X
H n1
f x i + H 1 + 23 + 2 f x i + H 1 16
3 i =0
"

r !!
r !!#
X
2
1
H n1
=
f a +H i +1+
+2f a + H i +1
.
3 i =0
3
6

f (x) dx

Cette formule de quadrature est stable puisque tous les coefficients sont positifs.
4. Algorithme du calcul de F :
Require: a ; b > a ; n > 0 ; f : [a; b] R
H ba
n
p
1 a + H (1 + p2/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 H3 s

Exercice 3.16
Soit 0 < 1 un nombre rel donn et soit 1 , 2 , 3 trois nombres rels. Considrons la formule de quadrature
Z 1
g (t ) dt 1 g () + 2 g (0) + 3 g ().
1

120

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

1. Calculer , 1 , 2 , 3 pour que le degr de prcision de la formule de quadrature soit de 5.


2. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z xi +1
f (x) dx.
xi

3. Soit h = ba
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.
a

4. crire lalgorithme associ cette formule de quadrature.


C ORRECTION DE L EXERCICE 3.16.
1. On a
k

p k (x) = x k

R1

1 p k (x) dx

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

1 + 2 + 3

Soit 2 = 2 1 3
x

1 + 3

Soit 3 = 1 et donc 2 = 2 21
x

2
3

Soit 1 =

1
32

22 1

et donc 3 =

1
32

et 2 = 2 32 2

x3

2
5

2 2
3

Soit =

3
5

et donc 1 = 3 =

5
9

et 2 =

x5

x6

2
7

6
25

8
9

q
Si = 35 , 1 = 3 = 59 et 2 = 89 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
Z

x i +1

f (x) dx = m

xi

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

xi

f (mt + q) dt

x i +1 x i
2

avec

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

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

x i +1 x i
f x i + (t + 1)
dt
2
1
"

!#
r !
r !
x

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

18
5
2
2
5
2

f (x) dx =

x i +1 x i
2

3. h = ba
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
Z

b
a

f (x) dx =

G. Faccanoni

n1
X Z xi +1

f (x) dx

i =0 x i

121

3. Quadrature

Jeudi 5 juin 2014

"

!
!#

r !
r !
x

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

5 f xi + 1
+8f
+ 5 f xi + 1 +
18
5
2
2
5
2
i =0
"

r ! !
r ! !#

n1
3
h
3
h X
5 f xi + 1
h + 8 f xi +
+ 5 f xi + 1 +
h
=
18 i =0
5
2
5
"

r ! !
r ! !#


X
h n1
1
3
3
=
5f a + i +1
h +8f a + i + h +5f a + i +1+
h .
18 i =0
5
2
5
n1
X

4. Algorithme du calcul associ cette formule de quadrature


Require: a ; b > a ; n > 0 ; f : [a; b] R
h ba
n
p

c 1 a + 1 3/5 h
c 2 a + 12 h
p

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
s
return 18

Exercice 3.17 Interpolation et quadratures


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

ba
n .

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

f (x) dx.
a

1. crire le polynme p qui interpole f aux points 0 et 1.


2. En dduire une formule de quadrature base sur lapproximation
1

Z
0

Z
f (x) dx

p(x) dx
0

et tudier le degr de prcision de cette formule de quadrature.


3. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z xi +1
f (x) dx.
xi

4. En utilisant le rsultat au point prcdent, proposer une formule de quadrature composite pour le calcul approch
de lintgrale
Z b
f (x) dx.
a

Quelle mthode de quadrature reconnait-on ?


C ORRECTION DE L EXERCICE 3.17.
1. On a deux points dinterpolation, donc le polynme dinterpolation est un polynme de R1 [x]. On cherche alors les
coefficients et du polynme p(x) = + x tels que
(
f (0) = p(0) = ,
f (1) = p(1) = + .
On obtient = f (0) et = f (1) f (0).
2. On en dduit la mthode de quadrature
Z 1
Z
f (t ) dt
0

1
0

Z
p(t ) dt =

+ t dt = +

f (0) + f (1)
=
.
2
2

Par construction, cette formule de quadrature a degr de prcision au moins 1. Soit f (x) = x 2 , alors
tandis que

122

f (0)+ f (1)
2

R1
0

f (x) dx = 1/3

= 1/2 : la formule est exacte pour les polynmes de degr au plus 1.

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

3. Soit x = mt + q, alors
x i +1

f (x) dx = m

xi

f (mt + q) dt

avec

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

do le changement de variable x = x i + (x i +1 x i )t . On en dduit la formule de quadrature (exacte sur lespace des


polynme de degr au plus 1)
x i +1

f (x) dx = (x i +1 x i )

xi

f x i + (x i +1 x i )t dt (x i +1 x i )

4. On subdivise lintervalle [a; b] en n intervalles [x i ; x i +1 ] de largeur h =


la formule de quadrature composite
Z

b
a

f (x) dx =

n1
X Z xi +1
i =0 x i

f (x) dx

n1
X

(x i +1 x i )

i =0

ba
n

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

x i +1 x i
2

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

f (x i ) + f (x i +1 ) h n1
=
f (x i ) + f (x i +1 )
2
2 i =0
#
#
"
"
n1
n1
X
X
h
h
f (x i ) =
f (a + i h) .
=
f (a) + f (b) + 2
f (a) + f (b) + 2
2
2
i =1
i =1

Il sagit de la mthode des trapzes composite.

Exercice 3.18 Interpolation de L AGRANGE et quadratures


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

ba
n .

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

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
Z

1
1

Z
f (x) dx

p(x) dx
1

et tudier le degr de prcision de cette formule de quadrature.


2. laide dun changement de variable affine, en dduire une formule de quadrature pour lintgrale
Z xi +1
f (x) dx.
xi

3. En utilisant le rsultat au point prcdent, proposer une formule de quadrature composite pour le calcul approch
de lintgrale
Z b
f (x) dx.
a

Quelle mthode de quadrature reconnait-on ?


C ORRECTION DE L EXERCICE 3.18.
1. On a deux points dinterpolation, donc le polynme interpolateur de L AGRANGE est un polynme de R1 [x]. On
cherche alors les coefficients et du polynme p(x) = + x tels que

f (1) = p(1) = ,

(3.13a)

f (1) = p(1) = + .

(3.13b)

La somme des quations (3.13b)+(3.13a) donne =


=

f (1)+ f (1)
2

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

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

1
1

Z
f (t ) dt

1
1

Z
p(t ) dt =

1
1

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

Par construction, cette formule de quadrature a degr de prcision 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.

G. Faccanoni

R1
1

f (x) dx = 2/3

123

3. Quadrature

Jeudi 5 juin 2014

2. Soit x = mt + q, alors
Z

x i +1
xi

f (x) dx = m

1
x

f (mt + q) dt

avec

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

do le changement de variable x = x i + (t + 1) i +12 i . On en dduit la formule de quadrature (exacte sur lespace des
polynme de degr au plus 1)
Z xi +1
Z

x i +1 x i 1
x i +1 x i
x i +1 x i
f (x) dx =
dt
f (x i ) + f (x i +1 ) .
f x i + (t + 1)
2
2
2
xi
1
3. On subdivise lintervalle [a; b] en n intervalles [x i ; x i +1 ] de largeur h =
ainsi la formule de quadrature composite
Z

b
a

f (x) dx =

n1
X Z xi +1
i =0 x i

f (x) dx

n1
X
i =0

ba
n

= x i +1 x i pour i = 0, . . . , n 1. On trouve

X
h n1

x i +1 x i
f (x i ) + f (x i +1 ) =
f (x i ) + f (x i +1 )
2
2 i =0
#
#
"
"
n1
n1
X
X
h
h
f (x i ) =
f (a + i h) .
f (a) + f (b) + 2
f (a) + f (b) + 2
=
2
2
i =1
i =1

Il sagit de la mthode des trapzes composite.

Exercice 3.19 Interpolation dH ERMITE et quadratures


Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dH ERMITE (de degr 3) de f vrifiant
p 0 (1) = f 0 (1),

p(1) = f (1),

p(1) = f (1),

p 0 (1) = f 0 (1).

1. crire le polynme p.
2. En dduire la mthode dintgration numrique lmentaire
Z

1
1

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

1 0
f (1) f 0 (1) .
3

3. Connaissant la formule sur [1; 1], en dduire la formule de quadrature des trapzes-H ERMITE sur lintervalle [a; b]
par exemple grce au changement de variable y = a + (x + 1) ba
2 .
C ORRECTION DE L EXERCICE 3.19.
1. Cf. exercice 2.13.
2. En intgrant le polynme ainsi trouv on en dduit

Z 1
2 3 4 1
p(x) dx = x + x + x + x
2
3
4
1
1
2
2 f (1) + 2 f (1) + f 0 (1) f 0 (1) f 0 (1) + f 0 (1)
= 2 + =
+
3
2
6
6 f (1) + 6 f (1) + 3 f 0 (1) 3 f 0 (1) f 0 (1) + f 0 (1)
=
6
1 0
= f (1) + f (1) + ( f (1) f 0 (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

Z 1
1 5 1
2
6
f (x) dx =
x
= =
5
5
15
1
1
6=
1 0
1
14 70
f (1) + f (1) + ( f (1) f 0 (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
2
variable y = a + (x + 1) ba
2 qui donne

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

124

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

ba
(b a)2 0
( f (a) + f (b)) +
( f (a) f 0 (b)).
2
12

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

f (x) dx.

(3.14)

1. Soit i un entier fix (1 i n 1). Trouver m i un point du segment [x i ; x i +1 ] et a, b et c trois coefficients 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 :
Z
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 )


Q( f ) =

n
X

i f (x i ) +

n1
X

i f (m i )

i =0

i =0

pour le calcul approch de 3.14 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)|

k
sup[y 1 ;y k ] | f (k) ()| Y

k!

(x y j ).

j =1

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


1

Z
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 DE L EXERCICE 3.20.
1. Pour simplifier 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
de variable
R1
R le changement
R xi +1affine y =
xx i
xi
xx i
1
1 x i +1
f
(
f (t ) dt
x

.
On
note
h
=
x

x
.
Alors
y
=
et
on
a
f
(y)
dy
=
)d
x.
Comme
i +1
i
0
xi
x i +1 x i
x i +1 x i
h
h xi
h

R1
R
xx i
m i x i
1 x i +1
1
a f (x i ) + b f (m i ) + c f (x i +1 ), alors 0 f (y) dy = h xi f ( h ) dx h a f (0) + b f ( h ) + c f (1) . On note alors A = ha ,
B = hb , C = hc , M =

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

Z
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

G. Faccanoni

125

3. Quadrature

Jeudi 5 juin 2014

R1

p(x) dx

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

k
h

d 0 x + d21 x 2 + d32 x 3 + d43 x 4

i1

Ad 0 + B d 0 +C d 0

k
d0 +

d1
2

k
d2
3

d3
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

B M +C = 1
2
B M 2 +C = 1

B M 3 +C = 41
La mthode

A + B +C = 1

B M = 1 C
2

( 1 C )M = 1 C

2
3

1
( 3 C )M = 14 C

Z
0

f (x) dx =

A = 6 ,

B = 2 ,
3

C
=

6,

M = 21 .


1
1
2 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
5 1
Z 1
1
x
=
f (x) dx =
5 0 5
0
mais



1
2 1
1
1 2 1 4 1
5
f (0) + f
+ f (1) = +
+ =
,
6
3 2
6
6 3 2
6 24

donc la formule de quadrature est exacte de degr 3.


Si on revient aux variables initiales, on trouve

m i = 12 x i + 12 x i +1 ,

a = 1 h,
6
2

b = 3 h,

c = 16 h
2. Lintgrale
1

Z
0

f (x)dx =

n1
X Z xi +1

f (x) dx

i =0 x i

peut tre calcule numriquement en utilisant la formule prcdente pour approcher chaque intgrale
Z

x i +1
xi

f (x) dx

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

On obtient ainsi
1

Z
0

f (x)dx =

n1
X Z xi +1

f (x) dx

i =0 x i
n1
X

x +x
i
hh
i
i +1
f (x i ) + 4 f
+ f (x i +1 )
2
i =0 6
"
#
n1
n1
X
X
X x i + x i +1
h n1
=
f (x i ) +
f (x i +1 ) + 4
f
6 i =0
2
i =0
i =0
"
#
n1
n1
X
X x i + x i +1
h
f (x i ) + 4
f
=
f (a) + f (b) + 2
6
2
i =1
i =0

n
X
i =0

126

i f (x i ) +

n1
X
i =0

i f (m i ) = Q( f )

2h
avec i =
,
3

(
i =

h
3
h
6

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

G. Faccanoni

Jeudi 5 juin 2014

3. Quadrature

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

!
n1
n
X
X
X h h n1
X 2h 1 1 1 n1
X
X
h n1
1 2 n1
i = +
i +
1+ +
1 = 1.
+ +
=
+
6 i =1 3 6 i =0 3
n 6 3 i =1
6 3 i =0
i =0
i =0
R xi +1
P
3. On reconnait la formule de Cavalieri-Simpson : remarquons alors que Q( f ) = n1
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.14) et Q est
Z 1

|E (h)| =
f (x) dx Q( f )

0 Z

n1
n1
X Z xi +1

X xi +1
p(x)dx
=
f (x) dx

i =0 xi
x
i
i =0
Z
n1
x
i +1
X

f (x) p(x) dx

i =0 x i

n1
X Z xi +1
i =0 x i
4

000

sup[xi ;xi +1 ] | f ()|


6

(x x i )(x m i )(x x i +1 )dx

Dh .
4. Algorithme
Require: x 7 f
Require: n > 0
1
a 6n
2
b 3n
1
c 6n
I a f (0)
for i = 1 to n 1 do
1

i
I I + (a + c) f ni + b f n 2
end for
return I I + c f (1) + b f

G. Faccanoni

n 21
n

127

4. quations diffrentielles ordinaires


Calculer la fonction t 7 y(t ) qui vrifie lEDO y 0 (t ) = (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.

4.1. Gnralits
Une quation diffrentielle (EDO) est une quation exprime sous la forme dune relation
F (y, y 0 , y 00 , . . . , y (n) ) = g (t )
dont linconnue est une fonction y : I R R dfinie sur un intervalle I ( dterminer)
dans laquelle cohabitent la fois y et ses drives y 0 , y 00 , . . .,y (p) (p 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.

4.1.1. Position du problme


Rsoudre une quation cest chercher toutes les valeurs de linconnue qui satisfont lgalit. Dans les quations rencontres jusqu prsent, les inconnues taient des nombres. Par exemple, rsoudre lquation 2x + 4 = 10 signifie chercher
toutes les valeurs de x R telles que 2x + 4 = 10.
Dans les quations diffrentielles, les inconnues sont des fonctions. Rsoudre une quation diffrentielle, cest chercher
toutes les fonctions, dfinies sur un intervalle I R, qui satisfont lquation (on dit aussi intgrer lquation diffrentielle).

Exemple
Rsoudre lquation diffrentielle y 0 (t ) = y(t ) signifie chercher toutes les fonctions
y: I RR
t 7 y = f (t )
telles que f 0 (t ) = f (t ) pour tout t I . On peut vrifier que y(t ) = 0 pour tout t R est une solution de lEDO mais aussi y(t ) = ce c t
pour tout t R (o c est constante relle quelconque).

4.1.2. Condition initiale


Une EDO admet gnralement une infinit de solutions. Pour en slectionner quelques unes (parfois juste une), on
doit imposer une condition supplmentaire qui correspond la valeur prise par la solution en un point de lintervalle
dintgration.

Dfinition Condition initiale


Une condition initiale (CI) est une relation du type y(t 0 ) = y 0 qui impose en t 0 la valeur y 0 de la fonction inconnue.
En pratique, se donner une CI revient se donner le point (t 0 , y 0 ) par lequel doit passer le graphe de la fonction solution.

Exemple volution dune population-1


Soit N le nombre dindividu dune population linstant t . La population N a un taux de naissance saisonnier ; le taux de dcs est
proportionnel au nombre dindividu au carr (par surpopulation, dus par exemple au manque de nourriture). On considre enfin
un terme indpendant de la taille et du temps (par exemple, si cette EDO modlise llevage de saumons, ce terme reprsente les

129

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires


saumons pchs). On a alors lquation diffrentielle
1
N 0 = (2 cos(t ))N N 2 1.
2
On aura donc deux types de questions :
1. trouver toutes les solutions de lEDO ;
2. trouver la ou les solutions qui vrifient une CI

4.1.3. Reprsentation graphique


On va expliquer comment tracer lallure des solutions dune EDO du type
y 0 = (t , y).
Soit y = f (t ) la fonction inconnue solution de cette EDO. Si (t , y) est un point du graphe de f , cette galit dit que la tangente
au graphe de f au point (t , y) a pour pente (t , y). Dessinons alors, en (presque) chaque point (t , y) du plan un vecteur Vt ,y
de pente (t , y) : le graphe de f est tangent en chaque point (t , y) au vecteur Vt ,y . Remarquer quon na pas besoin davoir
rsolu lquation (analytiquement) pour pouvoir dessiner le champ de tangentes, et ceci permet parfois davoir une ide
du comportement des solutions.

Exemple volution dune population-2


Considrons nouveau lexemple de lvolution dune population traons lallure des solutions. Si on dmarre llevage avec 6 saumons, on voit quune et une seule courbe passe par le point (0, 6) et si on suit cette solution on peut prdire par exemple le nombre
dindividu de la population dans dix ans : la courbe trace en jaune donne N (10) 5.5.
6

4
N(t)

10

12

4.1.4. Thorme dexistence et unicit, intervalle de vie et solution maximale


Le couple EDO-CI porte le nom de problme de C AUCHY :

Dfinition Problme de C AUCHY


Soit : R R R une fonction donne et y 0 la drive de y par rapport t . On appelle problme de C AUCHY le problme
trouver une fonction y : I R R dfinie sur un intervalle I telle que
(

y 0 (t ) = (t , y(t )), t I ,

(4.1)

y(t 0 ) = y 0 ,
avec t 0 un point de I et y 0 une valeur donne.

Exemple Existence et unicit sur R de la solution dun problme de C AUCHY

On se donne (t , y(t )) = 3t 3y(t ) et y 0 = (un nombre quelconque). On cherche une fonction y : t R+ 7 y(t ) R qui satisfait
(

y 0 (t ) = 3t 3y(t ), t > 0,
y(0) = .

Sa solution, dfinie sur R, est donne par y(t ) = ( + 1/3)e 3t + t 1/3. En effet on a bien
y(0) = ( + 1/3)e 0 + 0 1/3 = ,

130

y 0 (t ) = 3( + 1/3)e 3t + 1 = 3( + 1/3)e 3t + 1 3t + 3t = 3y(t ) + 3t .

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Cet exemple montre le cas o il existe une et une seule solution du problme de C AUCHY dfinie sur R. Les choses ne se
passent pas toujours si bien. Les exemples ci-dessous montrent que ltude mathmatique de lexistence et de lunicit des
solutions dun problme de C AUCHY peut tre une affaire dlicate.

Exemple Existence et unicit sur I R (mais non existence sur R) de la solution dun problme de C AUCHY
On se donne (t , y(t )) = (y(t ))3 et y 0 = 1. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait
(

y 0 (t ) = (y(t ))3 , t > 0,


y(0) = 1.

On vrifie que la solution y est donne par y(t ) = p 1

12t

qui nest dfinie que pour t [0; 1/2[. Cet exemple montre quun problme

de C AUCHY na pas toujours une solution pour tout t [0; +[ puisquici la solution explose lorsque t tend vars la valeur 1/2 (en effet,
nous avons lim y(t ) = +) : le graphe de la solution a une asymptote verticale en t = 1/2. On parle dexplosion de la solution en
t (1/2)

temps fini ou encore de barrire.

On verra que ceci est un phnomne gnral : pour une solution dune EDO, la seule faon de ne pas tre dfinie sur R est
davoir un asymptote verticale.

Exemple Non unicitpde la solution dun problme de C AUCHY


On se donne (t , y(t )) =

y(t ) et y 0 = 0. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait


(

y 0 (t ) =

p
3

y(t ), t > 0,

y(0) = 0.
p
On vrifie que les fonctions y 1 (t ) = 0 et y 2,3 (t ) = 8t 3 /27, pour tout t 0, sont toutes les trois solution du problme de C AUCHY
donn. Cet exemple montre quun problme de C AUCHY na pas ncessairement de solution unique.

Il y a un rsultat qui garantit que, sous certaines hypothses trs gnrales, deux graphes de fonctions qui sont des
solutions de la mme EDO ne se rencontrent jamais. Le thorme garantit aussi lexistence des solutions ; pour donner un
nonc prcis, il faut dabord dfinir la notion de solution maximale.
De faon gnrale, lorsquon se donne une quation diffrentielle et une condition initiale y(t 0 ) = y 0 , on cherche un
intervalle I , contenant t 0 , sur lequel une solution existe, et qui soit le plus grand possible : il nexiste pas dintervalle
plus grand sur lequel lquation diffrentielle ait une solution. Cet intervalle sappelle intervalle de vie de la solution. Une
solution dfinie sur cet intervalle le plus grand possible sappelle solution maximale.

Dfinition Solution maximale


On se donne une quation diffrentielle y 0 (t ) = (t , y(t )) avec une condition initiale y(t 0 ) = y 0 . Une solution maximale
pour ce problme est une fonction y = f (t ), dfinie sur un intervalle I appel intervalle de vie, telle que
? f est solution de lquation diffrentielle et vrifie la condition initiale ;
? il nexiste pas de solution f de la mme quation, vrifiant la mme condition initiale et dfinie sur un intervalle J
contenant I et plus grand que I .
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 = .

Thorme de C AUCHY-L IPSCHITZ, Existence et unicit des solutions

Considrons une fonction (x, y) 7 (x, y)


? dfinie pour tout t dans un intervalle I et pour tout y dans un intervalle J
? de classe C 1
alors pour toute CI y(t 0 ) = y 0 avec t 0 I et y 0 J il existe une unique solution maximale y = y(t ) de lEDO y 0 (t ) =
(t , y(t )).

Attention

La fonction est une fonction de deux variables donc vrifier que , t et y sont continues signifie utiliser la notion
de limite en deux variables. Les limites unilatrales (i.e. de la gauche et de la droite) perdent leur sens et sont remplaces
par les nombreuses limites directionnelles possibles. En effet, ds que le domaine se situe dans un espace deux dimensions au moins, les chemins qui mnent un point donn peuvent suivre divers axes. Ainsi, lensemble des points en
lesquels une limite peut tre considre, doit tre dfini en tenant compte de toutes les possibilits daccs.
Les fonctions continues de plusieurs variables jouissent des mmes proprits que les fonctions continues dune seule
variable. Les fonctions lmentaires telles que les polynmes, les fonctions exponentielles, logarithmiques et trigonomtriques sont continues dans leurs domaines de dfinition respectifs. La continuit des autres fonctions stablit, le cas
chant, en tant que somme, produit, compose, le quotient (lorsque le dnominateur ne sannule pas) etc., de fonctions

G. Faccanoni

131

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

continues. Voici quelques exemples :


1. (x, y) = x 2 + y 2 x y + y est continue dans R2 (polynme du second degr deux variables).
2. (x, y, z) = e y + x y 2 est continue dans R2 (somme
dune
et dun polynme).
exponentielle

3. (x, y) = ln(x + y 2 ) 3 est continue dans (x, y) R2 x + y 2 > 0 comme somme du logarithme dun polynme
(fonction compose) et dune constante.

Thorme
Soit y = f (t ) une solution maximale dfinie sur un intervalle de vie I =]a; b[. Si b 6= + alors lim y(t ) = , i.e. le graphe
de la solution a une asymptote verticale en t = b. Mme chose si a 6= .

t b

On utilise souvent le thorme sous forme contrapose : si les solutions ne peuvent pas exploser, alors elles sont dfinies
sur R.

Remarque Applications du thorme de C AUCHY-L IPSCHITZ


Dun point de vue pratique, cet nonc nous aidera faire des dessins, en garantissant que les graphes des solutions ne
se rencontrent jamais. On peut en dduire quelques remarques plus subtiles :
? si lEDO admet comme solution la solution nulle mais y 0 6= 0, alors la solution du problme de C AUCHY est du signe
de y 0 pour tout t I ;
? si lEDO admet deux solutions constantes y(t ) = 1 et y(t ) = 2 pour tout t I et y 0 ]1 ; 2 [, alors la solution du
problme de C AUCHY vrifie y(t ) ]1 ; 2 [ pour tout t R.

4.2. Schmas numriques


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.
Considrons le problme de C AUCHY (4.1) et supposons que lon ait montr lexistence dune solution y. Le principe des
mthodes numriques 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. Si nous intgrons lEDO y 0 (t ) = (t , y(t )) entre t n et t n+1 nous obtenons
Z
y(t n+1 ) y(t n ) =

t n+1
tn

(t , y(t ))d t .

Pour
chaque nud tn = 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.

4.2.1. Schmas numriques classiques


On peut construire diffrentes schmas selon la formule de quadrature utilise pour approcher le membre de droite. 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 par une formule de rcurrence de la forme
(
u0 = y 0 ,
u n+1 = (u n ), n N.
?

Si on utilise la formule de quadrature du rectangle gauche, i.e.


Z

t n+1
tn

(t , y(t ))d t h(t n , y(t n ))

on obtient le schma dE ULER progressif


(
u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h(t n , u n ) n = 0, 1, 2, . . . Nh 1
Il sagit dun schma explicite car il permet dexpliciter u n+1 en fonction de u n .

132

G. Faccanoni

Jeudi 5 juin 2014


?

4. quations diffrentielles ordinaires

Si on utilise la formule de quadrature du rectangle droite, i.e.


t n+1

tn

(t , y(t ))d t h(t n+1 , y(t n+1 ))

on obtient le schma dE ULER rtrograde


(

u 0 = y(t 0 ) = y 0 ,
u n+1 h(t n+1 , u n+1 ) = u n

n = 0, 1, 2, . . . Nh 1

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

t n+1
tn

h
h
(t , y(t ))d t h t n + , y t n +
2
2

on obtient un nouveau schma :


(
u 0 = y(t 0 ) = y 0 ,

u n+1 = u n + h t n + h2 , u n+1/2 n = 0, 1, 2, . . . Nh 1
o u n+1/2 est une approximation de y(t n + h/2). Nous pouvons utiliser une prdiction dE ULER progressive pour approcher le u n+1/2 dans le terme (t n + h/2, u n+1/2 ) par u n+1/2 = u n + (h/2)(t n , u n ). Nous avons construit ainsi un
nouveau schma appel schma dE ULER modifi qui scrit

u 0 = y(t 0 ) = y 0 ,
u n+1/2 = u n + (h/2)(t n , u n ),

h
u
n+1/2 n = 0, 1, 2, . . . Nh 1
n+1 = u n + h t n + 2 , u
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 point milieu sur lintervalle [t n ; t n+2 ], i.e.
Z

t n+2
tn

(t , y(t ))d t 2h t n+1 , y(t n+1 )

on obtient

u 0 = y(t 0 ) = y 0 ,
1)
u 1 = y(t

u n+1 = u n1 + 2h(t n , u n ) n = 1, 2, . . . Nh 1
o u 1 est une approximation de y(t 1 ). Nous pouvons utiliser une prdiction dE ULER progressive pour approcher u 1 .
Nous avons construit ainsi un nouveau schma appel schma du point milieu qui scrit

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ),

u n+1 = u n1 + 2h(t n , u n ) n = 1, 2, . . . Nh 1

Il sagit dun schma explicite car il permet dexpliciter u n+1 en fonction de u n et de u n1 .


Si on utilise la formule du trapze, i.e.
Z

t n+1
tn

(t , y(t ))d t

h
(t n , y(t n )) + (t n+1 , y(t n+1 ))
2

on obtient le schma du trapze ou de C RANK -N ICOLSON


(
u 0 = y(t 0 ) = y 0 ,
u n+1 h2 (t n+1 , u n+1 ) = u n + h2 (t n , u n ) n = 0, 1, 2, . . . Nh 1
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.

G. Faccanoni

133

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires


?

Pour viter le calcul implicite de u n+1 dans le schma du trapze, nous pouvons utiliser une prdiction dE ULER progressive et remplacer le u n+1 dans le terme (t n+1 , u n+1 ) par u n+1 = u n + h(t n , u n ). Nous avons construit ainsi un
nouveau schma appel schma de H EUN. Plus prcisment, la mthode de H EUN scrit

u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h(t n , u n ),

u n+1 = u n + h2 (t n , u n ) + (t n+1 , u n+1 ) n = 0, 1, 2, . . . Nh 1

Remarque
Considrons le schma dE ULER rtrograde. Si nous voulons calculer u n+1 , nous dfinissons la fonction
g (x) = x h(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 0 (x m ), m = 0, 1, . . . . Puisque g 0 (x) = 1 hx (t n+1 , x), nous obtenons donc dans ce cas le schma
(

x0 = un ,
x m h(t n+1 ,x)u n
1hx (t n+1 ,x)

x m+1 = x m

m = 0, 1, 2, . . .

et u n+1 = limm x m pour autant que f soit suffisamment rgulire et que x 0 soit suffisamment proche de u n+1 , ce qui
est le cas si le pas h est suffisamment petit.

4.2.2. Schmas numriques dAdams


Rt
Les schmas dA DAM approchent lintgrale tnn+1 (t , y(t ))d t par lintgrale dun polynme p interpolant f en des points
donns. On peut construire diffrentes schmas selon les points dinterpolation choisis. Ils se divisent en deux familles : les
mthodes dA DAMS -B ASHFORTH qui sont explicites et les mthodes dA DAMS -M OULTON qui sont implicites. Voici quelques
exemples :

Mthodes dAdams-Bashforth
f en les

: il sagit de mthodes explicites j pas notes AB j . Le polynme p interpole

points t n , t n1 , . . . , t n j +1 o j 0 est fix. Elles permettent de calculer u n+1 partir de lensemble u n , u n1 , . . . , u n j +1


et il est donc possible de calculer successivement u j , u j +1 ,. . ., en partant de u 0 , u 1 , . . . , u j 1 (qui doivent donc tre initialiss par des approximations adquates car seul u 0 est donn).
?

j = 1 On a
p(t ) = (t n , y(t n ))
Z

t n+1
tn

et on obtient le schma

p(t ) dt = h(t n , y(t n ))

(
u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h(t n , u n ) n = 0, 1, . . . N 1

La mthode AB1 concide avec la mthode dE ULER progressive.


j = 2 On a
p(t ) =

(t n , y(t n )) (t n1 , y(t n1 ))
(t t n1 ) + (t n1 , y(t n1 ))
h
Z tn+1

h
p(t ) dt =
3(t n , y(t n )) (t n1 , y(t n1 ))
2
tn

et on obtient le schma

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ) y(t 1 )

u n+1 = u n + h2 3(t n , u n ) (t n1 , u n1 ) n = 1, 2, . . . N 1
o u 1 est une approximation de y(t 1 ) obtenue en utilisant une prdiction AB1 .

134

G. Faccanoni

Jeudi 5 juin 2014


?

4. quations diffrentielles ordinaires

j = 3 On a
p(t ) =

(t n2 , y(t n2 ))
(t n1 , y(t n1 ))
(t n , y(t n ))
(t t n1 )(t t n )
(t t n2 )(t t n ) +
(t t n2 )(t t n1 )
2
2
2h
h
2h 2
Z tn+1

h
p(t ) dt =
23(t n , y(t n )) 16(t n1 , y(t n1 )) + 5(t n2 , y(t n2 ))
12
tn

et on obtient le schma

u 0 = y(t 0 ) = y 0 ,

u = u + h(t , u ) y(t )
1
0
0 0
1

3(t
,
u
)

(t
u
=
u
+
2
1 1
0 , u 0 ) y(t 2 )
1
2

h
u n+1 = u n + 12
23(t n , u n ) 16(t n1 , u n1 + 5(t n2 , u n2 ) n = 2, 3, . . . N 1
o u 1 est une approximation de y(t 1 ) obtenue en utilisant une prdiction AB1 et u 2 est une approximation de y(t 2 )
obtenue en utilisant la mthode AB2 .

Mthode dAdams-Moulton
: il sagit de mthodes implicites j 0 pas notes AM j +1 . Le polynme p interpole f

en les points t n+1 , t n , t n1 , . . . , t n j +1


o j est fix. Elles permettent de calculer u n+1 de faon implicite partir
de lensemble u n , u n1 , . . . , u n j +1 et il est donc possible de calculer successivement u j , u j +1 ,. . ., en partant de
u 0 , u 1 , . . . , u j 1 (qui doivent donc tre initialiss par des approximations adquates car seul u 0 est donn).
?

j = 0 On a
p(t ) = (t n+1 , y(t n+1 ))
Z

t n+1
tn

et on obtient le schma

p(t ) dt = h(t n+1 , y(t n+1 ))

u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h(t n+1 , u n+1 ) n = 0, 1, . . . N 1

La mthode AM1 concide avec la mthode dE ULER rgressive.


? j = 1 On a
(t n+1 , y(t n+1 )) (t n , y(t n ))
(t t n ) + (t n , y(t n ))
p(t ) =
h
Z tn+1

h
(t n , y(t n )) + (t n+1 , y(t n+1 ))
p(t ) dt =
2
tn
et on obtient le schma
(
u 0 = y(t 0 ) = y 0 ,

u n+1 = u n + h2 (t n , u n ) + (t n+1 , u n+1 ) n = 1, 2, . . . N 1


?

La mthode AM2 concide avec la mthode de C RANK -N ICOLSON.


j = 2 On a
p(t ) =

(t n1 , y(t n1 ))
(t n , y(t n ))
(t n+1 , y(t n+1 ))
(t t n )(t t n+1 )
(t t n1 )(t t n+1 ) +
(t t n1 )(t t n )
2h 2
h2
2h 2
Z tn+1

h
p(t ) dt =
5(t n+1 , y(t n+1 )) + 8(t n , y(t n )) (t n1 , y(t n1 ))
12
tn

et on obtient le schma

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ) y(t 1 )

h
u n+1 = u n + 12
5(t n+1 , u n+1 ) + 8(t n , u n ) (t n1 , u n1 n = 1, 2, . . . N 1
o u 1 est une approximation de y(t 1 ) obtenue en utilisant une prdiction AB1 .

G. Faccanoni

135

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

4.2.3. Schmas multi-pas de type predictor-corrector


Lorsquon utilise une mthode implicite, pour calculer u n+1 on doit rsoudre une quation non-linaire, par exemple
avec la mthode de N EWTON. Une approche diffrente qui permet de saffranchir de cette tape est donne par les mthodes predictor-corrector. Une mthode predictor-corrector est une mthode qui permet de calculer u n+1 de faon explicite
partir dune mthode implicite comme suit :
1. predictor : on calcule u n+1 une approximation de u n+1 par une mthode explicite ;
2. corrector : on crit une mthode implicite et on approche (t n+1 , u n+1 ) par (t n+1 , u n+1 ).
Exemple 1 : on a dj rencontr une mthode de type predictor-corrector lorsquon a construit les schmas classiques : la
mthode de H EUN

u 0 = y 0
u n+1 = u n + h(t n , u n )
n = 1, 2, . . . N 1

h
u n+1 = u n + 2 (t n , u n ) + (t n+1 , u n+1 ) n = 1, 2, . . . N 1
est construite par les deux tapes suivantes :
n+1 = u n + h(t n ,u n )
? predictor : mthode dE ULER explicite (ou AB1 ) u

n+1 = u n + h2 (t n , u n ) + (t n+1 , u n+1 )


? corrector : mthode de C RANK -N ICOLSON (ou AM1 ) u
Exemple 2 : des mthodes de type predictor-corrector sont souvent construites en utilisant une prdiction dA DAMS -B ASHFORTH
suivie dune correction dA DAMS -M OULTON
les deux tapes suivantes
. Par exemple, si on considre

n+1 = u n + h2 3(t n , u n ) (t n1 , u n1 )
? predictor : mthode AB2 u

h
n+1 = u n + 12
5(t n+1 , u n+1 ) + 8(t n , u n ) (t n1 , u n1
? corrector : mthode AM2 u
on obtient la mthode AB2 -AM2 :

u 0 = y 0

u = u + h(t , u ),
1
0
0 0

h
(t n , u n ) (t n1 , u n1 )
n = 2, 3, . . . N 1
u
=
u
+
n+1
n
2

h
u n+1 = u n + 12 5(t n+1 , u n+1 ) + 8(t n , u n ) (t n1 , u n1 n = 2, 3, . . . N 1

4.3. Conditionnement
En gnrale, il ne suffit pas quun schma numrique soit convergent pour quil donne des bons rsultats sur nimporte
quelle quation diffrentielle. Encore faut-il que le problme soit mathmatiquement bien pos (existence et unicit de
la solution), quil soit numriquement bien pos (continuit suffisamment bonne par rapport aux conditions initiales) et
quil soit bien conditionn. Voyons dans lexemple suivant ce que cela signifie.

Exemple Problme de C AUCHY numriquement mal pos


N

h
, il est lgitime de chercher savoir dans quelle mesure lerreur |y(t n )u n | est petite
Une fois calcule la solution numrique { u n }n=1
pour n = 1, 2, . . . . Nous essayons de rpondre cette question en reprenant le premier exemple du chapitre. On se donne (t , y) =
3t 3y et y 0 = (un nombre quelconque). On cherche une fonction y : t R+ 7 y(t ) R qui satisfait

y 0 (t ) = 3t 3y(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.3333331/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 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 significatifs (en virgule flottante), 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.4. Stabilit
Considrons le problme de C AUCHY (4.1) et supposons que lon ait montr lexistence dune solution y. Le principe des
mthodes numriques est de subdiviser lintervalle I = [t 0 , T ] en Nh intervalles de longueur h = (T t 0 )/Nh > 0 o h est le
(h)
(h)
pas de discrtisation. Alors, pour
0 +nh (1 n Nh ) on cherche la valeur inconnue u n qui approche
n chaque nud t n = to
(h)
y(t n(h) ). Lensemble des valeurs u 0(h) = y 0 , u 1(h) , . . . , u N
reprsente la solution numrique.
h

136

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Deux questions naturelles se posent : que se passe-t-il lorsquon fait tendre le pas h vers 0 ? Que se passe-t-il lorsquon
fixe le pas h > 0 mais on fait tendre T vers linfini ? Dans les deux cas le nombre de nuds tend vers linfini mais dans le
premier cas on sintresse lerreur en chaque point, dans le deuxime cas il sagit du comportement asymptotique de la
solution et de son approximation :

Zro-stabilit : soit T fix et considrons la limite h 0 (ainsi Nh +). On note e n(h) y(t n(h) ) u n(h) = y(t 0 + nh) u n(h)

lerreur au point t 0 +nh. Il sagit destimer le comportement de e n(h) en tout point, i.e. pour tout 1 n Nh . La mthode
est zro-stable si e n(h) 0 pour tout n N.
h0

Cette notion est trs importante car le thorme de L AX -R ICHTMYER (ou thorme dquivalence) affirme que une
mthode consistante et zro-stable est convergente.

A-stabilit : on considre un problme de C AUCHY (4.1) dont la solution exacte vrifie y(t ) 0. Soit h fix et consit +

drons la limite T + (ainsi Nh +). On dit que la mthode est A-stable si u n(h) 0.
n+

4.4.1. A-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 linfini 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 infini.
Dans ce cas, mme pour h fix, Nh tend vers linfini. 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.

Dfinition

Soit > 0 un nombre rel positif et considrons le problme de C AUCHY


(

y 0 (t ) = y(t ), pour t > 0,


y(0) = y 0

o y 0 6= 0 est une valeur donne. Sa solution est y(t ) = y 0 e t et limt + y(t ) = 0.


Soit h > 0 un pas de temps donn, t n = nh pour n N et notons u n y(t n ) une approximation de la solution y au
temps t n .
Si, sous dventuelles conditions sur h, on a
lim u n = 0,
n+

alors on dit que le schma est A-stable.


On peut tirer des conclusions analogues quand est un complexe ou une fonction positive de t . Dautre part, en gnral il ny a aucune raison dexiger quune mthode numrique soit absolument stable quand on lapplique un autre
problme. Cependant, on peut montrer que quand une mthode absolument stable sur le problme modle est utilise
pour un problme modle gnralis, lerreur de perturbation (qui est la valeur absolue de la diffrence entre la solution perturbe et la solution non perturbe) est borne uniformment (par rapport h). En bref, on peut dire que les
mthodes absolument stables permettent de contrler les perturbations.
tudions la A-stabilit des schmas classiques introduits ci-dessus.
? Le schma dE ULER progressif devient
u n+1 = (1 h)u n ,

n = 0, 1, 2, . . .

u n = (1 h)n u 0 ,

n = 0, 1, 2, . . .

et par suite
Par consquente, lim u n = 0 si et seulement si
n+

1 h < 1,

ce qui a pour effet de limiter h


h

2
.

Cette condition de A-stabilit limite le pas h davance en t lorsquon utilise le schma dE ULER progressif. Notons que
si 1 h > 1 alors u n tend vers + lorsque t tend vers linfini et si 1 h < 1 alors u n tend vers linfini en alternant
de signe lorsque t tend vers linfini. Nous dirons dans ces cas que le schma dE ULER progressif est instable.
? Le schma dE ULER rtrograde devient dans le cadre de notre exemple
(1 + h)u n+1 = u n ,

G. Faccanoni

n = 0, 1, 2, . . .

137

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

et par suite
1
u0 ,
(1 + h)n

un =

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.
? Le schma de C RANK -N ICOLSON appliqu notre exemple scrit

h
h
1 + u n+1 = 1 u n
2
2
et par suite

2 h
un =
2 + h

n
u0 ,

n = 0, 1, 2, . . .

Par consquent, lim u n = 0 si et seulement si


n+

2 h

2 + h < 1.

x
x

Notons x le produit h > 0 et q la fonction q(x) = 2x


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 u n = 0 est donc satisfaite pour tout h > 0 : le schma de C RANK -N ICOLSON
n+

est donc toujours stable, sans limitations sur h.


? Le schma de H EUN pour notre exemple devient

(h)2
un
u n+1 = 1 h +
2
Par induction on obtient

n
(h)2
u n = 1 h +
u0 .
2

Par consquent, lim u n = 0 si et seulement si


n+

1 h + 2 (h) < 1.

2
Notons x le produit h et q le polynme q(x) = 21 x 2 x + 1 dont le graphe est reprsent en figure.
q

x = h

Nous avons |q(x)| < 1 si et seulement si 0 < x < 2. La relation lim u n = 0 est donc satisfaite si et seulement si
n+

h<

2
.

Cette condition de stabilit limite le pas h davance en t lorsquon utilise le schma de H EUN.
A premire vue, il semble que le schma dE ULER progressif et le schma de H EUN soient prfrable au schma dE ULER
rtrograde et de C RANK -N ICOLSON puisque ces derniers ne sont pas explicites. Cependant, les mthodes dE ULER implicite
et de C RANK -N ICOLSON sont inconditionnellement 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.

138

G. Faccanoni

Jeudi 5 juin 2014

TTTTTTTTTTTTT

4. quations diffrentielles ordinaires

Codes Python

Voici les function python des mthodes illustres dans ce chapitre

1
2

TTTTTTTTTTTT

#!/usr/bin/python
#-*- coding: Utf-8 -*-

3
4
5
6

import math
import sys
import matplotlib.pyplot as plt

7
8
9
10
11
12

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

13
14
15
16
17
18

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

19
20
21
22
23
24

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

# INITIALISATION
N = 3
exemple = 4

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

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)

56
57
58
59
60
61

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

G. Faccanoni

139

4. quations diffrentielles ordinaires

62
63

Jeudi 5 juin 2014

yy_euler_modifie = euler_modifie(f,tt,N)
yy_heun = euler_modifie(f,tt,N)

64
65
66
67
68

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

140

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

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

Exercices

Exercice 4.1

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

Considrons le problme de C AUCHY : trouver y : [t 0 , T ] R R tel que


(

y 0 (t ) = (t , y(t )), t [t 0 , T ],
y(t 0 ) = y 0 .

Supposons que lon ait montr lexistence dune unique solution y.


Le principe des mthodes numriques est de subdiviser lintervalle [t 0 , T ] en N intervalles de longueur h = (T t 0 )/N =
t n+1 t n . Pour
chaque nud t n = t 0 + nh (1 n N ) on cherche la valeur inconnue u n qui approche y(t n ). Lensemble
des valeurs u 0 = y 0 , u 1 , . . . , u N reprsente la solution numrique.
Dans cette exercice on va construire des nouveaux schmas numriques bass sur lintgration de lEDO y 0 (t ) = (t , y(t ))
entre t n et t n+2 :
Z
t n+2

y(t n+2 ) = y(t n ) +

tn

(t , y(t )) dt .

1. En utilisant la formule de quadrature du point milieu pour approcher le membre de droite crire un schma numrique explicite permettant de calculer u n+2 partir de u n+1 et u n . Notons que ce schma a besoin de deux valeurs
initiales ; on posera alors u 0 = y 0 et u 1 sera approch par une prdiction dE ULER progressive.
2. En utilisant la formule de quadrature de C AVALIERI -S IMPSON pour approcher le membre de droite crire un
schma numrique implicite permettant de calculer u n+2 partir de u n+1 et u n . Notons que ce schma a besoin
de deux valeurs initiales ; on posera alors u 0 = y 0 et u 1 sera approch par une prdiction dE ULER progressive.
3. Proposer une modification du schma au point prcdent pour quil devient explicite.
C ORRECTION DE L EXERCICE 4.1.
1. Si on utilise la formule de quadrature du point milieu sur lintervalle [t n ; t n+2 ], i.e.
Z tn+2

(t , y(t )) dt 2h t n+1 , y(t n+1 )


tn

on obtient

u 0 = y(t 0 ) = y 0 ,
u 1 y(t 1 )

u n+2 = u n + 2h(t n+1 , u n+1 ) n = 1, 2, . . . N 2


o u 1 est une approximation de y(t 1 ). Nous pouvons utiliser une prdiction dE ULER progressive pour approcher u 1 .
Nous avons construit ainsi un nouveau schma explicite trois pas :

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ),

u n+2 = u n + 2h(t n+1 , u n+1 ) n = 1, 2, . . . N 2


Il sagit dun schma explicite car il permet dexpliciter u n+2 en fonction de u n et de u n+1 .
2. Si on utilise la formule de quadrature de C AVALIERI -S IMPSON sur lintervalle [t n ; t n+2 ], i.e.
Z tn+2

h
(t , y(t )) dt
(t n , y(t n )) + 4(t n+1 , y(t n+1 )) + (t n+2 , y(t n+2 )) ,
3
tn
et une prdiction dE ULER progressive pour approcher u 1 , nous obtenons un nouveau schma implicite trois pas :

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ),

u n+2 = u n + h3 (t n , u n ) + 4(t n+1 , u n+1 ) + (t n+2 , u n+2 ) n = 1, 2, . . . N 2


3. Pour viter le calcul implicite de u n+2 , nous pouvons utiliser une prdiction dE ULER progressive et remplacer le u n+2
dans le terme (t n+2 , u n+2 ) par u n+2 = u n+1 +h(t n+1 , u n+1 ). Nous avons construit ainsi un nouveau schma explicite
trois pas :

u 0 = y(t 0 ) = y 0 ,

G. Faccanoni

u 1 = u 0 + h(t 0 , u 0 ),

u n+2 = u n + h3 (t n , u n ) + 4(t n+1 , u n+1 ) + (t n+2 , u n+1 + h(t n+1 , u n+1 ) n = 1, 2, . . . N 2

141

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Exercice 4.2 Mthodes dA DAMS -B ASHFORTH


Considrons le problme de C AUCHY suivant dont on suppose quil existe une et une seule solution :
trouver y : [t 0 , T ] R R tel que
(
y 0 (t ) = (t , y(t )), t [t 0 , T ],
y(t 0 ) = y 0 .
Le principe des mthodes numriques pour approcher la fonction y est de subdiviser lintervalle [t 0 , T ] en N intervalles
de longueur h = (T t 0 )/N > 0. Pour chaque
nud t n = t 0 + nh (1 n N ) on cherche la valeur inconnue u n qui

approche y(t n ). Lensemble des valeurs u 0 = y 0 , u 1 , . . . , u N reprsente la solution numrique.


Dans cette exercice on va construire des nouveaux schmas numriques bass sur lintgration approche de lEDO
y 0 (t ) = (t , y(t )) entre t n et t n+1 car lon a
Z
y(t n+1 ) = y(t n ) +

t n+1
tn

(t , y(t )) dt .

Les schmas dA DAM approchent lintgrale prcdent par lintgrale dun polynme interpolant f en des points donns.
1. crire le schma explicite obtenu en choisissant comme unique point interpoler le point t n .
2. crire le schma explicite obtenu en choisissant comme points interpoler les points { t n1 , t n } en proposant une
adquate initialisation de la suite.
(Attention : on intgre f sur lintervalle [t n , t n+1 ] mais on interpole f en t n
et t n1 )

C ORRECTION DE L EXERCICE 4.2.


1. On a
p(t ) = (t n , y(t n ))
Z

t n+1
tn

et on obtient le schma

p(t ) dt = h(t n , y(t n ))

(
u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h(t n , u n ) n = 0, 1, . . . N 1

Il sagit dun schma explicite appel schma dA DAMS -B ASHFORTH un pas (qui concide avec la mthode dE ULER
progressive).
2. On a
p(t ) =

(t n , y(t n )) (t n1 , y(t n1 ))
(t t n1 ) + (t n1 , y(t n1 ))
h
Z tn+1

h
3(t n , y(t n )) (t n1 , y(t n1 ))
p(t ) dt =
2
tn

et on obtient le schma

u 0 = y(t 0 ) = y 0 ,
u 1 y(t 1 )

u n+1 = u n + h2 3(t n , u n ) (t n1 , u n1 ) n = 1, 2, . . . N 1
o u 1 est une approximation de y(t 1 ). Nous pouvons utiliser une prdiction dE ULER progressive pour approcher u 1 .
Nous avons construit ainsi un nouveau schma explicite deux pas :

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h(t 0 , u 0 ),

u n+1 = u n + h2 3(t n , u n ) (t n1 , u n1 ) n = 1, 2, . . . N 1.
Il sagit dun schma explicite appel schma dA DAMS -B ASHFORTH deux pas.

142

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Exercice 4.3 Mthodes dA DAMS -M OULTON


Considrons le problme de C AUCHY suivant dont on suppose quil existe une et une seule solution :
trouver y : [t 0 , T ] R R tel que
(
y 0 (t ) = f (t , y(t )), t [t 0 , T ],
y(t 0 ) = y 0 .
Le principe des mthodes numriques pour approcher la fonction y est de subdiviser lintervalle [t 0 , T ] en N intervalles
de longueur h = (T t 0 )/N > 0. Pour chaque nud t n = t 0 + nh (1 n N ) on cherche la valeur inconnue u n qui
approche y(t n ) partir de u 0 = y 0 . Lensemble des valeurs { u 0 , u 1 , . . . , u N } reprsente la solution numrique.
Dans cette exercice on va construire des schmas numriques bass sur lintgration approche de lEDO y 0 (t ) =
f (t , y(t )) entre t n et t n+1 partir de la relation
Z
y(t n+1 ) = y(t n ) +

t n+1

f (t , y(t )) dt .
tn

Les schmas dA DAM approchent lintgrale prcdente par lintgrale dun polynme interpolant f en des points donns.
1. crire le schma implicite obtenu en choisissant comme points interpoler le point { t n }. Quel schma reconnaiton ?
2. crire le schma implicite obtenu en choisissant comme points interpoler les points { t n , t n+1 }. Quel schma
reconnait-on ?
3. crire le schma implicite obtenu en choisissant comme points interpoler les points { t n1 , t n , t n+1 } en proposant
une adquate initialisation de la suite. (Attention : on intgre f sur lintervalle [tn , tn+1 ] mais on interpole f en tn+1 , tn et
t n1 )

C ORRECTION DE L EXERCICE 4.3.


1. On a
p(t ) = f (t n+1 , y(t n+1 ))
Z

t n+1
tn

et on obtient le schma

p(t ) dt = h f (t n+1 , y(t n+1 ))

(
u 0 = y(t 0 ) = y 0 ,
u n+1 = u n + h f (t n+1 , u n+1 ) n = 0, 1, . . . N 1

Il sagit dun schma implicite appel schma dA DAMS -M OULTON un pas (qui concide avec la mthode dE ULER
rgressive).
2. On a
f (t n+1 , y(t n+1 )) f (t n , y(t n ))
(t t n ) + f (t n , y(t n ))
p(t ) =
h
Z tn+1

h
p(t ) dt =
f (t n , y(t n )) + f (t n+1 , y(t n+1 ))
2
tn
et on obtient le schma

(
u 0 = y(t 0 ) = y 0 ,

u n+1 = u n + h2 f (t n , u n ) + f (t n+1 , u n+1 ) n = 1, 2, . . . N 1

Il sagit dun schma implicite appel schma dA DAMS -M OULTON deux pas qui concide avec le schma de C RANK N ICOLSON.
3. On a
p(t ) =

G. Faccanoni

f (t n1 , y(t n1 ))
f (t n , y(t n ))
f (t n+1 , y(t n+1 ))
(t t n )(t t n+1 )
(t t n1 )(t t n+1 ) +
(t t n1 )(t t n )
2
2
2h
h
2h 2
Z tn+1

h
p(t ) dt =
5 f (t n+1 , y(t n+1 )) + 8 f (t n , y(t n )) f (t n1 , y(t n1 ))
12
tn

143

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

et on obtient le schma

u 0 = y(t 0 ) = y 0 ,
u 1 = u 0 + h f (t 0 , u 0 ) y(t 1 )

h
u n+1 = u n + 12
5 f (t n+1 , u n+1 ) + 8 f (t n , u n ) f (t n1 , u n1 n = 1, 2, . . . N 1
o u 1 est une approximation de y(t 1 ) obtenue en utilisant une prdiction dE ULER progressive.

Exercice 4.4 A-stabilit de la mthode dE ULER explicite en fonction du pas


On considre le problme de C AUCHY
(

y 0 (t ) = y(t ),
y(0) = 1,

sur lintervalle [0; 10].


1. Calculer la solution exacte du problme de C AUCHY.
2. Soit h le pas temporel. crire la mthode dE ULER explicite pour cette quation diffrentielle ordinaire (EDO).
3. En dduire une forme du type
u n+1 = g (h, n)
avec g (h, n) prciser (autrement dit, litre en t n ne dpend que de h et n et ne dpend pas de u n ).
4. Utiliser la formulation ainsi obtenue pour tracer les solutions
? exacte,
? obtenue avec la mthode dE ULER avec h = 2.5,
? obtenue avec la mthode dE ULER avec h = 1.5,
? obtenue avec la mthode dE ULER avec h = 0.5.
5. Que peut-on en dduire sur la A-stabilit de la mthode ?

C ORRECTION DE L EXERCICE 4.4.


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
dfinie pour tout t R.
2. La mthode dE ULER est une mthode dintgration numrique dEDO du premier ordre de la forme y 0 (t ) = F (t , y(t )).
Cest une mthode itrative : la valeur y linstant t +h se dduisant de la valeur de y linstant t par lapproximation
linaire
y(t + h) y(t ) + y 0 (t )h = y(t ) + F (t , y(t ))h.
En choisissant un pas de discrtisation h, nous obtenons une suite de valeurs (t n , u n ) qui peuvent tre une excellente
approximation de la fonction y(t ) avec
(

t n = t 0 + nh,

u n = u n1 + F (t n1 , u n1 )h.
La mthode dE ULER explicite pour cette EDO scrit donc
u n+1 = (1 h)u n .
3. En procdant par rcurrence sur n, on obtient
u n+1 = (1 h)n+1 .
4. On a donc

3 n
? si h = 2.5 alors u n =
tandis que y(t n ) = e 5n/2 ,
2 n
1
? si h = 1.5 alors u n =
tandis que y(t n ) = e 3n/2 ,
2
n
1
? si h = 0.5 alors u n =
tandis que y(t n ) = e n/2 .
2

144

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

un
t n = nh
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
6.5
7
7.5
8
8.5
9
9.5
10

h = 2.5
1

h = 1.5
1

0.5
1.5
0.25

0.125
2.25
0.0625

3.75

0.03125

0.015625
5.0625

h = 0.5
1
0.5
0.25
0.125
0.0625
0.03125
0.015625
0.0078125
0.00390625
0.001953125
0.0009765625
0.00048828125
0.000244140625
0.0001220703125
6.103515625 105
3.0517578125 105
1.52587890625 105
7.62939453125 106
3.814697265625 106
1.9073486328125 106
9.5367431640625 107

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 h nous pouvons constater que si h = 2.5 lerreur
commise entre la solution exacte et la solution calcule est amplifie dun pas lautre.
y
3
2

Exacte
h = 0.5

h = 1.5
h = 2.5

0
1

1
2
3

NB : les trois premires itres ont la mme pente (se rappeler de la construction gomtrique de la mthode dE ULER).
5. De la formule u n+1 = (1 h)n+1 on dduit que
? si 0 < h < 1 alors la solution numrique est stable et convergente,
? si 1 < h < 2 alors la solution numrique oscille mais est encore convergente,
? si h > 2 alors la solution numrique oscille et divergente.
En effet, on sait que la mthode est A-stable si et seulement si |1 h| < 1.
Remarque : la suite obtenue est une suite gomtrique de raison q = 1 h. On sait quune telle suite
? diverge si |q| > 1 ou q = 1,
? est stationnaire si q = 1,
? converge vers 0 |q| < 1.

G. Faccanoni

145

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Exercice 4.5
Lvolution de la concentration de certaines ractions chimiques au cours du temps peut tre dcrite par lquation
diffrentielle
1
y(t ).
y 0 (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 DE L EXERCICE 4.5. La mthode dE ULER implicite est une mthode dintgration numrique dEDO du premier ordre de la forme y 0 (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 0 (t + h) = y(t ) + hF (t + h, y(t + h)).
On pose alors t n = t 0 + nh, n N. En rsolvant lquation non-linaire
u n+1 = u n + hF (t n+1 , u n+1 ),
on obtient une suite (u n )nN qui approche les valeurs de la fonction y en t n . Dans notre cas, lquation non-linaire scrit
u n+1 = u n

h
2
1 + t n+1

u n+1 .

Elle peut tre rsolue algbriquement et cela donne la suite


un

u n+1 =

1 + 1+th2

n+1

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


u n+1 =

4 + (n + 1)2
un .
6 + (n + 1)2

On obtient donc
n

tn

1
2

0.5
1.0

1.5

2.0

un
5
4+12

5 = 57 5 =

6+12
4+22 25
6+22 7

8 25
10 7

25
7

3.57

20
7

2.86

4+32

20
20
52
= 13
15 7 = 21 2.48
6+32 7
2
4+4 52
52
520
= 20
22 21 = 231 2.25
6+42 21

La concentration t = 2 est denviron 2.25 quon peut comparer avec le calcul exact y(2) = 5e arctan(2) 1.652499838.
y
5
4
3
2

Exacte
E ULER implicite

146

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Exercice 4.6
Soit > 0 un nombre rel positif et considrons le problme de C AUCHY
(

y 0 (t ) = y(t ), pour t > 0,


y(0) = y 0 ,

(4.2)

o y 0 est une valeur donne. Soit h > 0 un pas de temps donn, t n = nh pour n N (ainsi t 0 = 0) et u n une approximation
de y(t n ).
1. crire le schma du trapze (appel aussi de C RANK -N ICOLSON) permettant de calculer u n+1 partir de u n . Sous
quelle condition sur h le schma du trapze est-il A-stable ? Autrement dit, pour quelles valeurs de h la relation
lim u n = 0 a-t-elle lieu ?
n+

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 DE L EXERCICE 4.6. Le problme (4.2) est un problme de C AUCHY de la forme (4.1) avec (t , y) = y. Le
principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur h et, pour chaque
nud t n = t 0 + nh (avec n N), on cherche la valeur inconnue u n qui approche y(t n ). Lensemble de valeurs { u 0 , u 1 , . . . } reprsente la solution numrique. Les schmas numriques 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 .
1. Si nous intgrons lEDO y 0 (t ) = (t , y(t )) entre t n et t n+1 nous obtenons
Z tn+1
y(t n+1 ) y(t n ) =
(t , y(t )) dt .
tn

Soit u n une approximation de u(t n ) et u n+1 une approximation de y(t n+1 ). Si on utilise la formule du trapze, i.e.
Z tn+1

h
(t n , y(t n )) + (t n+1 , y(t n+1 ))
(t , y(t )) dt
2
tn
on obtient le schma du trapze ou de C RANK -N ICOLSON
(
u 0 = y(t 0 ),
u n+1 h2 (t n+1 , u n+1 ) = u n + h2 (t n , u n ), pour n = 0, 1, 2, . . .
Il sagit dun schma implicite car il ne permet pas dcrire directement u n+1 en fonction de u n lorsque la fonction
nest pas triviale. En appliquant le schma du trapze au problme (4.2) on obtient la suite dfinie par rcurrence
suivante
(
u 0 = y(t 0 ),

1 + h2 u n+1 = 1 h2 u n .
Par induction on obtient

un =

2 h
2 + h

n
y0.

Par consquent, lim u n = 0 si et seulement si


n+

2 h

2 + h < 1.

x
x

Notons x le produit h > 0 et q la fonction q(x) = 2x


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 u n = 0 est donc satisfaite pour tout h > 0.
n+

2. Pour viter le calcul implicite de u n+1 dans le schma du trapze, nous pouvons utiliser une prdiction dE ULER
progressive et remplacer le u n+1 dans le terme (t n+1 , u n+1 ) par u n+1 = u n +h(t n , u n ). Nous avons construit ainsi le
schma de H EUN. Plus prcisment, cette mthode scrit
(
u 0 = y(t 0 ),

u n+1 = u n + h2 (t n , u n ) + t n+1 , u n + h(t n , u n , pour n = 0, 1, 2, . . .


En appliquant le schma de H EUN au problme (4.2) on obtient la suite dfinie par rcurrence suivante
(
u 0 = y(t 0 ),

(h)2
u n+1 = 1 h + 2 u n .

G. Faccanoni

147

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Par induction on obtient

n
(h)2
u n = 1 h +
y0.
2

Par consquent, lim u n = 0 si et seulement si


n+

1 h + 2 (h) < 1.

2
Notons x le produit h et q le polynme q(x) = 12 x 2 x + 1 dont le graphe est reprsent en figure.
q

x = h

Nous avons |q(x)| < 1 si et seulement si 0 < x < 2. La relation lim u n = 0 est donc satisfaite si et seulement si
n+

h<

2
.

Exercice 4.7
On considre le problme de C AUCHY
(

y 0 (t ) = (y(t ))m + cos(t ), pour t > 0,


y(0) = 0,

(4.3)

o m est un entier impair.


1. Montrer que le problme (4.3) possde une solution unique locale.
2. Soit h > 0 un pas de temps donn, soit t n = nh pour n N et u n une approximation de y(t n ). crire le schma
dE ULER rtrograde permettant de calculer u n+1 partir de u n .
3. partir du schma obtenu au point prcdent, crire un seul pas de la mthode de N EWTON pour calculer une
nouvelle approximation de u n+1 . En dduire ainsi un nouveau schma explicite.

C ORRECTION DE L EXERCICE 4.7.


1. Le problme (4.3) est un problme du type
trouver y : I R+ R tel que
(

y 0 (t ) = (t , y(t )), t I ,
y(t 0 ) = y 0 ,

Si la fonction (t , y) est de classe C par rapport ses deux variables alors la solution y = y(t ) du problme de
C AUCHY existe, est unique et appartient C 1 (I ).
Dans notre cas, (t , y) = (y m )+cos(t ), donc t (t , y) = sin(t ) et y (t , y) = m(y m1 ) qui sont de classe C 1 , donc
le problme (4.3) possde une solution unique.
2. Le problme (4.2) est un problme du type
trouver y : I R+ R tel que
(

y 0 (t ) = (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 n = t 0 + nh (n 0), on cherche la valeur inconnue u n qui approche y(t n ). Lensemble de valeurs
{ u 0 , u 1 , . . . } reprsente la solution numrique. Le schma de E ULER rtrograde tablit une relation entre u n et u n+1 et
il est donc possible de calculer successivement u 1 , u 2 ,. . ., en partant de u 0 .

148

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Si nous intgrons lEDO y 0 (t ) = (t , y(t )) entre t n et t n+1 nous obtenons


Z
y(t n+1 ) y(t n ) =

t n+1
tn

(t , y(t )) dt .

Soit u n une approximation de y(t n ) et u n+1 une approximation de y(t n+1 ). Si on utilise la formule du rectangle
droite, i.e.
Z tn+1
(t , y(t )) dt h(t n+1 , y(t n+1 ))
tn

on obtient le schma dE ULER rtrograde :


(

y 0 = 0,

u n+1 = u n + h ((u n+1 )m + cos(t n+1 )) .


Ce schma est implicite car il ne permet pas de calculer u n+1 directement partir de u n .
3. Il sagit de trouver u n+1 tel que

u n+1 = u n + h u n+1
+ cos(t n+1 ) .

Pour dterminer u n+1 nous devons chercher le zro de la fonction g n dfinie par
g n (x) = x + hx m (h cos(t n+1 ) + u n ) .
La mthode de N EWTON pour approcher le zro de g n construit une suite (x k )kN qui converge vers u n+1 partir
dun x 0 bien choisit selon la dfinition par rcurrence suivante :
x k+1 = x k

x k + hx km (h cos(t n+1 ) + u n )
g n (x k )
=
x

.
k
g n0 (x k )
1 + mhx km1

Le premier pas de la mthode de N EWTON scrit donc


x1 = x0

x 0 + hx 0m (h cos(t n+1 ) + u n )
1 + mhx 0m1

Choisissons x 0 = u n comme valeur de dpart (un autre choix pourrait tre x 0 = u n +h(t n , u n )). Nous pouvons utiliser
x 1 comme approximation de u n+1 et on obtient le schma

u 0 = 0,
u n + hu nm (h cos(t n+1 ) + u n )

.
u n+1 =
1 + mhu nm1

Exercice 4.8
Soit le problme de C AUCHY :
(

y 0 (t ) + 10y(t ) = 0, t R,

(4.4)

y(0) = y 0 > 0.
1. Montrer quil existe une unique solution globale y C (R, R) que vous prciserez explicitement.
2. Soit le schma numrique de C RANK -N ICOLSON dfini par la suite (u n )nN vrifiant
u n+1 u n
+ 5(u n+1 + u n ) = 0,
h

n N,

pour h > 0 fix.


Montrer que la suite (u n )nN est une suite gomtrique dont on prcisera la raison.
3. Montrer que la raison r de la suite vrifie |r | < 1 pour tout h > 0. Ce schma est-il inconditionnellement A-stable ?
4. Sous quelle condition sur h > 0 le schma gnre-t-il une suite positive ?
5. Donner lexpression de u n en fonction de n.
6. Soit T > 0 fix, soit n tel que T h < n h T (donc n dpend de h). Montrer que
lim u n = y 0 e 10T .

h0

G. Faccanoni

149

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

7. Soit (v n )nN la suite dfinissant le schma dE ULER explicite pour lquation diffrentielle (4.4). Montrer que
lim v n = y 0 e 10T .

h0

Montrer que u n converge plus vite que v n vers y(t n ) = y 0 e 10T lorsque h 0.

C ORRECTION DE L EXERCICE 4.8. Cest un problme de C AUCHY du type


(

y 0 (t ) = (t , y(t )), t R,

(4.5)

y(0) = y 0 > 0,
avec (t , y) = g (y) = 10y.

1. On montre dabord quil existe une et une seule solution locale (i.e. sur [T ; T ]) de classe C 1 ([T, T ], R). On montre
ensuite que cette solution est de classe C ([T, T ], R). On montre enfin que la solution admet un prolongement
sur R.
? Comme g C 1 (R, R), daprs le thorme de C AUCHY -L IPSCHITZ il existe T > 0 et une unique solution y C 1 ([T, T ], R).
? Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur y ainsi y C ([T, T ], R).
? La fonctionne nulle est solution de lEDO (mais non du problme de C AUCHY donn). Par lunicit de la solution
du problme de C AUCHY on en dduit que soit y(t ) > 0 pour tout t [T, T ] (i.e. lorsque y 0 > 0) soit y(t ) < 0 pour
tout t [T, T ] (i.e. lorsque y 0 > 0). De plus, y est dcroissante si y 0 > 0 et croissante si y 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 y(t ) 0, toutes les autres solutions sont du type y(t ) = C e 10t . En prenant en compte la condition initiale on
conclut que lunique solution du problme de C AUCHY est y(t ) = y 0 e 10t dfinie pour tout t R.
y
3
2
1
1

2
3
2. Soit le schma numrique de C RANK -N ICOLSON dfini par la suite (u n )nN vrifiant
u n+1 u n
+ 5(u n+1 + u n ) = 0,
h

n N,

pour h > 0 fix. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire :
u n+1 = 5hu n+1 5hu n + u n
do

1 5h
un .
1 + 5h

u n+1 =
Il sagit dune suite gomtrique de raison
r=
3. Pour tout h > 0 on a
r=

1 5h
.
1 + 5h

1 5h
10h
= 1
1 + 5h
1 + 5h

et
1 < 1

10h
< 1.
1 + 5h

Ce schma est donc inconditionnellement A-stable car |u n+1 | = |r n+1 u 0 | |u 0 |.

150

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

4. Le schma gnre une suite positive ssi


1
i.e. ssi

10h
>0
1 + 5h
1
h< .
5

5. Par rcurrence on obtient

1 5h
un =
1 + 5h

n
u0 .

6. Soit T > 0 fix et considrons n (dpendant de h) tel que T h < n h T . En se rappelant que
lim

x0

ln(1 + x)
=1
x

et en observant que

15h
1+5h

T 1
h

15h
1+5h

15h
1+5h

k
e (T h)

ln(15h)ln(1+5h)
h

eT

ln(15h)ln(1+5h)
h

k
e

ln(1+5h)
(T h) 5 ln(15h)5
5h

5 ln(15h)5 ln(1+5h)
5h

e 10T

e 10T

on conclut que

lim u n = u 0 lim

h0

h0

1 5h
1 + 5h

= u 0 e 10T .

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


v n+1 v n
= (t n , v n )
h

v n+1 = v n 10hv n = (1 10h)v n = (1 10h)n+1 v 0 .

Il sagit nouveau dune suite gomtrique de raison


r e = 1 10h
qui converge si et seulement si |r e | < 1, i.e. si et seulement si h < 0,2 (le schma dE ULER pour cette EDO est conditionnellement stable).
Soit T > 0 fix et considrons n (dpendant de h) tel que T h < n h T . Alors
T

(1 10h) h 1
k

(1 10h)n

(1 10h) h
k

ln(110h)
h

ln(110h)
h

e (T h)
k

eT

10(T h) ln(110h)
10h

10T

k
e

e 10T

ln(110h)
10h

e 10T

do

lim v n = u 0 lim (1 10h) h = u 0 e 10T .

h0

h0

De plus, on sait (cf. cours) que la suite (u n )nN converge lordre 2 tandis que la suite (v n )nN converge lordre 1.

Exercice 4.9
Soit le problme de C AUCHY :

G. Faccanoni

p
0

y (t ) +

y(t )

2
y(0) = u 0 > 0.

= 0, t R+ ,

151

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

1. Soit le schma numrique dfini par la suite (u n )nN suivante


u n+1 u n
u n+1
+ p
= 0,
h
2 un

n N,

pour h > 0 fix. Expliciter lexpression de u n+1 en fonction de u n .


2. Montrer que la suite (u n )nN est une suite positive, dcroissante et convergente vers 0.
C ORRECTION DE L EXERCICE 4.9.
Cest un problme de C AUCHY du type
(

y 0 (t ) = (t , y(t )), t R,
y(0) = y 0 > 0,

avec (t , y) = g (y) =

y
2 .

1. Pour h > 0 fix on obtient une formule de rcurrence rendue explicite par un calcul lmentaire :
u n+1 =

un
1+

ph
2 un

2(u n )3/2
= p
,
2 un + h

n N.

2. On tudie la suite
(

u 0 > 0,
u n+1 =

2(u n )3/2
p
,
2 u n +h

n N,

pour h > 0 fix.


Par rcurrence on montre que si u 0 > 0 alors u n > 0 pour tout n N. De plus,

u n+1
un

1
1+ 2phu

< 1 pour tout n N : la


n

suite est monotone dcroissante. On a alors une suite dcroissante et borne par zro, donc elle converge. Soit ` la
limite de cette suite, alors ` 0 et ` =

3/2

2`
p
2 `+h

donc ` = 0.

Exercice 4.10
Soit le problme de C AUCHY :
(

y 0 (t ) + y 5 (t ) = 0, t R+ ,

(4.6)

y(0) = y 0 > 0.
1. Montrer quil existe une unique solution globale y C (R+ , R+ ).
2. Soit le schma numrique dfini par la suite (u n )nN suivante
u n+1 u n
+ u n+1 u n4 = 0,
h

n N,

pour h > 0 fix. Expliciter lexpression de u n+1 en fonction de u n .


3. Montrer que la suite (u n )nN est une suite dcroissante et convergente vers 0 pour tout h > 0 fix.
C ORRECTION DE L EXERCICE 4.10.
Cest un problme de C AUCHY du type
(

y 0 (t ) = (t , y(t )), t R,
y(0) = y 0 > 0,

(4.7)

avec (t , y) = g (y) = y 5 .
1. On montre dabord quil existe une et une seule solution locale (i.e. sur [T ; T ]) de classe C 1 ([0, T ], R). On montre
ensuite que cette solution est de classe C ([0, T ], R). On montre enfin que la solution admet un prolongement sur R+ .
? Comme g C 1 (R+ , R+ ), daprs le thorme de C AUCHY -L IPSCHITZ il existe T > 0 et une unique solution y
C 1 ([0, T ], R).
? Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur y ainsi y C ([0, T ], R).
? La fonctionne nulle est solution de lEDO (mais non du problme de C AUCHY donn). Comme y 0 > 0, par lunicit
de la solution du problme de C AUCHY on a y(t ) > 0 pour tout t [0, T ] (car deux trajectoires ne peuvent pas se
croiser). De plus, y est dcroissante, ainsi la solution est borne (y(t ) ]0, y 0 [). On en dduit par le thorme des
extrmits que la solution y admet un prolongement sur R+ solution de lEDO. 1
1. On peut montrer que lunique solution du problme (4.6) est la fonction y : [0, T ] R dfinie par y(t ) = y 0 (4t y 04 + 1)1/4 .

152

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

2. Pour h > 0 fix on obtient une formule de rcurrence rendue explicite par un calcul lmentaire :
u n+1 =

un
1 + u n4 h

n N.

3. On tudie la suite
(
u 0 = y 0 > 0,
u n+1 =

un
,
1+u n4 h

n N,

pour h > 0 fix.


Par rcurrence on montre que si u 0 > 0 alors u n > 0 pour tout n N. De plus,

u n+1
un

1
1+u n4 h

< 1 pour tout n N : la

suite est monotone dcroissante. On a alors une suite dcroissante et borne par zro, donc elle converge. Soit ` la
limite de cette suite, alors ` 0 et ` = 1+`` 4 h donc ` = 0. Ce schma est donc inconditionnellement A-stable.

Exercice 4.11
Soit le problme de C AUCHY :
(

y 0 (t ) + sin(y(t )) = 0, t R,
y(0) = y 0 > 0.

(4.8)

1. Montrer quil existe une unique solution globale y 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 )nN construite par ce schma vrifie
|u n+1 | |u n | + h,

n N,

|u n | |u 0 | + nh,

n N.

o h > 0 est le pas de la suite.


4. En dduire que

C ORRECTION DE L EXERCICE 4.11.


Cest un problme de C AUCHY du type
(

y 0 (t ) = (t , y(t )), t R,
y(0) = y 0 > 0,

(4.9)

avec (t , y) = g (y) = sin(y).


1. Comme g C 1 (R, R), daprs C AUCHY-L IPSCHITZ, il existe T > 0 et une unique solution y C 1 ([T, T ], R). Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur y et y C ([T, T ], R).
Toutes les fonctions constante y(t ) = k pour k Z sont solutions de lquation diffrentielle car g (k) = 0. Pour y 0
(k+1)]

(k+1)]

donn, soit k Z tel que y 0 [k;


; par lunicit de la solution du problme de C AUCHY on a y(t ) [k;
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 y admet un prolongement sur R solution de lEDO.
2. Soit h > 0 fix et t n = nh pour tout n Z. Le schma dE ULER explicite pour lEDO donne construit la suite
u n+1 = u n h sin(u n ),

n N.

3. Comme |a + b| |a| + |b| et comme | sin(x)| 1 pour tout x R, on conclut que


|u n+1 | = |u n h sin(u n )| |u n | + |h sin(u n )| |u n | + h
pour h > 0 fix.
4. Par rcurrence : |u n+1 | |u n | + h |u n1 | + 2h |u 0 | + (n + 1)h.

Exercice 4.12 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 signifie quil existe une constante K < 0 telle que la temprature vrifie lquation diffrentielle

G. Faccanoni

153

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

ordinaire (EDO) du premier ordre.


T 0 (t ) = K (T (t ) 25).
La condition initiale (CI) est donc simplement
T (0) = 75.
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 DE L EXERCICE 4.12.

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 fixera en utilisant la CI. Il sagit dune EDO
variables sparables donc formellement on a
T 0 (t ) = K (T (t ) 25)
Z
Z
1
dT = K dt
(T 25)

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

ln(2)
5 t

T
75

50

25

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.

154

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

1. Exemple avec t = 5 :
T
75

50

25

5
ti
0.000000
5.000000
10.000000
15.000000

T (t i )
75.000000
50.000000
37.500000
31.250000

15 t

10
Ti
75.000000
40.342641
29.707933
26.444642

T (t i ) Ti
0.000000
9.657359
7.792067
4.805358

2. Exemple avec t = 1 :
T
75

50

25

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

15 t

10
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

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

Exercice 4.13 Les experts - Toulon


La loi de Newton affirme 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

G. Faccanoni

155

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

corps suit lquation diffrentielle


(
T 0 (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 2H 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 DE L EXERCICE 4.13.
1. La mthode dE ULER implicite (ou rgressive) est une mthode dintgration numrique dEDO du premier ordre de
la forme T 0 (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 + nt ,
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

autrement dit, litre en t n ne dpend que de t et de n mais ne dpend pas de Tn . Comme 0 < 1K1 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
37

ln 20
1
37
37
n+1
20 =
37 = (1 K t )
=
= n + 1 = log(1K t )
=
= n 8.
(1 K t )n+1
20
20
ln(1 K t )
Comme t n = t 0 + nt , si t n = 2H 20 alors t 0 = t n nt = 2H 20 1H 20 = 01H 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 ) 6= Text quelque soit t . Puisquil sagit dune EDO variables sparables on peut calculer la solution comme
suit :
T 0 (t ) = K (T (t ) Text )
Z
Z
1
dT = K dt
T Text

156

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

dT
= K dt
T Text

ln(T Text ) = K t + c

T Text = De K t

T (t ) = Text + De K t .

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

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

2H20

2H10

2H00

1H50

1H40

1H30

1H20

1H10

1H00

Exercice 4.14
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 0 (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 0 (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 I n A lorsque n + indpendamment du pas h > 0 fix.
C ORRECTION DE L EXERCICE 4.14. Cest un problme de C AUCHY du type
(

I 0 (t ) = (t , I (t )), t R+ ,
I (0) = I 0 > 0,

(4.10)

avec (t , I (t )) = g (I (t )) = k I (t )(A I (t )).


1. Comme g C 1 (R, R), daprs C AUCHY-L IPSCHITZ, 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 0 (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+ .

G. Faccanoni

157

Jeudi 5 juin 2014

4. quations diffrentielles 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 fix. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire :
I n+1 =

1 + k At
In .
1 + k I n t

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 At )I n (1 + k I n t )A

In A

donc par rcurrence I n+1 A quelque soit n ;


At
si I n ` alors ` = 1+k
1+k`t ` donc ` = 0 ou ` = A ;
? I n est une suite monotone croissante (encore par rcurrence on montre que |I n+1 | |I n | |I 0 |) ;
donc I n A lorsque n + indpendamment du pas h > 0 choisi.
?

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 =

ln(363/38)
35000

A I0
I0

et t = 1 :

I
A

Exacte
Approche avec t = 1

I0
t

Exercice 4.15
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 ) vrifie
lquation diffrentielle ordinaire (EDO) du premier ordre
p 0 (t ) = kp(t ) hp 2 (t ).
On veut calculer p(t ) partir dun nombre initiale dindividus donn
p(0) = p 0 0.

158

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

C ORRECTION DE L EXERCICE 4.15.

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 fixera 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 ) 6= 0 et p(t ) 6=
k
+
h pour tout t R , ainsi
p 0 (t )
= 1.
kp(t ) hp 2 (t )
Formellement on a
dp
= 1 dt
kp hp 2
Z
Z
Z
1
1
1
h
dp
dp = 1 dt
k p
k k hp

p
= kt + kc
ln
k hp
k
p(t ) = 1
.
+h
De kt

Z
1
dp = 1 dt
p(k hp)
1
1
ln(p) ln(k hp) = t + c
k
k
p
= De kt
k hp
Z

=
=
=

=
=
=

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

p(t ) =

si p 0 = 0,

khp 0 +h

sinon.

si p 0 = hk ,

p 0 e kt

Une simple tude de la fonction p montre que


? si p 0 ]0; k/h[ alors p 0 (t ) > 0 et limt + p(t ) = k/h,
? si p 0 ]k/h; +[ alors p 0 (t ) < 0 et limt + p(t ) = k/h.
p
5
4
Exemple avec k = 3, h = 1
et diffrentes valeurs de
p0.

3
2
1
0
1

G. Faccanoni

159

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

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.
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 + kt ht p i )p i ,
p 0 donn.

On veut appliquer cette mthode au cas de la figure 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 figures 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

3 t

Exercice 4.16 Mthode de TAYLOR


La mthode de TAYLOR est bas sur la relation
y(x + h) ' y(x) + y 0 (x)h +

1 00
1
1 (m)
y (x)h 2 + y 000 (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=

1
y (m+1) ()h m+1
(m + 1)!

que lon peut approcher par


E'

pour x < < x + h,

h m (m)
y (x + h) y (m) (x) .
(m + 1)!

Considrons le problme de C AUCHY


(

y 0 (x) + 4y(x) = x 2 ,
y(0) = 1.

160

G. Faccanoni

Jeudi 5 juin 2014

4. quations diffrentielles ordinaires

Estimer y(0.1) par la mthode de TAYLOR dordre 4 avec un seul pas dintgration.

C ORRECTION DE L EXERCICE 4.16. Le dveloppement de TAYLOR en 0 jusqu lordre 4 est


y(h) ' y(0) + y 0 (0)h +

1
1
1 00
y (0)h 2 + y 000 (0)h 3 + y I V (0)h 4 .
2!
3!
4!

En drivant lEDO on trouve


y(0) = 1,
2

y (x) = 4y(x) + x ,

y 0 (0) = 4,

y 00 (x) = 4y 0 (x) + 2x,

y 00 (0) = 16,

y 000 (x) = 4y 00 (x) + 2,

y 000 (0) = 62,

y I V (x) = 4y 000 (x),

y I V (0) = 248.

donc, pour x = 0 et h = 0.1, on obtient


y(0.1) ' 1 +

4
16
62
248
+
+
+
= 0.6707
10 200 6000 240000

et comme


y I V (x + h) = 4y 000 (x) = 4 4y 00 (x) + 2 = 4 4y 0 (x) + 2x + 2 = 4 4 4y(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'

G. Faccanoni

248 I V
248
y (0.1) y I V (0) =
(166.259 248) = 0.000068.
960000
960000

161

5. Systmes linaires
Rsoudre lensemble dquations linaires Ax = b

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

(S)

?
?
?
?
?

a x

11 1
..
.

a n1 x 1

...

...

a 1p x p
..
.
a np x p

=
=

b1 ,
..
.
bn .

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 vrifie simultanment les n quations de (S). Rsoudre (S)
signifie chercher toutes les solutions.
Un systme est IMPOSSIBLE, ou incompatible, sil nadmet pas de solution. Un systme est POSSIBLE, ou compatible,
sil admet une ou plusieurs solutions.
Deux systmes sont QUIVALENTS sils admettent les mmes solutions.

criture matricielle
Si on note

x1
.
x = ..
xp

b1
.
b = ..
bn

a 11
..
A= .
a n1

...
...

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 coefficients rels, autrement dit A =
(a i , j ) Rnn 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) 6= 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 fini dtapes, itratives si elles ncessitent (thoriquement) un nombre infini dtapes. Notons ds prsent
que le choix entre une mthode directe et une mthode itrative pour la rsolution dun systme dpend non seulement
de lefficacit thorique des algorithmes, mais aussi du type de matrice, des capacits de stockage en mmoire et enfin de
larchitecture de lordinateur.

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

163

5. Systmes linaires

Jeudi 5 juin 2014

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 significatifs. Dans lexemple prcdent nous observons que, si lordinateur
ne retient que 6 chiffres significatifs, il est compltement inespr dobtenir une solution raisonnablement proche de la
solution.

Dfinition Conditionnement dune matrice


Le conditionnement dune matrice A Rnn non singulire est dfini par
K (A) = kAkkA1 k( 1),
o kk 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 :
kAk1 = max

n
X

j =1,...,n i =1

kAk = max

|a i j |,

n
X

i =1,...,n j =1

|a i j |.

Remarque Cas particulier

Si A est symtrique et dfinie positive a ,


K 2 (A) = kAk2 kA1 k2 =

max
min

o max (resp. min ) est la plus grande (resp. petite) valeur propre de A.
a. A Rnn est
? symtrique si a i j = a j i pour tout i , j = 1, . . . , n,
? dfinie positive si pour tout vecteurs x Rn avec x 6= 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 kxk/kxk sur la
solution du systme en fonction de lerreur relative kbk/kbk commise sur le second membre. Il est possible de dmontrer
que
kbk
kxk
K (A)
kxk
kbk
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 kbk/kbk est de lordre de la prcision relative = 10p du calculateur, alors kxk/kxk pourrait, au pire, tre gal
K (A) = 10log10 (K (A)) 10p = 10log10 (K (A)p) .
Si on calcul la solution du systme linaire avec un ordinateur p chiffres significatifs en valeur dcimale, on ne pourra pas
garantir priori plus de
E (p log10 (K (A)))
chiffres significatifs sur la solution. Si on applique cette rgle au systme linaire de lexemple, il est facile de vrifier que
K (A) ' 107 , par consquent nous pouvons perdre jusqu 7 chiffres significatifs lors de sa rsolution. Il faut donc un ordinateur calculant avec 10 chiffres significatifs 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 dfinie par a i j = 1/(i + j 1) pour 1 i , j n.

Attention
Un systme linaire ne change pas de solution si on change lordre des quations. Cependant, lordre des quations peut
changer totalement la solution donne par une mthode numrique !

164

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

5.2. Mthode (directe) dlimination de G AUSS et factorisation LU


Dfinition 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).
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,
b
? si A est une matrice triangulaire infrieure, on a x 1 = a 1 et on dduit les inconnues x 2 , x 3 , . . . x n grce la relation
11

!
iP
1
1
ai j x j ;
xi = a bi
ii

j =1

si A est une matrice triangulaire suprieure on a x n =

!
n
P
1
xi = a bi
ai j x j .
ii

bn
a nn

et on dduit les inconnues x n1 , x n2 , . . . x 1 grce la relation

j =i +1

Proprit
Le dterminant dune matrice triangulaire est gal au produit des lments diagonaux.
La mthode du pivot de G AUSS 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
modifi. Enfin on rsout le systme triangulaire Ux = y.

Dfinition Mthode du pivot de G AUSS

Soit A = (a i j ) 1i n la matrice des coefficients du systme Ax = b.


1 j p

ik

tape k : en permutant ventuellement deux lignes du systme, on peut supposer a kk 6= 0 (appel pivot de ltape k). On
transforme toutes les lignes L i avec i > k comme suit :

Li Li

ai k
a kk

Lk .

En ritrant le procd pour k de 1 n, on aboutit un systme triangulaire suprieur.

Exemple
Soit le systme linaire

x +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 G AUSS :

2 2L 1
x 1 +2x 2 +3x 3 +4x 4 = 1 LL 2 L

x 1 +2x 2 +3x 3 +4x 4 = 1

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

3x
+4x
+x
+2x
=
3
2x
1
2
3
4
2 8x 3 10x 4 = 0

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

x 2 2x 3 7x 4 = 0
x 2 2x 3 7x 4 = 0 L 4 L 4 +L 3
L 4 L 4 7L 2

4x 3 +4x 4 = 0
4x 3 +4x 4 = 0

40x 4 = 0
4x 3 +36x 4 = 0

donc x 4 = 0, x 3 = 0, x 2 = 0 et x 1 = 1.
2. Rsolution par la mthode du pivot de G AUSS en criture matricielle :
1
2

[A|b] =
3
4

G. Faccanoni

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
4 4L 1
L4L

3
4

1
0
0
0

2
1
2
7

3
2
8
10

4
7
10
13

1
0

0
0

165

5. Systmes linaires

Jeudi 5 juin 2014

L 3 L 3 2L 2
L 4 L 4 7L 2
0

0
0

2
1
0
0

3
2
4
4

4
7
4
36

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.

Algorithme de factorisation LU sans pivot

Soit le systme linaire Ax = b.


Factorisation On commence par factoriser la matrice A Rnn 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
{Il sagit de `i k mmoris dans a i k }
ai k
a kk
for j = k + 1 to n do
ai j ai j ai k ak j
{Il sagit de u i j mmoris dans a i j }
end for
end for
end for

Rsolution Rsoudre le systme linaire revient maintenant rsoudre successivement


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 y j
end for
y i bi si
end for
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 Rnn , 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 identifier des classes de matrices particulires pour lesquelles les hypothses de cette proposition sont satisfaites :

Proposition

Si la matrice A Rnn est symtrique et dfinie positive ou si est diagonale dominante a alors la factorisation LU existe
et est unique.
a. A Rnn est
? symtrique si a i j = a j i pour tout i , j = 1, . . . , n,
? dfinie positive si pour tout vecteurs x Rn avec x 6= 0, xT Ax > 0,

166

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

? diagonale dominante par lignes si |a i i |

Pn

|a |, pour i = 1, . . . , n ( diagonale dominante stricte par lignes si lingalit est stricte),

j =1 i j
j 6=i
P
? diagonale dominante par colonnes si |a i i | nj=1 |a j i |, pour i = 1, . . . , n ( diagonale dominante stricte par colonnes si lingalit est stricte),
j 6=i

Une technique qui permet deffectuer la factorisation LU pour toute matrice A inversible, mme quand les hypothses de
cette proposition ne sont pas vrifies, est la mthode du pivot par ligne : il suffit deffectuer une permutation convenable
des lignes de la matrice originale A chaque tape k o un terme diagonal a kk sannule.

Dfinition Algorithme de G AUSS avec pivot


(k)
doivent tre diffrents de zro. Si la matrice est inversible mais un
Dans la mthode dlimination de G AUSS les pivot a kk
pivot est zro (ou numriquement proche de zro), on peut permuter deux lignes avant de poursuivre la factorisation.
Concrtement, chaque tape on cherche avoir le pivot de valeur absolue la plus grande possible. Lalgorithme modifi
scrit alors
for k = 1 to n 1 do
for i = k + 1 to n do
Chercher r tel que |a r(k)
| = maxr =k,...,n |a r(k)
| et changer la ligne k avec la ligne r
k
k

`i k

a i(k)
k

(k)
a kk
for j = k + 1 to n do
a (k)
`(k)
a i(k)
a i(k+1)
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.

Proprit Dterminant
La factorisation LU permet de calculer le dterminant de A en O(n 3 ) car det(A) = det(L) det(U) =

Qn

k=1

u 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 Rnn , les vecteurs colonnes de X sont les solutions des systmes linaires
Axi = ei ,

pour i = 1, . . . , n.

En supposant que PA = LU, o P est la matrice de changement de pivot partiel, on doit rsoudre 2n systmes 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
x 2 2
1
=
2 x 3 3

x4

et

1
2

3
4

2
3
4
1

3
4
1
2


10
4 x1
x 2 10
1
= .
2 x 3 10

x4

10

1. Rsoudre les systmes linaires par la mthode du pivot de G AUSS.


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 G AUSS du premier systme
1
2

[A|b] =
3
4

G. Faccanoni

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
4 4L 1
L4L

3
4

1
0
0
0

2
1
2
7

3
2
8
10

4
7
10
13

1
L 3 L 3 2L 2
0
4 7L 2
L4L

0
0

1
0

0
0

2
1
0
0

3
2
4
4

4
7
4
36

1
0

0
0

167

5. Systmes linaires

Jeudi 5 juin 2014


1
0
L 4 L 4 +L 3

0
0

2
1
0
0

3
2
4
0

1
0

0
0

4
7
4
40

donc
x 4 = 0,

x 3 = 0,

x 2 = 0,

x 1 = 1.

Rsolution par la mthode du pivot de G AUSS du second systme


1
2

(A|b) =
3
4

2
3
4
1

3
4
1
2

L 2 L 2 2L 1
10
L 3 L 3 3L 1

10
4 4L 1
L4L

10
10

4
1
2
3

1
0
0
0

2
1
2
7

3
2
8
10

2
1
0
0

3
2
4
0

L 4 L 4 +L 3
0

0
0

4
7
10
13
4
7
4
40

10
L 3 L 3 2L 2
10
4 7L 2
L4L

20
30

10
10

1
0

0
0

2
1
0
0

3
2
4
4

4
7
4
36

10
10

0
40

40

donc

x 1 + 2x 2 + 3x 3 + 4x 4 = 10

x 2x 7x = 10
2
3
4
4x 3 + 4x 4 = 0

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

2 2L 1
4 LL 2 L
1
3 L 3 3L 1

1
2
L
L
4L
4
1
4

3
2

3
4
1
2

2
1
2
7

3
2
8
10

4
L 3 L 3 2L 2
7
4 7L 2
L4L

10
13

1
2

3
4

2
1
2
7

1
4

2
7
L
L
+L
4
3
4

3
4
4
36

3
2
4
4

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

1
0
U=
0
0

0
0

0
1

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


0
1
2
7

0
0
1
1


1
0 y1
y 2 2
0
=
0 y 3 3
4
1 y4

2
1
0
0

3
2
4
0


1
4
x1
x 2 0
7
=
4 x 3 0
0
40 x 4

1
2

3
4

y 1 = 1,

y 2 = 0,

y 3 = 0,

y4 = 0

x 4 = 0,

x 3 = 0,

x 2 = 0,

x 1 = 1.

y 2 = 10,

y 3 = 0,

y 4 = 40

x 2 = 1,

x 1 = 1.

et Ux = y

1
0

0
0

Pour rsoudre le second systme linaire on rsout les systmes triangulaires Ly = b

1
2

3
4

0
1
2
7

1
0

0
0

2
1
0
0

0
0
1
1


10
0 y1

0
y 2 = 10
0 y 3 10

y4

y 1 = 10,

10

et Ux = y
3
2
4
0

4
x1
10

7 x 2 10

=
4 x 3 0

40

x4

x 4 = 1,

x 3 = 1,

40

3. Le dterminant de A est u 11 u 22 u 33 u 44 = 1 (1) (4) 40 = 160.

168

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

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

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

0
1
2
7
0
1
2
7
0
1
2
7
0
1
2
7

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

0 y1
1
1
1

0
0 y 2 0
2

=
= puis
0 y 3 0
1
0

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

2
1
0
0
2
1
0
0
2
1
0
0
2
1
0
0

3
2
4
0
3
2
4
0
3
2
4
0
3
2
4
0

1
11
9
1

11
9
.
1

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


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 finalement
9
/40
1
1 /40
A = 1
/40
11
/40

/40
/40
11
/40
9
/40
1

/40
/40
9
/40
1
/40

1
1
11
9

9
/40
1

1
/40

=
1
/40 40 11
1
/40
11

11

11

5.3. Mthodes itratives


Une mthode itrative pour le calcul de la solution dun systme linaire Ax = b avec A Rnn est une mthode qui
construit une suite de vecteurs x(k) = (x 1(k) , x 2(k) , . . . , x n(k) )T Rn convergent vers le vecteur solution exacte x = (x 1 , x 2 , . . . , x n )T
pour tout vecteur initiale x(0) = (x 1(0) , x 2(0) , . . . , x n(0) )T 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 .

Dfinition Mthode de J ACOBI


Soit x0 = (x 10 , x 20 , . . . , x n0 ) un vecteur donn. La mthode de J ACOBI dfinit la composante x ik+1 du vecteur xk+1 partir des
composantes x kj du vecteur xk pour j 6= i de la manire suivante :
bi
x ik+1 =

x(k) =

x 1(k)
x 2(k)
..
.
x i(k)
1
x i(k)
x i(k)
+1
..
.
x n(k)

n
P
j =1
j 6=i

a i j x kj

ai i

i = 1, . . . , n

x(k+1) =

x 1(k+1)
x 2(k+1)
..
.
x i(k+1)
1
x i(k+1)
x i(k+1)
+1
..
.
x n(k+1)

Proposition

Si la matrice A est diagonale dominante stricte, la mthode de J ACOBI converge.

G. Faccanoni

169

5. Systmes linaires

Jeudi 5 juin 2014

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.

Dfinition Mthode de G AUSS -S IDEL


Soit x0 = (x 10 , x 20 , . . . , x n0 ) un vecteur donn. La mthode de G AUSS -S IDEL dfinit la composante x ik+1 du vecteur xk+1
partir des composantes x k+1
du vecteur xk+1 pour j < i et des composantes x kj du vecteur xk pour j i de la manire
j
suivante :
iP
1
n
P
bi
a i j x k+1

a i j x kj
j
x ik+1 =

(k)
x =

j =1

j =i +1

ai i
x 1(k)
x 2(k)
..
.
x i(k)
1
x i(k)
x i(k)
+1
..
.
x n(k)

i = 1, . . . , n

(k+1)
x
=

x 1(k+1)
x 2(k+1)
..
.
x i(k+1)
1
x i(k+1)
x i(k+1)
+1
..
.
x n(k+1)

Proposition

Si la matrice A est diagonale dominante stricte ou si elle est symtrique et dfinie positive, la mthode de G AUSS -S EIDEL
converge.

Algorithmes

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 kb Axk
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 kb Axk
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 kb Axk
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 kb Axk
end while

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 laffirmer dans certains cas, comme le montre la proposition suivante

Proposition

Soit A une matrice tridiagonale de taille n n inversible dont les coefficients 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

170

G. Faccanoni

Jeudi 5 juin 2014

5. 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
z = 94 x2 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

1 2/2 4/2
1 20 04
1 21 4/4
1
1/16
1/8
1

x(1) = 1 + 02 = 1 , x(2) = 1 + 12 = 3/2 , x(3) = 1 + 2/16 = 1/32 ,


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

1 02 40
1 2/2 4/8
3/32
1
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

x(4) =


1
61

5
1 2/32 4/32
/128
1

1 + 2/8
= 15/16 .
265
1/8
1/32
9
/128
4 2 4


3
61

9
1 2/32 4/64
/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

171

5. Systmes linaires

Jeudi 5 juin 2014

Exercices

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

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

Exercice 5.1

Soit le systme linaire

6
2
1


1 x1
12
0 x 2 = 0 .
6 x3
6

1
4
2

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 G AUSS.
4. Factoriser la matrice A (sans utiliser la technique du pivot) et rsoudre les systmes linaires.
C ORRECTION DE L EXERCICE 5.1.
1. Mthode de J ACOBI :

2
(0)
x = 2 ,
2

4
12(12+12)
/3
6

0(22+02)
(1)
1
=
,
x =

4
6(12+22)
0
6

12(1 2 +1 10 )

12(1(1)+10)

13
/6
0(2 4 +00)
(2)
3
= 2/3 ,
x =

4
10
6(1 43 +2(1))
/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

ainsi

1.926
x 1.083 .
0.861
2. Mthode de G AUSS -S EIDEL :
12(12+12)
4

/3
2
0(2 64 +02)
(0)
(1)
2
3

2
x =
, x =
= 3 ,
4
6(1 34 +2 2
)
2
1
3
6

12(1 35 +1 35 )

12(1 2
35
3 +11)
/18
6
0(2 35 +01)
(2)
35

18

/36 ,
x =
=
4
35
35
1
6(1 18 +2 36 )
6

18

(3)

36

431

/216

= 431/432

4
431
431
1
6(1 216 +2 432 )
6

0(2 431
216 +01)
6

ainsi

1.995
x 0.995 .

1
3. Mthode dlimination de G AUSS :

6
(A|b) = 2
1

1
4
2

L 2 L 2 62 L 1
6
12
L 3 L 3 16 L 1
0 0
6
0

1
0
6

1
11
3
11
6

1
13
35
6

11

6 L
12
6
L 3 L 3 11
2
3
4 0
0
4

1
11
3

1
13
6

12
4
6

donc

6x 1 + x 2 + x 3 = 12,
11
1
3 x 2 3 x 3 = 4

6x 3 = 6

x 3 = 1,

x 2 = 1,

x 1 = 2.

4. Factorisation de la matrice A :

6
2
1

L 2 L 2 26 L 1
6
1
L 3 L 3 16 L 1
0 62
1
6
6

1
4
2

1
11
3
11
6

11

1 L 3 L 3 116 L 2 62
3
31
6
35
6

1
11
3
11
6
11
3

1
6

1
13

donc

L = 31
1
6

0
1
1
2

0
0
1

6
U = 0
0

1
11
3

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

172

1
1
3
6

y 2 = 4,

y3 = 6

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

et Ux = y

6
0
0

1
11
3


1
x1
1
13 x 2 = 4
x3
6
6

x 3 = 1,

x 2 = 1,

x 1 = 2.

Exercice 5.2
Soit A une matrice, A Mn,n (R).
1. Rappeler les conditions ncessaires et suffisantes pour lexistence dune factorisation LU de la matrice A et prciser
les dfinitions de L et U.
2. On suppose L et U construites (i.e. on dispose de tous les coefficients `i , j et u i , j de L et U), crire lalgorithme de
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

Construire la main les matrices L et U de la factorisation LU.


C ORRECTION DE L EXERCICE 5.2.
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 identifier 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 dfinies positives. Une technique qui permet deffectuer la factorisation LU pour toute
matrice A inversible, mme quand les hypothses de cette proposition ne sont pas vrifies, est la mthode du pivot
par ligne : il suffit 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
y 1 = b1 ,

y i = bi

iX
1

`i j y j ,

i = 2, . . . , n

j =1

2.2. le systme triangulaire suprieure Ux = y par lalgorithme

!
n
X
yn
1
yi
ui j x j ,
,
xi =
xn =
u nn
ui i
j =i +1
3. Factorisation :

3
1
1

1
3
1

L 2 L 2 1

3 L1
1
3
L 3 L 3 1
L1
3
1 0
0
3

1 L L / L
3
3
3
2
/
4/3 0
8
/3
0

1
8
/3
4/3

j = n 1, . . . , 1

1
8
/3
0

1
4/3 .
2

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

Exercice 5.3
Calculer, lorsquil est possible, la factorisation LU des matrices suivantes :

1
A = 2
7

2
4
8

3
5 ,
9

1
B = 7
2

2
8
4

3
9 .
5

Comment peut-on modifier lalgorithme de factorisation pour pouvoir toujours aboutir une factorisation LU lorsque
la matrice est inversible ?

G. Faccanoni

173

5. Systmes linaires

Jeudi 5 juin 2014

C ORRECTION DE L EXERCICE 5.3. 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).
Matrice A : comme det(A) 6= 0, la matrice A est bien inversible. Puisque det(A1 ) = a 11 = 1 6= 0 mais det(A2 ) = a 11 a 22
a12a 21 = 0, on ne peut pas factoriser A sans utiliser la technique du pivot. En effet,

1
A = 2
7

2
4
8

L 2 L 2 12 L 1
1
3
L 3 L 3 71 L 1
5 0
0
9

2
0
6

3
1
12

La factorisation LU ne peut pas tre calcule car la prochaine tape il faudrait effectuer le changement L 3 L 3 6
0 L2.
Matrice B :

2
8
4

L 2 L 2 17 L 1
3
1
L 3 L 3 21 L 1
9 0
5
0

0
1
0

0
0 ,
1

1
A2 = 7
2

2
6
0

3
12
1

La factorisation LU de la matrice B est donc


1
L = 7
2

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 coefficient le plus lev : cest la
mthode du pivot partiel. Pour la matrice A cela aurait donn

A= 2
7

2
4
8

3
1
L 2 L 3
5 7
9
2

2
8
4

L 2 L 2 71 L 1
1
3
L 3 L 3 21 L 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 5.4
Soit un paramtre rel et soient les matrices A , P et le vecteur b dfinis 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 DE L EXERCICE 5.4.
1. La matrice A est inversible si et seulement si det(A) 6= 0. Comme

2
4
1
det(A) = det 2 1
2

174

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

= (2 (2) 2) + (4 (1) 2) + (1 3) (2 (1) 3) (4 2) (1 (2) 2)


= (8) + (8) + (3) (6) (8) (4)
= 6 5,
la matrice A est inversible si et seulement si 6= 56 .
2. Pour une matrice A carre dordre n quelconque, la factorisation de G AUSS 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
4
A2 =
,
2

det(A1 ) = 2;
det(A2 ) = 4(1 + ).

Par consquent, la matrice A admet une dcomposition LU (sans pivot) si et seulement si 6= 1.


3. Si = 1 la matrice A nadmet pas de dcomposition LU sans pivot. La matrice P change les lignes 2 et 3 de la
matrice A et on obtient la matrice

1 0 0
2
4
1
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

2
1 L 2 L 2 L11
L 3 L 3 2 L 1
2 0
1
0

4
1
0

1
1
12

Par consquent, on obtient la dcomposition LU suivante de la matrice M :

1
L= 1
12

0
1
0

0
0 ,
1

2
U = 0
0

1
1 .
21

4
1
0

4. Pour rsoudre le systme linaire Mx = Pb il suffit de rsoudre les deux systmes triangulaires suivantes :
? Ly = Pb :
y 1 = 0,
?

3
3 1
y3 = + y1 = ;
2 2
2

y 2 = 1 y 1 = 1,

Ux = y :
x3 =

3
(2) = 3,
2

x 2 = (1 x 3 )/(1) = 4,

x 1 = (0 x 2 4x 3 )/2 =

19
.
2

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

..
.

avec et rels non nuls.


1. Vrifier que la factorisation LU de la matrice B ne peut pas tre calcule sans utiliser la technique du pivot.
2. Calculer analytiquement le nombre doprations ncessaires pour calculer la factorisation LU de la matrice A.

G. Faccanoni

175

5. Systmes linaires

Jeudi 5 juin 2014

3. Exprimer le dterminant de la matrice A sous forme rcursive en fonction des coefficients de la matrice et de sa
dimension n.
4. Sous quelles conditions sur et la matrice A est dfinie positive ? Dans ce cas, exprimer le conditionnement de
la matrice en fonction des coefficients et de la dimension n.
C ORRECTION DE L EXERCICE 5.5.
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

L 2 L 2 L 1

L 3 L 3 L 1

L
L

L
4
4 1
0
0

B(2) =
0
0

0
0

2. La matrice A est une matrice en flche : pour en calculer la factorisation LU il suffit de transformer la dernire
ligne, ce qui requiert le calcul de lunique multiplicateur `nk = / 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
Y
i =1

u i i = u nn

2 n1
u i i = (n 1)

= n (n 1)n2 2 .

i =1

n1
Y

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)( )n2 2
dont les racines sont
1,2 =

q
(n 1),

3 = = n = .

Par consquent, pour que la matrice A soit dfinie positive il faut que les valeurs propres soient tous positifs, ce qui
impose

.
> 0,
|| < p
n 1
Dans ce cas, le conditionnement de la matrice en norme 2 est

K 2 (A) =

+pn1

pn1
p

pn1
+ n1

si 0,
sinon.

Exercice 5.6
Donner une condition suffisante sur le coefficient 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

1
0

C ORRECTION DE L EXERCICE 5.6. Une condition suffisante pour la convergence des mthodes de J ACOBI et de G AUSS P
S EIDEL est que A est diagonale strictement dominante, i.e. 3i =1 |a i j | < |a i i | pour j = 1, 2, 3. La matrice A vrifie cette
i 6= j

condition si et seulement si || > 1.

176

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

Exercice 5.7
Considrons le systme linaire Ax = b avec

A = 0
0

avec , , et des paramtres rels. Donner des conditions suffisantes sur les coefficients pour avoir
1. convergence de la mthode de J ACOBI
2. convergence de la mthode de G AUSS-S EIDEL.
C ORRECTION DE L EXERCICE 5.7.
1. Une condition suffisante 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 suffisante pour la convergence de la mthode de G AUSS-S EIDEL. Une autre condition suffisante pour la convergence de cette mthode est que la matrice soit symtrique dfinie positive. Pour la
symtrie il faut que
(
= 0,
= ,
on obtient ainsi la matrice

A = 0
0

0
.

Elle est dfinie positive si ses valeurs propres sont positifs. On a


1 = ,

2 = ,

3 = + ,

donc il faut que > ||.


On note que dans ce cas, lorsque A est symtrique dfinie positive alors elle est aussi dominance diagonale stricte.

Exercice 5.8
crire les formules de la mthode dlimination de G AUSS 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 n1,n1 a n1,n
a n,1 a n,2 . . .
a n,n1
a n,n
Quelle est la forme finale 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 finaux.

C ORRECTION DE L EXERCICE 5.8. Comme la matrice a une seule sur-diagonale non nulle, les formules de la mthode dlimination de G AUSS deviennent
(k)
a i(k+1)
= a i(k)
+ `i k a k,
,
j
j
j

`i k =

a i(k)
k
(k)
a kk

i , j = k + 1,
i = k + 1.

La cot est donc de lordre de n et la matrice U est bidiagonale suprieure.

G. Faccanoni

177

5. Systmes linaires

Jeudi 5 juin 2014

Exercice 5.9
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 linfini.
C ORRECTION DE L EXERCICE 5.9.
1. Par dfinition, B est la matrice inverse de A si AB = BA = I. Comme

+
0
...

..
0

AB =
..

.
+
+ (n 3) . . . + (n 3)

0
..
.

0
(n 2)

il faut que

+ = 1
+ (n 3) = 0

(n 2) = 1
ce qui donne
=

n 3
,
n 2

1
.
n 2

2. On trouve immdiatement kAk = n|| tandis que


n
1
n o
2
max n,
=
.
||
n 2
||

kA1 k =

On conclut que le conditionnement K (A) en fonction de n est


K (A) = n||

2
= 2n.
||

La matrice est donc mal conditionne pour n grand.

Exercice 5.10
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 G AUSS et on donnera les dcompositions LU des deux matrices associes
ces systmes. On fournira galement la solution exacte de ces systmes. Commenter.

C ORRECTION DE L EXERCICE 5.10.

Premier systme :

1
1


a
1
=
.
b
0

Factorisation LU :

178

1 L 2 L 2 2 L 1

1
0

1
1 2

donc

L=

1
2

0
,
1

U=

1
1 2

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly = b et Ux = y :

0
1

1
1 2


y1
1
=
y2
0


1
a
= 2
b

2
y2 = ;

y 1 = 1,

1+

b=
,
1 2

Mais avec lordinateur, comme 1 + 1 et 1 + (1/) 1/, on obtient

e = 12 0
L
1

e=
U
0

1
2

a=

2
1 2

e = b et Ux
e =y:
Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly

1
2


y1
1
=
y2
0

1 a
1
= 2
2 b

0
1

y 1 = 1,

2
y2 = ;

b = 1,

a = 0.

Second systme :

1
1


a
0
=
.
b
1

Factorisation LU :

1 L 2 L 2 2 L 1 2

1
0

1
1 2

donc

L=

0
,
1

2
U=
0

1
1 2

Pour rsoudre le systme linaire on rsout les systmes triangulaires Ly = b et Ux = y :

0
1

2
0

1
1 2


y1
0
=
y2
1

y 1 = 0,


a
0
=
b
1

1+

a=

b=
,
1 2

Mais avec lordinateur, comme 1 + 1 et 1 + (1/) 1/, on obtient

e = 1 0
L
1
2

y 2 = 1;

e= 2
U
0

1
2

2
1 2

e = b et Ux
e =y:
Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly

2
0


y1
0
=
y2
1

1 a
0
=
1
2 b
0
1

y 1 = 0,

y 2 = 1;

b= ,
2

a= .
4

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

G. Faccanoni

1
1
2


1 x1
1
3 x 2 = 1
4 x3
1

et

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

et

1
2
4
0

1
3
6
0


1 x1
1
x 2 1
4
=
8 x 3 1
0

x4

179

5. Systmes linaires

Jeudi 5 juin 2014

C ORRECTION DE L EXERCICE 5.11.


Premier systme :

1
2
3

1
1
2

1
3
4

L 2 L 2 21 L 1
1
1
L 3 L 3 3
1 L1
1 0
1
0

1
1
5

1
1
5
L2
L 3 L 3 1
1 0
4
0

1
1
7

1
1
0

1
1
12

1
1
1

donc

1
L= 2
3

0
0
1

0
1
5

Il ne reste rsoudre que le systme triangulaire

x 1 + x 2 + x 3 = 1
x 2 + x 3 = 1

12x 3 = 1

1
U = 0
0

= x 3 =

1
,
12

1
1
12

1
1
0

x2 =

11
,
12

1
x1 = .
6

Deuxime systme :
2

1
2

3
2

2
5
1
2

3
7
1
0

4
1
5
3

L 2 L 2 13 L 1
1
L 3 L 3 1 L 1
L L 2 L 1
1
441

1
1

1
0
0
0

2
9
5
2

3
1
8
6

L 4 L 4 2
9 L 2 0

0
0

2
9
0
0

3
1
77
9
56
9

L 3 L 3 9 L 2

4
7
7
5

1
1

2
1

4
7
28
9
31
9

1
L L 56/9 L
1
4 4 77/9 2
13
9
79

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

donc
1
2

L=
3
2

0
1

0
0
1

5
9
2
9

0
0

0
1

56
77

Il ne reste rsoudre que le systme triangulaire

x 1 + 2x 2 + 3x 3 + 4x 4 = 1

9x + x 7x = 1
2

= x 4 =

28
13

77

9 x3 9 x4 = 9

13
3
11 x 4 = 11

Troisime systme :

1 1 1
1 2 3

1 4 6
1 0 0

1
4
8
0

1
0

U=
0
0

L L L
2
2
1
1
L 3 L 3 L 1

1
L
L
L
1
44

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
L 4 L 4 3 L 2 0 3
2

0 0
7
0 0 53

3
,
13

2
9
0
0

3
1
77
9
0

x3 =

23
,
91

4
7

28
9
13
11

x2 =

29
,
91

x1 =

48
.
91

1
0

0
0
1
3
10
2

1
5/3
L 4 L 4 7 L 2
0

0
0

1
0
0
0

1
3
0
0

1
2
7
0

1
3
10
8
21

1
0

0
0

donc

1
1
L=
1
1

0
1
1
1
3

0
0
1
5
21

Il ne reste rsoudre que le systme triangulaire

x 1 + x 2 + x 3 + x 4 = 1

3x + 2x + 3x = 0
2
3
4

7x
+
10x
=
0

3
4

8
x
=
0
4
21

180

0
0

0
1

1
0
U=
0
0

= x 4 = 0,

1
3
0
0

x 3 = 0,

1
2
7
0

1
3

10
8
21

x 2 = 0,

x 1 = 1.

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

Exercice 5.12
crire les mthodes itratives de G AUSS, 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 illustrera les rsultats thoriques de convergence/non-convergence en
calculant les 3 premires itrs en prenant comme point de dpart le vecteur (a, b) = (0, 0).

C ORRECTION DE L EXERCICE 5.12.

Gauss

Premier systme :

11
12

1
10

2
L 2 L 2 10
L1

10
0

11

49
5

49
5

10a + b = 11
49
5 b

49
5

a =1

b = 1.

Second systme :

Jacobi

10
2

2
10

10
1

12
11

L 2 L 2 10
2 L1

2
0

10
49

12
49

(
2a + 10b = 12

(
=

49b = 49

a =1
b = 1.

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

12
49

110 11
49
501
11 10
11 50
0
/
10
/
50
/500
(0)
(1)
(2)
(3)
10
10 =
10 =

x =
, x = 120
= 12 , x = 122
,
x
=
.
11
49
49
502
122 50
0
/
10
/
50
/500
10
10
10

10

Second systme :
(
2a + 10b = 12

10a + b = 11

1210b
2

a=

b = 11 10a

La mthode ne converge pas, en effet on a


(0)

Gauss-Seidel


0
=
,
0

(1)

120
2

6
=
,
=
11
11 0

(2)

121011
2

49
=
=
,
49
11 10 6

(3)

1210(49)
2

251
=
=
.
501
11 10 (49)

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

110 !
49

25001
501

11 2499
11 50
2500
11
/25000
/
500
/
10
0
10
(3)
(2)
(0)
(1)
10
10

11
.
, x = 122 25001 = 12499
x =
, x = 122
= 49 , x = 122 501 = 2499
10
/125000
/2500
/50
0
25000
500
10

10

10

Second systme :
(
2a + 10b = 12
10a + b = 11

1210b
2

a=

b = 11 10a

La mthode ne converge pas, en effet on a


x(0) =


0
,
0

G. Faccanoni

x(1) =

120
2

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

181

5. Systmes linaires

Jeudi 5 juin 2014

Exercice 5.13
Rsoudre les systmes linaires suivants :

x 5y 7z = 3
2x 13y 18z = 3

3x 27y 36z = 3

x 5y 7z = 6
2x 13y 18z = 0

3x 27y 36z = 3

et

x 5y 7z = 0
2x 13y 18z = 3

3x 27y 36z = 6.

et

C ORRECTION DE L EXERCICE 5.13. Le trois systmes scrivent sous forme matricielle

1
2
3

5
13
27


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

et

5
13
27


7
x
0
18 y = 3
36 z
6

On remarque que seul le terme source change. On calcul dabord la dcomposition LU de la matrice A :

1
2
3

5
13
27

7 L 2 L 2 2L 1 1
L 3 L 3 3L 1
18 0
36
0

5
3
12

7
1
L 3 L 3 4L 2
4 0
15
0

7
4
1

5
3
0

donc

1
L = 2
3

0
1
4

0
0
1

1
U = 0
0

5
3
0

7
4
1

Pour rsoudre chaque systme linaire on rsout les systmes triangulaires Ly = b et Ux = y.


1. Pour le premier systme on a

1
2
3

1
0

0
1
4

5
3
0


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.

y 1 = 6,

y 2 = 12,

y 3 = 27;

x 3 = 27,

x 2 = 32,

x 1 = 35.

2. Pour le seconde systme on a

1
2
3

1
0
0

0
1
4

5
3
0


0 y1
6
0 y 2 = 0
1 y3
3

7 x 1
6
4 x 2 = 12
1
x3
27

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
6
1 y3

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

182

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

2. Soit la matrice A suivante :

4
1
1

1
1 .
4

1
3
1

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 DE L EXERCICE 5.14.
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 :
bi
x ik+1 =

n
P
j =1
j 6=i

a i j x kj
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

1
3
1

L 2 L 2 1

4 L1
1
4
L 3 L 3 1
L1
4
1 0
4
0

1
11
/4
5/4

4
1 L L / L
2
3
3
/
5/4 0
15
/4
0
5

11

1
5/4 .
35
/11

1
11
/4
0

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

Exercice 5.15
Soit la matrice A Rnn , n 3, dont les lments vrifient
? 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 DE L EXERCICE 5.15. Factorisation LU de la matrice A :

1 1 . . . . . . . . . 1
1
1 1 . . . . . . . . . 1

..
..
..
..

0 1

.
.
.
.
0 1
0

. .

. .

.
.
2
1
.
.
.
L n L n 1 L 2 ..
L L n 1 L 1 .
..
..
..
..
..
..
.
1
1

.
.

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

0
0 . . . . . . 0

1 1
0 ... ... 0
1 1
0 2
2 ... 2
2
0
1 1
1 ... 1
1

1 1 . . . . . . . . .
1

..
..
0 1
.
.

n2
..
..
..

L n L n 2 1 L n1 ..
.
.
.
1
. .
[. . . ]

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

0 . . . . . . 0
1
1
0 0
0 . . . 0 2n1

1
1
..
.
...
0

...
..
.
1
..
.
...
4

...
..
..

...

.
0
...

..

.
1
4

1
..
.

..

..
.

1
4

On obtient les matrices


1

0
L=

..
.

0
1

G. Faccanoni

0
..
.
0
2

...
..
.
1
..
.
...
4

...
..
..

...

.
1

0
..
.

..

..
.

2n2

.
0
...

..

et

0
U=

..
.

0
0

...
..
.

0
..
.
0
0

1
..
.
...
0

...
..
..

...

.
0
...

1
1
0

1
..
.

..

. .

..
.

1
2n1

183

5. Systmes linaires

Jeudi 5 juin 2014

cest--dire
? `i i = 1 pour i = 1, . . . , n,
? `i j = 0 si i < n et i 6= j ,
? `n j = 2 j 1 si j < n ;

u i j = a i j pour i=1,. . .,n-1, j=1,. . .,n,


u n j = 0 si j < n,
? u nn = 2n1 .
?

Exercice 5.16
Considrons une matrice A Rnn (avec n 3) dont les lments vrifient
? 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 DE L EXERCICE 5.16. Factorisation LU de la matrice A :

..
.

.
..

.
.
.
1

1
..
.

...
..
.

1
1 0

..
L 2 L 2 +L 1
.
0 1

.
.. ..
..

.
L
L
+L
n
n
1
. 1

.
..
..
..
0
.
.

.
..

.
.
1 1
.
1 1
0 1

1 0

0 1

.. . .
.
L n L n +L n1 .
[. . . ]
.
..

.
.
.

...
..

1
..
.

..

0
..
.
..
.

.
.

..

...

.
...

...

...
..
.

...
..

1
..
.

..

0
..
.
..
.

.
.

..

.
...

...
...
..
.
1
..
.

1
1

...
..

0
..
.
..
.

..

.
...

1
0

..

...

...

L L +L
2 3 3 2 0
.

.. ..
..

.
L
L
+L
n
n
2
.

.
..
..
.

.
.
2
2
0

0
2

21

2
2
..
.

n2

2
2n1

...
..
.

0
..
.
..
.
0

1
1
..
.
1

...
..

0
..
.
..
.

..

..

.
...

1
1

..
.

4
4

On obtient les matrices

..
.
L=
.
..

.
.
.
1

0
1
..
.

...
..
.
1
..
.

...
..
..
..

...

...

...

.
.

.
...

..

1
1

0
..

..
.

..
.

0
1

et

..
.
U=
.
..

.
.
.
0

1
..
.

...
..
.
1
..
.

...
..

0
..
.
..
.

..

.
...

1
0

..

...

...

20

21

2
2
.
..
.

n2

2
2n1

i.e.
`i i = 1 pour i = 1, . . . , n, ,
`i j = 1 si i > j
? `i j = 0 sinon ;

u i i = 1 pour i = 1, . . . , n 1,
u i n = 2i 1 pour i = 1, . . . , n,
? u i j = 0 sinon.

Exercice 5.17
On considre la matrice tridiagonale inversible A Rnn

a1 c1
0

b 2 a 2 c 2

0 b3 a3
A=
.
..
..
..
.
.

.
..
.
.
.
0

184

...

...

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

...
..

..

b n1
0

a n1
bn

0
..
.
..
.

c n1
an

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

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(n1) = U. On
= 0 pour |i j | > 1.
montrera par rcurrence sur k que A(k) est tridiagonale pour tout k = 0, . . . , n 1, i.e. a i(k)
j

Initialisation : pour k = 0, A(0) = A 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
?
Si i k, que valent-ils les coefficients a i(k+1)
j
? Si i > k alors on va considrer sparment les cas suivants :
(k+1)
?
? si j k, que valent-ils les coefficients a
ij
?

et `i(k)
? Que peut-on dduire sur les coefficients
si j > k et j < i 1, que valent-ils les coefficients a i(k)
k
k
?
a i(k+1)
j

? Que peut-on dduire sur les coefficients


si j > k et j > i + 1, que valent-ils les coefficients a k(k)j et `i(k)
k
?
a i(k+1)
j

NB : Justifier 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
sous la forme

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

..
..
..
..

.
.
.
.
2 1
0 2 2

..
..

..
..
..
..
..
..
0 3 1

.
.
.
.
.
.
.
,
.
L=
U=
.

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

..
.
.
.
.
.
.
.
0

..
..
.

. n1 1 0
. n1 n1
.
.
0 ... ...
0
n 1
0 ... ... ...
0
n
Calculer (1 , 2 , . . . , n ), (2 , 3 , . . . , n ) et (1 , 2 , . . . , n1 ) en fonction de (a 1 , a 2 , . . . , a n ), (b 2 , b 3 , . . . , b n ) et
(c 1 , c 2 , . . . , c n1 ). 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 Rn .
C ORRECTION DE L EXERCICE 5.17.
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(n1) = U. On
montrera par rcurrence sur k que A(k) est tridiagonale, i.e. a i(k)
= 0 pour |i j | > 1.
j

Initialisation : pour k = 0, A(0) = A qui 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
?

Si i k alors a i(k+1)
= a i(k)
= 0 (les lignes L 1 , . . . , L k de la matrice A(k) ne sont pas modifies ltape k).
j
j

Soit i > k, alors les lignes L k+1 , . . . , L n de la matrice A(k) vont tre modifies selon la relation)
a i(k+1)
= a i(k)

j
j

a i(k)
k
(k)
a kk

a k(k)j .

Pour chaque ligne i > k, considrons sparment les colonnes j k et les colonnes j > k :
(k+1)
? si j k, a
= 0 (zros quon fait apparaitre avec la mthode de G AUSS pour une matrice quelconque),
ij
? soit j > k :
(k)
? si j < i 1, comme i , j > k alors a
= 0 et i > j +1 > k +1, cest--dire i k > 1 et donc a i(k)
= 0 et `(k)
= 0.
ij
k
ik
Donc a i(k+1)
= 0.
j
?

si j > i + 1, comme i , j > k alors a i(k)


= 0 et j > i + 1 > k + 1, cest--dire j k > 1 et donc a k(k)j = 0. Donc
j
a i(k+1)
= 0.
j

2. Les coefficients (1 , 2 , . . . , n ), (2 , 3 , . . . , n ) et (1 , 2 , . . . , n1 ) se calculent en imposant lgalit LU = A. Lalgorithme se dduit en parcourant les tapes de la mthode de G AUSS :

G. Faccanoni

185

5. Systmes linaires

Jeudi 5 juin 2014

a1

c1

b 2

0
A(0) =
.
..

.
.
.

a2

c2

b3
..
.

...

a3
..
.
..
.
...

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

...
..
..

.
.

0
..
.
..
.

1 = a 1

1 = c 1

2 = a 2 2 c 1

2 = c 2

0
..
.
..
.
0

b3
..
.

a3
..
.
..
.
...

L 2 L 2 2 L 1 (1)
A =

2 = a 2
0

c n1
an

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

...
..

..

0
..
.
..
.

c n1
an

b n1 a n1
b n1 a n1
0
bn
...
0
bn

1 = a 1
1 = c 1
0
...
...
0

..
..

.
2 = a 2 2 c 1
2 = c 2
.
0

..

..
..

L 4 L 4 4 L 3
.
.
L 3 L 3 3 L 2
0
0

=
a

c
.
3
3
3 2
[ ]
A(2) =

.
.
.
.
.
b3
b

..
..
..
..
..
4 = 4
3 =
0

3
2

..
..

.
b n1 a n1 c n1
0
...
...
0
bn
an

1 = a 1
1 = c 1
0
...
...
0

..
..

.
2 = a 2 2 c 1
2 = c 2
.
0

..

..
..

.
.
L n L n n L n1
0
0

=
a

c
.
3
3
3
2
(n1)

=
[ ] A

.
.
.
.
.
bn

.
.
.
.
.
n =
.
.
.
.
.
0
n

.
..

.
.

0 n1 = a n1 n1 c n2
n1 = c n1
.
0
...
...
0
0
n = a n n c n1
Donc i = c i pour i = 1, . . . , n, 1 = a 1 et on dfinie 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

pour i = n 1, . . . , 1,

i.e.

i.e.

y1 = f1,
b

y i = f i a i c y i 1 , pour i = 2, . . . , n;
i
i i 1

yn

x
=
,

n n
y c x
x i = a i i ci +1 , pour i = n 1, . . . , 2,
i
i i 1

x = y i ci x2 .
1

a1

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

(5.1)

(5.2)

1. Rappeler une condition suffisante de convergence pour les mthodes de J ACOBI et de G AUSS-S EIDEL. Rappeler
une autre condition suffisante de convergence pour la mthode de G AUSS -S EIDEL (mais non pour la mthode de
J ACOBI). Les systmes (5.1) et (5.2) vrifient-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 :
3.1. avec la mthode de J ACOBI pour le systme (5.1),

186

G. Faccanoni

Jeudi 5 juin 2014

5. Systmes linaires

3.2. avec la mthode de G AUSS -S EIDEL pour le systme (5.1),


3.3. avec la mthode de J ACOBI pour le systme (5.2),
3.4. avec la mthode de G AUSS -S EIDEL pour le systme (5.2).
4. On comparera le rsultat obtenu avec la solution exacte (quon calculera laide de la mthode dlimination de
G AUSS).
C ORRECTION DE L EXERCICE 5.18. crivons les deux systmes sous forme matricielle Ax = b :


4 3 3 x1
10
6
4 1 1 x1
3 4 3 x 2 = 10
1 4 1 x 2 = 6
et
3 3 4 x3
10
6
1 1 4 x3
{z
}
{z
}
|
|
A1

A2

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.
? Si la matrice A est symtrique et dfinie 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 dfinie 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

3x

3x
1

2
3

(k+1) 1

(k)
x
= 4 10 3x 3x (k)
1
3
2

x 3(k+1)
10 3x 1(k) 3x 2(k)

(k)
(k)
(k+1)
10 3x 2 3x 3

x 1

(k+1) 1
x
= 4 10 3x (k+1) 3x (k)
1
3
2

(k+1)
(k+1)
(k+1)
10 3x 1
3x 2
x3

J ACOBI

Gauss-S EIDEL

A2 x = b

(k)
(k)
(k+1)
6

x
x

2
3

(k+1) 1
(k)
x
= 4 6 x x (k)
1
3

6 x 1(k) x 2(k)
x 3(k+1)

(k)
(k)
(k+1)
6 x2 x3

x 1

(k+1) 1
x
= 4 6 x (k+1) x (k)
1
3
2

(k+1)
(k+1)
(k+1)
6 x1
x2
x3

3. On obtient les suites suivantes


3.1. J ACOBI pour le systme (5.1) :

(1)
(0)
5
10 3 0 3 0
0
x1
2

1
x = 0 = x = 10 3 0 3 0 = 5
2
2
2 4
5
10 3 0 3 0
x3
0
x3
2
(2)

(3)

5
5
35
x1
10 3 2 3 52
54
x1
10 3 5
4 3 4
1

1
8
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
35
x3
10 3 52 3 52
54
x3
10 3 5
4 3 4
8

x1

3.2. G AUSS -S EIDEL pour le systme (5.1) :


(0)
(1)

5
0
x1
10 3 0 3 0

1
2
x = 0 = x = 10 3 5 3 0 = 5
2
2 4
8
2
5
5
5
x3
0
x3
10 3 2 3 8
32

(2)
(3)
5
245
12485
x1
10 3 58 3 32
x1
128
8192
1

245
5 485


35765
=
x 2 = 4 10 3 128 3 32 = 512 = x 2 = 32768
485
725
70565
x3
10 3 245
x3
128 3 512
2048
131072

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

G. Faccanoni

187

5. Systmes linaires

Jeudi 5 juin 2014

3.3. J ACOBI pour le systme (5.2) :



(0)
(1)
3
61010
0
x1
2

1
x = 0 = x = 6 1 0 1 0 = 3
2
2
2 4
3
61010
x3
0
x3
2
(2)

(3)

3
9
x1
6 1 32 1 32
x1
6 1 34 1 34
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
9
x3
6 1 32 1 32
x3
6 1 43 1 34
4
8

x1

3.4. G AUSS -S EIDEL pour le systme (5.2) :



(0)
(1)
3
61010
0
x1

2
1
x = 0 = x = 6 1 3 1 0 9
2
8
2 4
2
27
6 1 32 1 89
x3
0
x3
32
(2)

(3)

9
27
2025
129
8139
6 1 8 1 32
6 1 531
x1
x1
128
512 1 2048
8192
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
2025
32913
131139
129
1 531
x3
6 1 128
x3
6 1 8139
512
2048
8192 1 32768
131072

x1

4. Calcul de la solution exacte laide de la mthode dlimination de G AUSS :


? Systme (5.1) :
3
4
3

3
3
4

L 2 L 2 34 L 1
10
4
L 3 L 3 34 L 1
10 0
10
0

1
4
1

1
1
4

L 2 L 2 14 L 1
4
6
L 3 L 3 14 L 1
6 0
6
0

4
3
3
?

3
3
/4
7
/4

10
4
3/4
L2
L 3 L 3 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

1
3
/4
15
/4

6
4
3/4
L2
L 3 L 3 15/4
9
/2 0
9
/2
0

1
15
/4
0

1
3
/4
18
/5


6
1
9
/2 = x = 1
18
1
/5

Systme (5.2) :

4
1
1

188

3
7
/4
3
/4

1
15
/4
3
/4

G. Faccanoni

A. Python : guide de survie pour les TP


Le but de ce chapitre est de fournir suffisamment 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 fichier.
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 modification 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 suffit de tlcharger la version 2.6 qui correspond au systme dexploitation (Windows ou Mac)
ladresse www.python.org. Pour ceux qui est des systmes Linux, il est trs probable que Python est dj install.
Si on na jamais programm, le plus simple pour excuter les instructions Python est dutiliser des environnements 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 suffit de saisir la suite une instruction puis dappuyer
sur la touche Entre. Pour commencer, comme le veux la tradition informatique, on va demander Python dafficher les
fameux mots Hello world :

189

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

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 affich 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 fichier avec uniquement les commandes quon
a tapes et sauver le tout comme un document. Ainsi plus tard on pourra ouvrir ce fichier et lancer Python sans avoir
retaper toutes les commandes. Tout dabord, commenons par un support propre en ouvrant une nouvelle fentre.

Voici ce que cela donne :

1. Il ne sagit pas, pour linstant, de soccuper des rgles exactes de programmation, mais seulement dexprimenter le fait dentrer des commandes
dans Python.

190

G. Faccanoni

Jeudi 5 juin 2014

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
fichier 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 fichier : la commande Save (Sauver)
se trouve dans le menu File (Fichier) ou utiliser le raccourcis Ctrl+S :

Ayant sauv le programme, pour le faire tourner et afficher les rsultats dans la fentre de lINTERPRTEUR il suffit 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 fin de la ligne : il faut remplacer " par .

Cette faute de frappe tant corrige, on fait tourner le programme et on regarde le rsultat dans lINTERPRTEUR :

G. Faccanoni

191

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

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 dfini 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 fin de la ligne
sont ignors par linterprteur.
Variables et affectation Dans la plupart des langages informatiques, le nom dune variable reprsente une valeur dun
type donn stocke dans un emplacement de mmoire fixe. La valeur peut tre modifie, 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 flottante 4.0. Il faut bien prendre garde au fait que linstruction daffectation (=) na pas la mme signification 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).

192

G. Faccanoni

Jeudi 5 juin 2014

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 modifis par une affectation, et sa
longueur est fixe. Si on essaye de modifier 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 modifier 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 fin (exclu), spars par deux-points :

ListName[i:j], ou encore une sous-liste en dclarant lindice de dbut (inclus), lindice de fin (exclu) et le pas, 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

fraise=

-6
1
2
3

12

18

11

-5

-4

-3

15

-2

-1

>>> fraise[2:4]
[18, 7]
>>> fraise[2:]

G. Faccanoni

193

A. Python : guide de survie pour les TP

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

Jeudi 5 juin 2014

[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 fin de la liste a


ajoute les lments de la liste L en fin 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
modifie la liste a en la triant
modifie 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]

194

G. Faccanoni

Jeudi 5 juin 2014

27
28
29
30
31
32
33
34
35
36
37
38
39
40

A. Python : guide de survie pour les TP

>>> a.sort()
>>> print a
[2, 17, 20, 21, 34, 37, 83, 100]
>>> len(a) # Determine length of list
8
>>> a.insert(2,7) # Insert 7 in position 2
>>> print a
[2, 17, 7, 20, 21, 34, 37, 83, 100]
>>> a[0] = 21 # Modify selected element
>>> print a
[21, 17, 7, 20, 21, 34, 37, 83, 100]
>>> a[2:4] = [-2,-5,-1978] # Modify selected elements
>>> print a
[21, 17, -2, -5, -1978, 21, 34, 37, 83, 100]

ATTENTION. Si a est une liste, la commande b=a ne cre pas un nouvel objet b mais simplement une rfrence (pointeur)
vers a. Ainsi, tout changement effectu sur b sera rpercut sur a aussi ! Pour crer une copie c de la liste a qui soit 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 modifie la valeur
de lobjet, la modification sera visible depuis les deux alias.

Matrices Les matrices peuvent tre reprsentes comme des listes imbriques : chaque ligne est un lment dune liste.
Par exemple, le code
1

>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

dfinit a comme la matrice 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

G. Faccanoni

195

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

ATTENTION. Dans Python les indices commences zro, ainsi a[0] indique la premire ligne, a[1] la deuxime etc.
a 00
a 10
A=
..
.

a 01
a 11
..
.

a 02
a 12
..
.

...
. . .

..
.

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 afficher lcran des objets on utilise la commande print object1, object2, ... qui convertis object1, object2 en chanes de caractres et les affiche 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,...) affiche 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 floating point
pour un nombre en notation scientifique

o w est la largeur du champ total, d le nombre de chiffres aprs la virgule. Voici quelques exemples :
1
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

196

G. Faccanoni

Jeudi 5 juin 2014

A. Python : guide de survie pour les TP

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

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

a
a
a
a
a
a

+= b
-= b
*= b
/= b
**= b
%= b

=
=
=
=
=
=

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 vrifie, False sinon. Ces oprateurs sont
On crit

<
>
<=
>=
==
!=
in

G. Faccanoni

a signifie
<
>

=
6=

197

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

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

and
or
not

a signifie
et
ou
non

Deux nombres de type diffrents (entier, virgule flottante, 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 7 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 dfinir 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 fin 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

>>> 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
2. Les paramtres figurant 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.

198

G. Faccanoni

Jeudi 5 juin 2014

7
8
9
10

A. Python : guide de survie pour les TP

^
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

11
12
13
14
15
16
17
18
19

>>> f(2)
>>> print f(2)
None
>>> def f(x):
a = 2*x**7-x**6+5*x**5-x**4+9*x**3+7*x**2+8*x-1
return a
print Hello

20
21
22

>>> f(2)
451

ATTENTION. Les variables dfinies 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 fin de lexcution de la fonction.
Dans lexemple suivant, la variable x est une variable locale la fonction f : cre au cours de lexcution de la fonction f,
elle est supprime une fois lexcution termine :
1
2
3

>>> def f(y):


x = 2
return 4.*y

4
5
6
7
8
9
10
11

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

>>> x = 6.
>>> def f(y):
x = 7
return x*y

5
6
7
8
9
10
11

>>> 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 0 (x) '

1
2
3
4
5

f (x + h) f (x h)
,
2h

f 00 (x) '

f (x + h) 2 f (x) + f (x h)
h2

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 7 cos(x) en x =

G. Faccanoni

il suffit dcrire

199

A. Python : guide de survie pour les TP

1
2
3

Jeudi 5 juin 2014

df, ddf = derivatives(math.cos,math.pi/2,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 modifie, cette modification 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

def squares(a):
for i in range(len(a)):
a[i] = a[i]**2

4
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 dfinies dans un module peut tre affiche 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 fichiers, etc. Ici on en prsente seulement quelques-uns, savoir ce dont on se servira dans les TP.

Le module math Dans Python seulement quelque fonction mathmatique est prdfinie :
abs(a)
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

si a = b,

si a > b.

Toutes les autres fonctions mathmatiques sont dfinies 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 dfinies dans le module math :

200

G. Faccanoni

Jeudi 5 juin 2014

1
2
3

A. Python : guide de survie pour les TP

>>> 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 dfinit les deux constantes et e.

Le module matplotlib pour le trac de donnes Le trac de courbes scientifiques 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. 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

ba
ba
a, a +
,a +2
,...,b
n
n
ou linstruction arange(a,b,h) qui construit la liste de n = E ( ba
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, modifier les marge et sauvegarder dans diffrents formats (jpg, png,
eps. . .). On peut mme tracer plusieurs courbes sur la mme figure. Par exemple, si on veut comparer les graphes de la
fonction prcdente en modifiant la grille de dpart, on peut crire
1

from matplotlib.pylab import *

2
3
4
5
6
7
8
9
10

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 affich la figure A.1a (la courbe bleu correspond la grille la plus grossire, la courbe rouge correspond la
grille la plus fine).
Pour tracer plusieurs courbes, on peut les mettre les unes la suite des autres en spcifiant la couleur et le type de trait,
changer les tiquettes des axes, donner un titre, ajouter une grille, une lgende. . .

G. Faccanoni

201

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

(a)

(b)

(c)

F IGURE A.1.: Exemples pylab

-.

solid line
dash-dot line

dashed line
dotted line

.
v
>
+
D

points
circle symbols
triangle down symbols
triangle right symbols
plus symbols
diamond symbols

,
^
<
s
x

pixels
triangle up symbols
triangle left symbols
square symbols
cross symbols

b
r
m
k

blue
red
magenta
black

g
c
y
w

green
cyan
yellow
white

TABLE A.1.: Quelques options de pylab

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

"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 affich la figure A.1b. Voir la documentation de pylab pour connatre les autres options de
ce trac.
On peut dplacer la lgende en spcifiant lune des valeurs suivantes : best, upper right, upper left, lower right,
lower left, center right, center left, lower center, upper center, center :
1
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 affich la figure A.1c.

202

G. Faccanoni

Jeudi 5 juin 2014

A. Python : guide de survie pour les TP

Reprsentations des erreurs : chelles logarithmique et semi-logarithmique


Quand on tudie les proprits de convergence dune mthode numrique, on trace souvent des graphes reprsentant
? lerreur E en fonction de h, le pas de discrtisation (par exemple pour une formule de quadrature ou le calcul approche de la solution dune EDO) ;
? lerreur E en fonction de k, le pas ditration (par exemple pour les mthodes de recherche des zros dune fonction).
Pour ces graphes on a recours des reprsentations en chelle logarithmique ou semi-logarithmique.
? Utiliser une chelle logarithmique signifie reprsenter ln(h) sur laxe des abscisses et ln(E ) sur laxe des ordonnes. Le
but de cette reprsentation est clair : si E = C h p alors ln(E ) = ln(C ) + p ln(h). En chelle logarithmique, p reprsente
donc la pente de la ligne droite ln(E ). Ainsi, quand on veut comparer deux mthodes, celle prsentant la pente la
plus forte est celle qui a lordre le plus lev (la pente est p = 1 pour les mthodes dordre un, p = 2 pour les mthodes
dordre deux, et ainsi de suite). Il est trs simple dobtenir avec Python des graphes en chelle logarithmique : il suffit de
taper loglog au lieu de plot. Par exemple, on a trac sur la figure gauche des droites reprsentant le comportement
de lerreur de deux mthodes diffrentes. La ligne rouge correspond une mthode dordre un, la ligne bleu une
mthode dordre deux (comparer les deux triangles). Sur la figure droite on a trac les mmes donnes qu gauche
mais avec la commande plot, cest--dire en chelle linaire pour les axes x et y. Il est vident que la reprsentation
linaire nest pas la mieux adapte ces donnes puisque la courbe E (h) = h 2 se confond dans ce cas avec laxe des
x quand x [106 ; 102 ], bien que lordonne correspondante varie entre x [1012 ; 104 ], cest--dire sur 8 ordres de
grandeur.

Plutt que lchelle log-log, nous utiliserons parfois une chelle semi-logarithmique, cest--dire logarithmique sur
laxe des y et linaire sur laxe des x. Cette reprsentation est par exemple prfrable quand on trace lerreur E dune
mthode itrative en fonction des itrations k ou plus gnralement quand les ordonnes stendent sur un intervalle
n
beaucoup plus grand que les abscisses. Si E (k) = C k E (0) avec C ]0; 1[ alors ln(E ) = ln(E (0)) + k n ln(C ), cest--dire
une droite si n = 1, une parabole si n = 2 etc. La commande Python pour utiliser lchelle semi-logarithmique est
semilogy.
Par exemple, on a trac sur la figure gauche des courbes reprsentant le comportement de lerreur de trois mthodes
diffrentes. La ligne rouge correspond une mthode dordre un, la parabole bleu une mthode dordre deux et la
cubique verte une mthode dordre trois. Sur la figure droite on a trac les mmes donnes qu gauche mais avec
la commande plot, cest--dire en chelle linaire pour les axes x et y. Il est vident que la reprsentation linaire
nest pas la mieux adapte ces donnes.

G. Faccanoni

203

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

A.4. Structure conditionnelle


Supposons vouloir dfinir la fonction valeur absolue :
(
|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
7
8
9
10
11
12
13

if condition_1:
instruction_1.1
instruction_1.2
...
elif condition_2:
instruction_2.1
instruction_2.2
...
...
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

def sign_of(a):
if a < 0.0:
sign = negative
elif a > 0.0:

204

G. Faccanoni

Jeudi 5 juin 2014

5
6
7
8

A. Python : guide de survie pour les TP

sign = positive
else:
sign = zero
return sign

9
10
11
12
13
14
15

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 dfinie comme suit :


1
2
3
4
5

def val_abs(x):
if x>0:
return x
else:
return -x

6
7
8

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 vrifie,
rptition inconditionnelle : le bloc dinstructions est rpter un nombre donn de fois.
Boucle while : rptition conditionnelle Le constructeur while a la forme gnrale suivante (attention 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 indfiniment et le programme ne se
termine pas.

Voici un exemple pour crer la liste 1, 12 , 13 , . . . :


1
2
3
4
5
6
7

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

G. Faccanoni

205

A. Python : guide de survie pour les TP

Jeudi 5 juin 2014

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
sequence, on excute les instructions instruction_i.
appartient
Voici un exemple pour crer la liste 1, 12 , 13 , . . . 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

List-comprehensions Les listes dfinies par comprhension permettent de gnrer des listes de manire trs concise
sans avoir utiliser des boucles. La syntaxe pour dfinir une liste par comprhension est trs proche de celle utilise en
mathmatiques pour dfinir un ensemble :
{

f (x)

x E }

[ f(x) for x in E ]
Voici quelques exemples :
1
2
3
4
5
6
7

liste = [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]

206

G. Faccanoni

Jeudi 5 juin 2014

A. Python : guide de survie pour les TP

Conversion des dgres C ELSIUS 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

207