Académique Documents
Professionnel Documents
Culture Documents
2012/2013
Recueil dexercices corrigs
et aide-mmoire
3
M3
An
aly
nu
se
m
r
iq
ue
VTSU
A
G. F
NO
CCA
NI
-
mise
r
-jou
ire
13
Dern
r 20
nvie
a
j
i 31
Jeud
Ce fascicule est un support au cours danalyse numrique. Il aborde : la recherche de racines dune fonction, linterpolation, lintgration numriques, lintgration dquations diffrentielles, le fitting de donnes et la rsolution de systmes
linaires. Les applications se feront avec le langage Python dont la documentation et les sources peuvent tre tlcharges
ladresse http://www.python.org.
Avertissement : ces notes sont rgulirement mises jour et corriges, ne vous tonnez pas si vous dcouvrez des erreurs.
Merci de me les communiquer. Toutes les remarques ou questions permettant den amliorer la rdaction peuvent tre
envoyes ladresse gloria.faccanoni@univ-tln.fr
Gloria FACCANONI
IMATH Btiment U-318
Universit du Sud Toulon-Var
Avenue de luniversit
83957 LA GARDE - FRANCE
T 0033 (0)4 94 14 23 81
B gloria.faccanoni@univ-tln.fr
i http://faccanoni.univ-tln.fr
1.2.1. Mthodes de dichotomie (ou bissection), de L AGRANGE (ou Regula falsi) et de la scante . . . . . . . .
1.2.2. Mthodes de point fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Interpolation
9
10
10
12
47
2.1.
2.2.
2.3.
2.4.
Position du problme . . . . . . . . . . . . . . .
Interpolation de L AGRANGE . . . . . . . . . . . .
Polynme dH ERMITE ou polynme osculateur
Splines : interpolation par morceaux . . . . . . .
2.4.1. Interpolation linaire composite . . . . .
2.5. Approximation de drives . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Quadrature
47
48
51
54
54
55
73
73
75
99
123
6. Systmes linaires
131
159
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
159
159
162
168
168
170
172
173
Notations
Ensembles usuels en mathmatiques
On dsigne gnralement les ensemble les plus usuels par une lettre double barre :
N lensemble des entiers naturels
N lensemble des entiers strictement positifs
Z lensemble des entiers relatifs (positifs, ngatifs ou nuls)
Z lensemble des entiers 6= 0
Q lensemble des nombres rationnels
p
q,
p Z,
q Z
Intervalles
Ingalit
Ensemble
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]
] a, a[
|x| a avec a 0
] , a] [a, +[
] , a[]a, +[
] , +[
Reprsentation graphique
a
b
a
a
a
b
b
a
Notations
curiosit
>
strictement suprieur
<
strictement infrieur
suprieur ou gal
infrieur ou gal
6=
diffrent
ensemble
ensemble vide
tel que
appartient
nappartient pas
il nexiste pas
il existe un et un seul
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
Pn
Qn
n!
n factoriel, quivaut 1 2 n
gf
g compos f
symbole dintgrale
i =0 a i
i =0 a i
0 df
, dx
symboles de drive
?
1
>>> 1 + 1
2
les instructions sans chevrons dans une boite grise sont des bouts de code crire dans un fichier
print Coucou!
G. Faccanoni
C ALCULS
A NALYSE MATHMATIQUE
M ODLE MATHMATIQUE
Bien pos
Bien conditionn
Proprits de la solution
Solutions analytiques
Mise en quations :
quations diffrentielles, intgrales, stochastiques. . .
P ROGRAMMATION
A NALYSE NUMRIQUE
Mthodes de discrtisation
Analyse des algorithmes (rapidit, prcision, souplesse)
Estimation des erreurs
P OST P ROCESSING
Visualisation
Analyse des rsultats
C ALCUL SCIENTIFIQUE
Lordinateur est aujourdhui un outil incontournable pour simuler et modliser des systmes complexes, mais il faut
encore savoir exprimer nos problmes (physiques, conomiques, biologiques. . .) en langage formalis des mathmatiques
pures sous la forme dquations mathmatiques (diffrentielles, intgrales. . .). Nous sommes habitus rsoudre les problmes de faon analytique, alors que lordinateur ne travaille que sur des suites de nombres. On verra quil existe souvent
plusieurs approches pour rsoudre un mme problme, ce qui conduit des algorithmes diffrents. Un des objectifs de ce
cours est de fournir des bases rigoureuses pour dvelopper quelques algorithmes utiles dans la rsolution de problmes en
mathmatique, conomie, physique. . .
Un algorithme, pour tre utile, doit satisfaire un certain nombre de conditions. Il doit tre :
rapide : le nombre doprations de calcul pour arriver au rsultat escompt doit tre aussi rduit que possible ;
prcis : lalgorithme doit savoir contenir les effets des erreurs qui sont inhrentes tout calcul numrique (ces erreurs
peuvent tre dues la modlisation, la reprsentation sur ordinateur ou encore la troncature) ;
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
x 1 = x 0 + 00 =
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
Lalgorithme du calcul de la racine carre devient donc
p
1. Dmarrer avec une premire approximation x 0 > 0 de A.
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.
Dans la plupart des domaines scientifiques, tout calcul passe par lexploitation de techniques de reprsentation des
fonctions et des algorithmes de localisation de zros, de recherche dlments propres de matrices, de calcul dintgrales,
de rsolution dquations diffrentielles, aux drives partielles et/ou intgrales. . . Une partie de ces diffrents problmes
est trait dans ce polycopi ; noter la prsence dexercices corrigs en fin de chaque chapitre permettant de vrifier ou de
consolider lassimilation des notions introduites.
G. Faccanoni
localiser grossirement le (ou les) zro(s) de f en procdant des valuation qui sont souvent de type graphique ; on
note x 0 cette solution grossire ;
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 multiniveaux, comme par exemples les schmas trois niveaux
dans lesquels on part de deux valeurs donnes x 0 et x 1 pour calculer x 2 , puis laide de x 1 et x 2 on calcule x 3 etc.
Formulation 1 Limage dun intervalle de R par une fonction continue est un intervalle de R.
Formulation 2 Soit f une fonction continue sur un intervalle I = [a; b] de R. Alors f atteint toutes les valeurs intermdiaires entre f (a) et f (b). Autrement dit :
si f (a) f (b) alors pour tout d [ f (a), f (b)] il existe c [a; b] tel que f (c) = d ;
? si f (a) f (b) alors pour tout d [ f (b), f (a)] il existe c [a; b] tel que f (c) = d .
Ce thorme donne alors le corollaire immdiat suivant.
Corollaire Thorme de B OLZANO ou des zros dune fonction continue
Soit une fonction continue f : [a, b] R, si f (a) f (b) < 0, alors il existe (au moins un) 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.
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 .
Dans la mthode de Lagrange, plutt que de diviser lintervalle [a k ; b k ] en deux intervalles de mme longueur, on
dcoupe [a k ; b k ] en [a k ; c k ] et [c k ; b k ] o c k est labscisse du point dintersection de la droite passant par (a k , f (a k ))
et (b k , f (b k )) et laxe des abscisses, i.e. est solution de lquation
f (b k ) f (a k )
(c a k ) + f (a k ) = 0
bk ak
qui est
ck = ak
bk ak
a k f (b k ) b k f (a k )
f (a k ) =
.
f (b k ) f (a k )
f (b k ) f (a k )
Dans les deux cas, pour litration suivante, on pose soit [a k+1 ; b k+1 ] = [a k ; c k ] soit [a k+1 ; b k+1 ] = [c k ; b k ] de sorte ce que
f (a k+1 ) f (b k+1 ) < 0. La suite (c k )kN converge vers xb puisque la longueur de ces intervalles tend vers 0 quand k tend vers
+. Les algorithmes scrivent alors comme suit :
D ICHOTOMIE :
Require: a, b > a, , f : [a, b] R
k 0
ak a
bk b
ak + bk
xk
2
while b k a k > or | f (x k )| > do
if f (a k ) f (x k ) < 0 then
a k+1 a k
b k+1 x k
else
a k+1 x k
b k+1 b k
end if
a k+1 + b k+1
x k+1
2
k k +1
end while
10
L AGRANGE :
Require: a, b > a, , f : [a, b] R
k 0
ak a
bk b
bk ak
xk ak
f (a k )
f (b k ) f (a k )
while b k a k > or | f (x k )| > do
if f (a k ) f (x k ) < 0 then
a k+1 a k
b k+1 x k
else
a k+1 x k
b k+1 b k
end if
b k+1 a k+1
x k+1 a k+1
f (a k+1 )
f (b k+1 ) f (a k+1 )
k k +1
end while
G. Faccanoni
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
2
2.5
f (2) = 0.1875
f (1) = 1
I 0 = [1; 5]
I 1 = [1; 3]
I 2 = [2; 3]
I 3 = [2; 2.5]
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 ]
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
on doit prendre le plus petit m qui vrifie
ba
.
m log2
Notons que cette ingalit est gnrale : elle ne dpend pas du choix de la fonction f .
n
X
(1 + T )k = v
k=1
1+T
(1 + T )n 1
=v
(1 + T )n 1 .
(1 + T ) 1
T
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 ) = +,
G. Faccanoni
11
En tudiant la fonction f on voit que, comme nv < M ds que n > 1, elle admet un unique zro dans lintervalle ]0, +[ (on peut
mme prouver que elle admet un unique zro dans lintervalle ]0, M [).
Supposons que v = 1000 et quaprs 5 ans M est gal 6000 . En tudiant la fonction f on voit quelle admet un unique zro
dans lintervalle ]0.01, 0.1[. Si on applique la mthode de la dichotomie avec = 1012 , aprs 36 itrations la mthode converge vers
0.06140241153618. On conclut ainsi que le taux dintrt T est approximativement gal 6.14%.
La mthode de dichotomie est simple mais elle ne garantit pas une rduction monotone de lerreur dune itration
lautre : tout ce dont on est assur, cest que la longueur de lintervalle de recherche est divise par deux chaque tape. Par
consquent, si le seul critre darrt est le contrle de la longueur de I k , on risque de rejeter de bonnes approximations de
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).
x 0 donn,
x 1 donn,
x k x k1
x k+1 = x k
f (x k ),
f (x k ) f (x k1 )
Cette mthode a ordre
p
1+ 5
2 .
Soit f : R R une fonction continue et soit xb [a, b] un zro de f . Pour calculer x k+1 on prend lintersection de laxe des
abscisses avec la droite passant par les points (x k , f (x k )) et (x k1 , f (x k1 )), i.e. on cherche x solution du systme linaire
(
y=
f (x k ) f (x k1 )
(x x k ) +
x k x k1
f (x k ),
y = 0,
ce qui donne
x = xk
x k x k1
f (x k ).
f (x k ) f (x k1 )
import math
x = 1
for i in range (1,100):
x = math.cos(x)
print x_, i, =, x
on peut vrifier quen partant de la valeur 1 et en appuyant plusieurs fois de suite sur la touche cosinus, on obtient cette
suite de valeurs :
x 0 = 1,
x 1 = cos(x 0 ) = 0.540302305868,
x 2 = cos(x 1 ) = 0.857553215846,
x 3 = cos(x 2 ) = 0.654289790498,
..
.
x 55 = 0.739085133171,
..
.
x 100 = 0.739085133215
qui tend vers la valeur 0.73908513 . . . . En effet, on a par construction x k+1 = cos(x k ) pour k = 0, 1, . . . (avec x 0 = 1). Si cette
suite converge, sa limite ` satisfait lquation cos(`) = `. Pour cette raison, ` est appel point fixe de la fonction cosinus.
12
G. Faccanoni
x1
x3
x5
x7
x6
x4
x6
x5
x4
x3
x2
x2
x1
x0
x1
x2
b x
x 3 x 4x 5
x0
x2
x 4x 6 x 5 x 3
b x
x1
Supposons que xb R soit un zro de f ou, de faon quivalente, un point fixe de . Approcher les zros de f se ramne
donc au problme de la dtermination des points fixes de la fonction , ce qui se fait en construisant la suite rcurrente
(
x k+1 = (x k ),
x 0 donn.
On a le rsultat suivant :
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 :
condition de stabilit : (x) [a, b] pour tout x [a, b]
condition de contraction stricte : il existe K < 1 tel que |(x) (y)| K |x y| pour tout x, y [a, b]
alors est continue, a un et un seul point fixe xb dans [a, b] et la suite x k+1 = (x k ) converge vers xb pour tout choix de x 0
dans [a, b].
Dmonstration.
G. Faccanoni
13
Continuit La condition de contraction stricte implique que est continue puisque, si on prend une suite (y k )k [a, b]
qui converge vers un lment x de [a, b], alors nous avons |(x)(y n )| K |x y n | et par suite limk (y k ) = (x).
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 |
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
|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.
Remarque
Si 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. De
plus, on a
x k+1 xb
lim
= 0 (b
x ).
k x k x
b
Ce thorme 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]. Il constitue donc un exemple de rsultat de convergence globale. Mais en pratique, il est souvent difficile
de dterminer a priori lintervalle [a; b] ; dans ce cas, le rsultat de convergence locale suivant peut tre utile.
Soit xb un point fixe dune fonction continue et diffrentiable dans un intervalle [a; b] contenant xb. Si |0 (b
x )| < 1, alors
il existe un intervalle [c; d ] [a; b] tel que la suite (x k )k converge vers xb pour tout x 0 [c; d ]. 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 quand k varie.
Remarque
Soit xb un point fixe dune fonction continue et diffrentiable dans un intervalle [a; b] contenant xb et soit x k+1 = (x k )
la suite de point fixe associe. Alors,
? si |0 (b
x )| > 1 la suite diverge ; plus prcisment, si 0 (b
x ) > 1 la suite diverge de faon monotone, tandis que pour
0
(b
x ) < 1 elle diverge en oscillant ;
? si |0 (b
x )| = 1, on ne peut en gnral tirer aucune conclusion : selon le problme considr, il peut y avoir convergence
ou divergence.
Par exemple,
3
b = 0 comme point fixe. On a 0 (b
? soit (x) = x x qui admet x
x ) = 1 et x k xb pour tout x 0 [1; 1] car
b pour tout k 1,
? si x 0 = 1 alors x k = x
? si x 0 ] 1, 1[ alors x k ] 1, 1[ pour tout k 1 et la suite est monotone ;
3
b = 0 comme point fixe. nouveau 0 (b
? considrons maintenant (x) = x + x qui admet aussi x
x ) = 1 mais dans ce cas
la suite diverge pour tout choix de x 0 6= 0.
Exemple
La fonction (x) = cos(x) vrifie toutes les hypothses du thorme dO STROWSKI. En effet, |0 (xb)| = | sin(xb)| ' 0.67 < 1, donc il existe
par continuit un intervalle [c, d ] qui contient xb tel que |0 (xb)| < 1 pour x [c, d ]. La fonction (x) = x 2 1 possde deux points fixes
p
p
p
xb1 = (1 + 5)/2 et xb2 = (1 5)/2 mais ne vrifie lhypothse pour aucun deux puisque |(xb1,2 )| = |(1 5)/2| > 1. Les itrations de
point fixe ne convergent dailleurs pas.
14
G. Faccanoni
En gnral, 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.
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 k+1 = (x k ),
x 0 donn.
ba
f (x k )
f (b) f (a)
f (x k )
(x k ) = x k 0
f (x 0 )
(x k ) = x k
f (x k )
(x k ) = x k 0
f (x k )
Mthode de Newton :
ordre : 1
ordre : 1
(
ordre :
sinon
Soit la mthode de Newton pour le calcul de ` zro de f . Cette mthode peut tre mise sous la forme dune itration de
point fixe u n+1 = (u n ) en posant
f (x)
(x) = x 0 .
f (x)
?
2
,
f 0 (x)
( f 0 (x))2
( f 0 (x))3
0 (`) = 0,
00 (`) =
f 00 (`)
.
f 0 (`)
2
mh(x) + (x `)h 0 (x)
(x) = 1
0 (`) = 1
1
.
m
Si la valeur de m est connue a priori, on peut retrouver la convergence quadratique en modifiant la mthode de Newton comme suit :
f (x)
(x) = x m 0 .
f (x)
G. Faccanoni
15
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 )
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
(
f (b) f (a)
y = ba (x x k ) + 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 .
y
f
y=
y=
16
x 1x 2 xb
f (b) f (a)
(x x 0 ) +
ba
f (b) f (a)
(x x 1 ) +
ba
f (x 0 )
f (x 1 )
b
x0
G. Faccanoni
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
f (x k )
f 0 (x 0 )
x = xk
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 )
xb
x2 x1
x0
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
x 7
1
a
x
Exemple Comparaison des mthodes de Newton pour diffrentes formulation de la fonction initiale
Dans R
+ on veut rsoudre lquation
x = e 1/x .
(1.1)
G. Faccanoni
x = e 1/x
y = e y ,
17
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
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).
Critres darrt
Supposons que (x n )n 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 ;
? si enfin | f 0 (b
x )| 1 alors |e n | pet le test est trop restrictif.
Dans lexemple prcdent f 0 (b
x ) = 2 2 1 : le test est trop restrictif (comparer la colonne | f (x n )| la colonne |b
x x n |).
Contrle de lincrment : les itrations sachvent ds que |x n+1 x n | < . Soit (x n )n la suite produite par la mthode de point fixe x n+1 = (x n ). Comme xb = (b
x ) et x n+1 = (x n ), on obtient par un dveloppement au premier
ordre
e n+1 = xb x n+1 = (b
x ) (x n ) = 0 (n )(b
x x n ) = 0 (n )e n ,
n I xb,xn
I xb,xn tant 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 Newton. Cette estimation devient dautant moins
bonne que 0 sapproche de 1.
18
G. Faccanoni
y
f
f (x k )
f
xk
xb
ek
xk
xb
ek
f (x k )
x
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.
, , , , , , , , , , , , , ,
Conclusion
, , , , , , , , , , , , ,
1. Les mthodes pour le calcul des zros dune fonction f sont gnralement itratives ;
2. la mthode de dichotomie permet le calcul dun zro dune fonction f en construisant une suite dintervalles dont la
longueur est divise par deux chaque itration. Cette mthode est convergente ds que f est continue sur lintervalle initial et a des signes opposs aux extrmits de cet intervalle ;
3. la mthode de N EWTON permet le calcul dun zro xb de f en faisant appel aux valeurs de f et de sa drive. Une
condition ncessaire de convergence est que la donne initiale appartienne un certain voisinage (assez petit) de xb ;
4. la convergence de la mthode de N EWTON nest quadratique que quand xb est un zro simple de f , autrement elle est
linaire ;
5. une valeur xb telle que (b
x ) = xb est appele point fixe de la fonction . Pour la calculer, on utilise des mthodes
itratives de la forme x k+1 = (x k ), appeles itrations de point fixe ou mthode du point fixe ;
6. la mthode du point fixe converge sous des conditions portant sur la fonction ditration et sa drive premire. La
convergence est typiquement linaire, mais devient quadratique quand 0 (b
x) = 0 ;
7. il est possible dutiliser des itrations de point fixe pour calculer les zros dune fonction f .
G. Faccanoni
19
TTTTTTTTTTTTT
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. Elles
renvoient
Mthodes numriques.
1
2
#!/usr/bin/python
#-*- coding: Utf-8 -*-
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
def newton(f,x_init,tol,maxITER):
k = 0
20
G. Faccanoni
57
58
59
60
61
62
63
64
65
66
67
68
69
x = x_init
fx = f(x)
h = tol
dfx = (f(x+h)-fx)/h # calcul approche de f(x)
while ( (abs(fx)>tol) and (k<maxITER) ):
x = x - fx/dfx
fx = f(x)
dfx = (f(x+h)-fx)/h
k += 1
if k==maxITER:
print "Pas de convergence"
else:
return x
70
71
72
73
74
75
76
77
78
79
80
def point_fix(f,x_init,tol,maxITER):
k = 0
x = x_init
while ( (abs(phi(x)-x)>tol) and (k<maxITER) ):
x = phi(x)
k += 1
if k==maxITER:
print "Pas de convergence"
else:
return x
Exemple dutilisation
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# CALCUL
a = -3.
b = 0.
print "A) Zero calcule
,b,tol,maxITER)
print "B) Zero calcule
tol,maxITER)
a = 0.
b = 3.
print "C) Zero calcule
,b,tol,maxITER)
print "D) Zero calcule
tol,maxITER)
par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a
par la methode de Lagrange dans lintervalle [", a, ",", b,"] : ", lagrange(f,a,b,
par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a
par la methode de Lagrange dans lintervalle [", a, ",", b,"] : ", lagrange(f,a,b,
113
114
G. Faccanoni
21
115
116
117
x_init = 0.
print "E) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol
,maxITER)
print "F) Zero calcule par la methode de point fix a partir du point x_0 =",x_init," : ", point_fix(phi,
x_init,tol,maxITER)
118
119
120
121
x_init = 1.
print "G) Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol
,maxITER)
print "H) Zero calcule par la methode de point fix a partir du point x_0 =",x_init," : ", point_fix(phi,
x_init,tol,maxITER)
122
123
124
125
126
127
128
129
22
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
G. Faccanoni
..............
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 . En partant de I 0 = [a, b], les mthodes de la dichotomie et de L AGRANGE produisent une suite de sousintervalles I k = [a k , b k ], k 0, avec I k I k1 , k 1, et tels que f (a k ) f (b k ) < 0. Dans notre cas on a
k 0
ak 2
bk 3
while |b k a k | > 0.01 do
x k g (a k , b k )
k k +1
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
avec
(a
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 )
xk
2.5000000
2.7500000
2.6250000
2.6875000
2.7187500
2.7031250
2.7109375
xk
2.596666667
2.690262642
2.702092263
2.703541518
2.703718378
2.703739951
2.703742582
Dichotomie
signe de f (a k )
L AGRANGE
bk
signe de f (a k )
3.00000
3.00000
3.00000
3.00000
3.00000
3.00000
3.00000
bk
3.00000
3.00000
2.75000
2.75000
2.75000
2.71875
2.71875
signe de f (x k )
signe de f (b k )
+
+
+
+
+
+
+
signe de f (x k )
signe de f (b k )
+
+
+
+
+
+
+
Exercice 1.2
Dterminer la suite des premiers 3 itrs des mthodes de dichotomie dans lintervalle [1, 3] et de Newton avec x 0 = 2
pour lapproximation du zro de la fonction f (x) = x 2 2. Combien de pas de dichotomie doit-on effectuer pour amliorer dun ordre de grandeur la prcision de lapproximation de la racine ?
G. Faccanoni
23
y
f (x)
y
f (x)
1
4
5
4
3
2
7
16
1
I2
I3
I4
17
12
3
2
I0
I1
pour k 0
? si f (a k ) f (x k ) < 0 on pose a k+1 = a k , b k+1 = x k sinon on pose a k+1 = x k , b k+1 = b k
a k+1 +b k+1
.
? et on pose x k+1 =
2
Voir la figure 1.3a.
? Mthode de Newton :
x2 2 1
f (x k )
1
= xk + .
x k+1 = x k 0
= xk k
f (x k )
2x k
2
xk
?
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
.
|x j xb|
10
Exercice 1.3
1. Donner la suite dfinissant la mthode de Newton 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.
24
G. Faccanoni
C ORRECTION .
1. Supposons f C 1 et f 0 (b
x ) 6= 0 (cest--dire xb est une racine simple de f ). La mthode de Newton revient calculer le
zro de f en remplaant localement f par sa tangente : en partant de lquation de la tangente la courbe (x, f (x))
au point x k
y(x) = f (x k ) + f 0 (x ) (x x k )
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. Algorithmes 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)
f 00 (b
x)
f 0 (b
x)
1
m
Exercice 1.4
On veut calculer le zro de la fonction
f (x) = x 2 2
dans lintervalle [0; 2].
1. On applique la mthode de L AGRANGE : crire lalgorithme et lutiliser pour remplir le tableau (on sarrtera au
plus petit k qui 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 .
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
G. Faccanoni
25
b k+1 x k
else
a k+1 x k
b k+1 b k
end if
k k +1
end while
k
ak
xk
0 0.00000 1.00000
1 1.00000 1.33333
2 1.33333 1.40000
3 1.40000 1.41176
4 1.41176 1.41379
5 1.41379 1.41414
6 1.41414 1.41420
bk
2.00000
2.00000
2.00000
2.00000
2.00000
2.00000
2.00000
signe de f (a k )
| f (x k )|
|-1.00000|>0.0001
|-0.22222|>0.0001
|-0.04000|>0.0001
|-0.00692|>0.0001
|-0.00119|>0.0001
|-0.00020|>0.0001
|-0.00004|<0.0001
signe de f (b k )
+
+
+
+
+
+
+
2. La mthode de Newton 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)
f 0 (x)
p
|x k 2|
0.41421
0.08088
0.01421
0.00245
0.00042
0.00007
0.00001
p
|x k 2|
0.41421
0.08579
0.00246
0.00001
| f (x k )|
|-1.00000|>0.0001
|0.25000|>0.0001
|0.00695|>0.0001
|0.00002|<0.0001
Exercice 1.5
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
Dans le tableau suivant sont reportes les suites des itres obtenues par ces quatre mthodes.
x0
x1
x2
x3
x4
x5
x6
Mthode A
Mthode B
Mthode C
Mthode D
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
26
G. Faccanoni
si |0i (`)| = 1, on ne peut en gnral tirer aucune conclusion : selon le problme considr, il peut y avoir convergence
ou divergence.
(j)
(p+1)
? Enfin, si i (`) = 0 pour 1 j p et i
(`) 6= 0, alors la mthode de point fixe associe la fonction ditration i
est dordre p + 1.
Calculons donc 0i (`) pour i = 1, 2, 3, 4 :
?
3x 3 (8x)+(8x 3 )
(8x)2
et 02 (1) = 14
49 : la suite converge de faon oscillante (colonne D) ;
1
1
3 2
3. 03 (x) = 10
x + x + et 03 (1) =
5
5
4. 04 (x) =
4
10
Exercice 1.6
Entre deux murs (verticaux) parallles, on place deux chelles en les croisant. La premire fait 3 m de long, la seconde
2 m. On constate quelles se croisent une hauteur de 1 m. Quelle est la distance entre les deux murs ?
C ORRECTION . Avec un peu de trigonomtrie, on obtient une mise en quation de cette distance d sous la forme : d =
1
1
2 sin() = 3 sin() et 2 cos()
+ 3 cos()
= 1. Il reste rsoudre p 1 2 + p 1 2 = 1.
4d
9d
Exercice 1.7
Soit la fonction f (x) = cosh(x) + cos(x) . Pour = 1, 2, 3 trouver (graphiquement) un intervalle qui contient le zro
de f . Calculer ce dernier par la mthode de dichotomie avec une tolrance de 1010 . Utiliser ensuite la mthode de
Newton. Pourquoi cette mthode nest-elle pas prcise quand = 2 ?
C ORRECTION .
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 consquent
? 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 .
G. Faccanoni
27
def f(x):
return math.cosh(x)+math.cos(x)-gamma
132
133
maxITER = 100
134
135
136
137
138
139
140
141
142
143
144
145
146
gamma = 3
tol = 1.0e-15
a = -3.
b = -1.
x_init = -1.
print "Zero calcule
tol,maxITER)
print "Zero calcule
maxITER)
a = 1.
b = 3.
x_init = 1.
print "Zero calcule
tol,maxITER)
print "Zero calcule
maxITER)
par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,
par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,
par la methode de dichotomie dans lintervalle [", a, ",", b,"] : ", dichotomie(f,a,b,
par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,
147
148
149
150
151
152
153
gamma = 2
tol = 1.0e-10
x_init = -1.
print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,
maxITER)
x_init = 1.
print "Zero calcule par la methode de Newton a partir du point x_0 =",x_init," : ", newton(f,x_init,tol,
maxITER)
N
p +a
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 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 dans prennent les valeurs suivantes : a = 0.401 Pa m3 et
b = 42.7 106 m3 . Trouver le volume occup par 1000 molcules de CO 2 la temprature T = 300 K et la pression p = 3.5 107 Pa par la mthode de dichotomie, avec une tolrance de 1012 (la constante de Boltzmann vaut
k = 1.380 650 3 1023 J K1 ).
C ORRECTION . On doit calculer les zros de la fonction f (V ) = pV + aN 2 /V abN 3 /V 2 pN b kN T , o N est le nombre
de molcules. On a
? limV 0+ f (V ) = et limV + f (V ) = +
? f 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
28
G. Faccanoni
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)
Exercice 1.9
Soit A est un nombre positif donn et considrons lalgorithme suivant : tant donn une valeur x 0 , on calcule
x k+1 = x k +
A x k2
2
k = 0, 1, 2, . . .
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 .
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
G. Faccanoni
x k2 A
f (x k )
=
x
,
k
f 0 (x 0 )
2x 0
k = 0, 1, 2, . . . .
29
,
k
f 0 (x 0 )
2
x k+1 = x k
k = 0, 1, 2, . . . .
Ainsi on conclut que la mthode donne concide avec la mthode de la corde 2 pour rsoudre x 2 A = 0 lorsque
x 0 = 1 comme point de dpart.
5. Si on choisit la mthode de Newton pour rsoudre f (x) = 0 avec f (x) = x 2 A, on a
x 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.10
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)
2
avec g : R R la fonction dfinie par
g (x) = (1 )x 3 + 1 3 x + 2( 1) + 3x
R.
2,
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-elle 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 .
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
Exercice 1.11
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, ]
(1.3)
30
G. Faccanoni
C ORRECTION .
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 ]
`k
0
[0, ]
1
0, 2
4, 2
3
,
4 8
3
8
5
16
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 `|
prs, il faut prendre le plus petit k N qui vrifie k log4 (10 ) 5.9, i.e.
1
|x k+1 x k |
.
1 C
1 C
Pour que lerreur soit infrieur 103 il faut alors choisir (1 C )103 .
Exercice 1.12
On considre le problme du calcul de ` [0, ] tel que ` = 1 + 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)
C ORRECTION .
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
31
k
[a k , b k ]
`k
0
[0, ]
1
0, 2
4, 2
3
3
8 ,2
3
8
7
16
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
1
2k
|x 0 `|
prs, il faut prendre le plus petit k N qui vrifie k log2 (10 ) 11.7, i.e.
|x k+1 x k |
.
1 C
1 C
Pour que lerreur soit infrieur 103 il faut alors choisir 2 103 .
Exercice 1.13
Le but de cet exercice est de calculer la racine cubique dun nombre positif a. Soit g la fonction dfinie sur R+ par
2
1 a
g (x) = x +
3
3 x2
(a > 0 fix).
x 0 > 0.
laide des graphe de g et de lidentit sur R+ , dessiner la suite (x n )nN sur laxe des abscisses. Observer graphiquement la convergence.
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
7. Expliciter la mthode de Newton pour la recherche du zro de la fonction f dfinie par f (x) = x 3 a. Que
remarque-t-on ?
C ORRECTION .
1. tude de la fonction g : R+ R dfinie par g (x) = 32 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
x+ x 3 x+
g 0 (x) = 23 1 xa3 ;
x0+
lim
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,
? g 00 (x) = 2a
> 0 : g est convexe sur R+ .
x4
32
G. Faccanoni
p
3
y
i (x)
i (x)
g (x)
y = 32 x
g (x)
p
3
p
3
x0
p
3
x4 x3
x2
x1
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.
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 xb [ 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
G. Faccanoni
33
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 Newton (quon sait tre dordre de convergence
gale 2 lorsque la racine est simple).
Exercice 1.14
On veut rsoudre lquation e x = x avec 0 < < 1.
1. 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 Newton pour rsoudre lquation e x = x avec 0 < < 1. Parmi la mthode de Newton et la
mthode de point fixe (1.5), laquelle faut-il prfrer vis--vis de la vitesse de convergence ?
C ORRECTION .
1. Deux mthodes (quivalentes) possibles :
Mthode 1 : La fonction g : x 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.14. On en dduit que
? la suite (u n )n converge pour tout u 0 R ;
? g (R) =]0; +[ et g (]0; +[) =]0; 1[ ainsi u 1 ]0; +[ et u n ]0; 1[ pour tout n > 1 ;
? la convergence nest pas monotone : la sous-suite des termes dindice pair est monotone croissante tandis que
la sous-suite des termes dindice impair est monotone dcroissante (ce qui veut dire dune part quon ne pourra
pas utiliser les thormes du type monotone+borne=convergente pour prouver la convergence, dautre part
on voit aussi que ni lintervalle [` ; +[ ni lintervalle [0; ` ] sont stables) ;
? |g 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 Newton (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 Newton, qui est encore une
mthode de point fixe, est dordre 2.
34
G. Faccanoni
i (x)
i (x)
`
0
` 1
g (x)
x
x0
x2
x3
x1
g (x)
x
Exercice 1.15
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 Newton pour la recherche des zros de la fonction f .
5. Entre la mthode de Newton et la mthode de point fixe (1.7), quelle est la plus efficace ? Justifier la rponse.
C ORRECTION .
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
x exp(x 2 )
| (x)| =
= x(x) < |x| < 1
2
0
G. Faccanoni
35
y
f (x)
f (x)
1
p
ln 4
0
x
1
xb
4(1ln 4)
(b) Zoom.
xb
xb
xb
xb
0
xb
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 Newton converge lordre 2 tandis que la mthode de point fixe
(1.7) converge seulement lordre 1 : la mthode de Newton est donc plus efficace.
Exercice 1.16
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 =
36
10x n
x n2 + 5
n N.
G. Faccanoni
y
p
5
i (x)
5
3
g (x)
i (x)
g (x)
p
5
x0
x1
x2
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
37
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.17
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+
sur R.
1
.
f 0 (`)
n)
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 .
1. Puisque f est de classe C 2 (R, R) et f 0 (x) < 0 sur R alors f est monotone dcroissante. De plus, f 0 (x) < 1 sur R 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 ! En effet, la condition f 0 (x) < 1 garantie que la fonction dcroit plus vite quune droite comme on
peut facilement vrifier :
f (x)
f 0 (x)
lim
= lim
1.
x x
x 1
2. Puisque lim f (x) = + > 0 et lim f (x) = < 0, pour le thorme des valeurs intermdiaires il existe au moins
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.
sur R
sur R.
Autrement dit
|g 0 (x)| < 1
sur R.
38
G. Faccanoni
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 (`)
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)
x n+1 = g (x n ) = x n + n f (x n ),
on obtient la mthode de Newton (qui est dordre 2).
De plus, comme 2 < f 0 (x) < 1 on rentre dans le cas 0 < < 1 donc la suite {x n }nN converge quel que soit x 0 R.
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 .
1. Puisque f est de classe C 2 (R, R) et f 0 (x) > 0 sur R alors f est monotone croissante. De plus, f 0 (x) > 1 sur R 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 croissante mais avoir une
limite finie ! En effet, la condition f 0 (x) > 1 garantie que la fonction croit plus vite quune droite comme on peut
facilement vrifier :
f (x) [H ]
f 0 (x)
= lim
1.
lim
x x
x 1
Puisque lim f (x) = < 0 et lim f (x) = + > 0, pour le thorme des valeurs intermdiaires il existe au moins
x
x+
un ` R tel que f (`) = 0. Puisque f 0 (x) > 0 pour tout x R, ce ` est unique.
G. Faccanoni
39
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.
1
f 0 (x n )
1
,
f 0 (`)
1
.
f 0 (`)
1
f 0 (`)
1
f 0 (`)
Exercice 1.19
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.
laide des graphe de g et de lidentit sur R+ , 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 Newton 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.
C ORRECTION .
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)
2
=
lim g (x) 23 x
3 et 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+
lim
40
G. Faccanoni
y
y
i (x)
i (x)
g (x)
y = 32 x 49
g (x)
x0
x4 x3
x2
x1
F IGURE 1.9.
? g est croissante sur [m, +[, dcroissante sur [0, m] o m 1,36 ;
? x = m est un minimum absolu et g (m) = m.
x
g 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.
3x 2 +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 .
G. Faccanoni
f (x)
. Ici donc elle scrit
f 0 (x)
x k3 + 4x k2 10
f (x k )
=
x
= g (x k )
k
f 0 (x k )
3x k2 + 8x k
41
Exercice 1.20
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)
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 .
?
?
?
?
x(9x 4 +5)
3(5x 4 +1)
pour x 0.
2
8 6x 4 +1)
4 1
4 1
5 3x 4 1
0
0
g 0 (x) = 5(9x
=
donc
g
(x)
0
pour
tout
x
]0;
1[
et
g
(x)
=
0
ssi
x
=
.
De
plus,
g
3 5x 4 +1
3
3 =
3(5x 4 +1)2
q
4 1
3.
q
q
320x 3 (3x 4 1)
3x 4 1 32x 3
20 0
32x 3
Enfin, g 00 (x) = 10
donc g 00 (x) = 0 ssi x = 0 ou x = 4 13 , g est
4 +1)3
3 5x 4 +1 (5x 4 +1)2 =
3 g (x) (5x 4 +1)2 =
(5x
q
i q h
concave pour x 0; 4 13 , convexe pour x > 4 13 .
Pour le graphe de g compar au graphe de i (x) = x pour x [0; 1] voir la figure 1.10a.
On vrifie analytiquement quil existe une et une seule intersection entre la courbe dquation y = g (x) et
la droite dquation y = x :
g (x) = x
x(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)
42
r
4
1
3
G. Faccanoni
y
i (x)
q
4
g (x)
y = 35 x
1
3
q
4
q
4
1
3
1
3
g (x)
i (x)
x0 x1
x2
x3
x4
q
4
1
3
F IGURE 1.10.
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
,
on
conclut
quelle
converge
vers
3
3 . De mme, la suite rcurrente
(
x0
iq
4
q
4
1
3.
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
0
|g (x)| < 1 g (x) < 1 5(3x 1) < 3(5x + 1) 15x + 30x 1 > 0 x > 1 +
q
8
x 4 +1
x ) = xb, g 0 (b
x ) = 0, g 00 (b
x ) = 0 et g 000 (b
x ) = 320b
x 2 25bx(5bx22b
2.4. Si on pose xb = 4 13 alors g (b
=
4 +1)4
suite converge lordre 3.
p
15 3
2
16
]0; 1[.
15
: on conclut que la
Exercice 1.21
Comparer les mthodes de la dichotomie, de Lagrange et de Newton 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 Newton on
prendra x 0 = 0.75.
G. Faccanoni
43
C ORRECTION . On modifie les fonctions donnes la page 20 pour que les mthodes sarrtent lorsque le nombre ditrations est gal maxITER :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
49
50
51
def lagrange(f,a,b,tol,maxITER):
fa = f(a)
if abs(fa)<=tol:
return a
fb = f(b)
if abs(fb)<=tol:
return b
if fa*fb > 0.0:
print "La racine nest pas encadree"
sys.exit(0)
k = 0
fc = 2.*tol
while ( (abs(b-a)>tol) and (abs(fc)>tol) and (k<maxITER) ):
k += 1
c = a-fa*(b-a)/(fb-fa)
fc = f(c)
if fc == 0.0:
return c
if fc*fb < 0.0:
a = c
fa = fc
else:
b = c
fb = fc
return a-fa*(b-a)/(fb-fa)
52
53
54
55
56
57
58
59
60
61
62
def newton(f,x_init,tol,maxITER):
k = 0
x = x_init
fx = f(x)
h = tol
dfx = df(x)
while ( (abs(fx)>tol) and (k<maxITER) ):
x = x - fx/dfx
fx = f(x)
dfx = df(x)
44
G. Faccanoni
63
64
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])
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
G. Faccanoni
45
On remarque tout dabord que la dcroissance de lerreur avec la mthode de la dichotomie nest pas monotone. De plus,
on voit que la mthode de N EWTON est dordre 2 tandis que la mthode de L AGRANGE est dordre 1.
46
G. Faccanoni
2. Interpolation
n
tant donn n + 1 points (x i , y i ) i =0 , trouver un polynme p = p(x) tel que p(x i ) = y i
tant donn n + 1 couples (x i , y i ), le problme consiste trouver une fonction = (x) telle que (x i ) = y i ; on dit alors
que interpole {y i } aux nuds {x i }. Les quantits y i peuvent, par exemple, reprsenter les valeurs aux nuds x i dune
fonction f connue analytiquement ou des donnes exprimentales. Dans le premier cas, lapproximation a pour but de
remplacer f par une fonction plus simple en vue dun calcul numrique dintgrale ou de drive. Dans lautre cas, le
but est davoir une reprsentation synthtique de donnes exprimentales dont le nombre peut tre trs lev. On parle
dinterpolation polynomiale quand est un polynme, dapproximation trigonomtrique quand est un polynme trigonomtrique et dinterpolation polynomiale par morceaux (ou dinterpolation par fonctions splines) si est polynomiale
par morceaux.
pour 0 i m.
(2.1)
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
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)
..
..
.
. = . .
.
.
. .. ..
1
xm
...
m
xm
am
ym
Ainsi, le problme consistant chercher le polynme P m satisfaisant (2.1) peut se rduire rsoudre le systme linaire (2.2).
Cependant, rsoudre une systme linaire de (m + 1) quations (m + 1) inconnues nest pas une tache triviale. Cette
mthode pour trouver le polynme P m nest donc pas une bonne mthode en pratique. Dans la suite on va tudier une
mthode plus astucieuse pour construire le polynme P m .
1 x 0 ... x 0m
x 1 ... x 1m
1. La matrice .
.
.
.
.
.
m
1 x m ... x m
47
2. Interpolation
1 si i = j
0 sinon
pour 0 i , j m,
ce qui donne
L i (x) =
n x x
Y
j
j =0
j 6=i
xi x j
(x x 0 )(x x 1 ) (x x i 1 )(x x i +1 ) (x x m )
.
(x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i +1 ) (x i x m )
Clairement, le numrateur de L i (x) est un produit de m termes (x x j ) avec i 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.
m
X
i =0
y i L i (x) Rm [x]
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).
Exemple
Pour m = 2 le polynme de Lagrange scrit
P (x) = y 0
(x x 1 )(x x 2 )
(x x 0 )(x x 2 )
(x x 0 )(x x 1 )
+ y1
+ y2
(x 0 x 1 )(x 0 x 2 )
(x 1 x 0 )(x 1 x 2 )
(x 2 x 0 )(x 2 x 1 )
Exemple
On cherche le polynme dinterpolation de L AGRANGE qui en 1 vaut 8, en 0 vaut 3 et en 1 vaut 6. On a
(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 en rsolvant le systme
linaire (2.2).
48
G. Faccanoni
2. Interpolation
Soit f : R R une fonction continue donne et soit x 0 , x 1 , x 2 , . . . , x m , (m+1) points distincts donns. Interpoler la fonction
f aux points x i , 0 i m signifie chercher un polynme P m de degr m tel que
P m (x i ) = f (x i )
pour 0 i m.
(2.3)
m
X
f (x i )L i (x) Rm [x]
m x x
Y
j
o L i (x) =
j =0
j 6=i
i =0
xi x j
Exemple
1 x(x 1) (x + 1)(x 1)
(x + 1)x
e 2
e
1
1
=
x +
x + 1.
+
+e
=
1
e
2
1
2
2e
2
2 2e
P (x) = f (x 0 )
1
e
Proposition Erreur
Si y i = f (x i ) pour i = 0, 1, . . . , n, f : I R tant une fonction donne de classe C n+1 (I ) o I est le plus petit intervalle
contenant les nuds { x i }ni=0 , lerreur dinterpolation au point x I est donn par
E n (x) f (x) P n (x) =
o I et n+1 (x)
n
Q
i =0
f (n+1) ()
n+1 (x)
(n + 1)!
(x x j ).
videmment, E n (x i ) = 0 pour i = 0, 1, . . . , n. De plus, dans le cas dune distribution uniforme de nuds, i.e. quand x i =
x i 1 + h avec i = 1, 1, . . . , n et h > 0 et x 0 donns,
max|E n (x)|
xI
Attention
priori on pourrait penser que cette erreur tend vers 0 quand n + puisque
lim
n+
h n+1
= 0.
4(n + 1)
En ralit il existe des fonctions f pour lesquelles maxxI |E n (x)| +. Ce rsultat frappant indique quen augn+
mentant le degr n du polynme dinterpolation, on nobtient pas ncessairement une meilleure reconstruction de f .
G. Faccanoni
49
2. Interpolation
Exemple RUNGE
Ce phnomne est bien illustr par la fonction de RUNGE : soit la fonction f : [5, 5] R dfinie par f (x) =
1
. La fonction f
1+x 2
est infiniment drivable sur [5, 5] et | f (n) (5)| devient trs rapidement grand lorsque n tend vers linfini. Si on considre une distribution 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
par les instructions suivantes :
1
2
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
3
4
5
6
7
8
9
10
11
12
13
def f(x):
return 1./(1.+x**2)
14
15
"Noeuds quirpartis"
x1
x2
x3
y1
y2
y3
1
2
3
4
5
6
=
=
=
=
=
=
linspace(-5,5,3)
linspace(-5,5,5)
linspace(-5,5,10)
f(x1)
f(x2)
f(x3)
8
9
10
11
12
13
14
15
16
17
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()
18
19
20
21
1
2
3
x1 = Tchebychev(-5,5,3)
x2 = Tchebychev(-5,5,5)
4
5
50
G. Faccanoni
2. Interpolation
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
2
(a)
(b)
6
7
8
9
x3
y1
y2
y3
=
=
=
=
Tchebychev(-5,5,10)
[f(x) for x in x1]
[f(x) for x in x2]
[f(x) for x in x3]
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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()
i = 0, . . . n.
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
51
2. Interpolation
polynme 2n+1 P2n+1 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
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
Q(x) =
n
X
i =0
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
Exemple
Pour n = 2 le polynme de Hermite 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
+ y 1 1 2(x x 1 )
+
+ y 10 (x x 1 )
x1 x0 x1 x2
(x 1 x 0 )(x 1 x 2 )
(x 1 x 0 )(x 1 x 2 )
1
1
(x x 0 )(x x 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 )
1
1
(x x 1 )(x x 2 ) 2
+
+ y 00 (x x 0 )
Q(x) = y 0 1 2(x x 0 )
x0 x1 x0 x2
(x 0 x 1 )(x 0 x 2 )
1
1
(x x 0 )(x x 2 ) 2
+ y 1 1 2(x x 1 )
+
+ y 10 (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 )
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
2n+1
= y0
a 0 + a 1 x 0 + . . . a 2n+1 x 0
2n+1
a
+
a
x
+
.
.
.
a
x
=
y1
0
1 1
2n+1 1
...
a + a x + . . . a
x 2n+1 = y
n
1 n
2n+1 n
a 1 + a 2 x 0 + . . . 2n + 1a 2n+1 x 02n+11 = y 00
a 1 + a 2 x 0 + . . . 2n + 1a 2n+1 x 12n+11 = y 10
...
a n + a 1 x n + . . . 2n + 1a 2n+1 x n2n+11 = y n0
52
1
1
.
..
.
..
0
|
i.e.
x0
x1
xn
x0
x1
xn
...
...
..
.
...
...
...
..
.
...
x 02n+1
2n+1
a0
x1
a
1
..
.
.
.
.
2n+1
xn
2n+11 .. =
.
2n + 1x 0
2n + 1x 12n+11
.
..
..
.
a 2n+1
2n + 1x n2n+11 | {z }
{z
} (2n+2)1
(2n+2)(2n+2)
y0
y1
.
..
yn
0
y0
0
y1
.
..
y n0
| {z }
(2n+2)1
G. Faccanoni
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
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
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
53
2. Interpolation
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
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
(
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 .
54
y i +1 y i
(x x i )
x i +1 x i
G. Faccanoni
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
max | f (x) `(x)|
x[a;b]
(b a)2
max | f 00 (x)|.
x[a;b]
8
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.
f 0 (x i ) = lim
h0
f 0 (x i ) +
h f (x i )
(2.4)
f (x i + h)
f (x i )
(2.5)
f (x)
(2.6)
f (x i h)
h
xi h
h
xi
xi + h
G. Faccanoni
55
2. Interpolation
Exemple
On compare pour diffrentes valeurs de h les valeurs donnes par ces trois formules pour la drive de la fonction sinus en 0 :
1
2
def DFgauche(f,x,h):
return (f(x+h)-f(x))/h
3
4
5
def DFdroite(f,x,h):
return (f(x)-f(x-h))/h
6
7
8
def DFcentree(f,x,h):
return (f(x+0.5*h)-f(x-0.5*h))/h
10
11
# TEST
def f(x):
return sin(x)
12
13
14
15
x = 0
for i in range(1,13):
h = 10**(-i)
dfg = DFgauche(f,x,h)
dfd = DFdroite(f,x,h)
dfc = DFcentree(f,x,h)
print "%5.e %17.15f %17.15f %17.15f" %(h, dfg, dfd, dfc)
16
17
18
19
20
21
22
1e-01
1e-02
1e-03
1e-04
1e-05
1e-06
1e-07
1e-08
1e-09
1e-10
1e-11
1e-12
1
2
3
4
5
6
7
8
9
10
11
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
| 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.
56
h
2
h
2
max | f 00 (x)| + 2
G. Faccanoni
2. Interpolation
Exemple
Par exemple, en utilisant le code de lexemple prcdent pour calculer la drive premire de la fonction
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.
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 )
=
h2
= f 00 (x i ) + O(h 2 ).
, , , , , , , , , , , , , ,
Conclusion
, , , , , , , , , , , , ,
1. Approcher un ensemble de donnes ou une fonction f dans [a, b] consiste trouver une fonction f capable de les
reprsenter avec suffisamment de prcision ; linterpolation
un polynme p tel
polynomiale consiste
dterminer
que p(x i ) = y i , o les { x i } sont des nuds donns et les y i sont soit de la forme f (x i ) , soit des valeurs prescrites ;
2. si les n + 1 nuds
{ xi } sont distincts, il existe un unique polynme de degr infrieur ou gal n qui interpole les
valeurs donnes y i aux nuds { x i } ;
3. pour une distribution de nuds quidistants dans [a, b], lerreur dinterpolation en un point quelconque de [a, b] ne
tend pas ncessairement vers 0 quand n tend vers linfini. Nanmoins, il existe des nuds particuliers, par exemple
ceux de C HEBYSHEV, pour lesquels on a cette proprit de convergence pour toutes les fonctions continment diffrentiables ;
4. linterpole linaire par morceaux dune fonction f est la fonction continue, linaire par morceaux, `, qui interpole
f en un ensemble de nuds { x i }. Avec cette approximation, on vite le phnomne de RUNGE quand le nombre de
nuds augmente.
G. Faccanoni
57
2. Interpolation
4. Les polynmes dinterpolation peuvent aussi approcher des donnes ou des fonctions en plusieurs dimensions. En
particulier, linterpolation composite, base sur des fonctions linaires par morceaux ou des splines cubiques, est
bien adapte quand le domaine est subdivis en polygones en 2D (triangles ou quadrilatres) ou en polydres en
3D (ttradres ou prismes).
58
G. Faccanoni
TTTTTTTTTTTTT
2. Interpolation
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
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
25
26
27
28
29
# INPUT
x = [1,2,3,4,5]
y = [0,1,0,1,0]
dy = [-1,1,0,-1,0]
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
G. Faccanoni
59
2. Interpolation
Exercices
..............
.............
Exercice 2.1
Construire le polynme de Lagrange P qui interpole les points (0, 2), (1, 1), (2, 2) et (3, 3).
C ORRECTION .
Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit
p n (x) =
n
n x x
X
Y
j
.
yi
x
i
j
i =0
j =0
j 6=i
Ici n = 3 donc on a
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)
=2
a 0 + a 1 0 + a 2 02 + a 3 03 = 2
a + a 1 + a 12 + a 13 = 1
0
1
2
3
a 0 + a 1 2 + a 2 22 + a 3 23 = 2
a 0 + a 1 3 + a 2 32 + a 3 33 = 3
1
1
1
1
0
1
2
3
0
1
4
9
0
1
8
27
L L L
2
2
1
2
L 3 L 3 L 1
1 L 4 L 4 L 1
2
3
1
0
0
0
0
1
2
3
0
1
4
9
0
1
8
27
1
1
1
1
i.e.
2
L 3 L 3 2L 2
1
L 4 3L 2
L4
0
1
1
0
0
0
0
1
2
3
0
1
0
0
0
1
4
9
0
1
2
6
0
a0
2
a 1 1
1
=
8 a 2 2
27 a 3
3
2
1
L 4 3L 3
L4
2
4
0
1
6
24
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 = 83 et a 0 = 2.
Exercice 2.2
Trouver le polynme de lespace vectoriel Vec{1 + x 2 , x 4 } qui interpole les points (0, 1) et (1, 3).
C ORRECTION .
Il sagit de trouver un polynme p(x) qui soit combinaison linaire des deux polynmes assigns (i.e. p(x) = (1 +
x 2 ) + (x 4 )) et qui interpole les deux points (0, 1) et (1, 3) :
(
p(0) = 1,
p(1) = 3,
p(x)
(
(1 + 02 ) + (04 ) = 1,
(1 + 12 ) + (14 ) = 3,
60
G. Faccanoni
2. Interpolation
Exercice 2.3
1. Construire le polynme de Lagrange P qui interpole les points (1, 2), (0, 1), (1, 2) et (2, 3).
2. Soit Q le polynme de Lagrange qui interpole les points (1, 2), (0, 1), (1, 2). Montrer quil existe un rel tel que :
Q(x) P (x) = (x + 1)x(x 1).
C ORRECTION .
Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit
p n (x) =
n
X
i =0
yi
n
Y
x xj
.
x
j =0 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 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 x 2 )
x x3
(x x 0 )(x x 2 )
x x3
1
+ y1
1
(x 0 x 1 )(x 0 x 2 )
x0 x3
(x 1 x 0 )(x 1 x 2 )
x1 x3
(x x 0 )(x x 1 )
x x3
(x x 0 )(x x 1 )(x x 2 )
+ y2
1
y3
(x 2 x 0 )(x 2 x 1 )
x2 x3
(x 3 x 0 )(x 3 x 1 )(x 3 x 2 )
(x x 0 )(x x 1 )(x x 2 )
(x x 0 )(x x 1 )(x x 2 )
y1
= y 0
(x 0 x 1 )(x 0 x 2 )(x 0 x 3 )
(x 1 x 0 )(x 1 x 2 )(x 1 x 3 )
(x x 0 )(x x 1 )(x x 2 )
(x x 0 )(x x 1 )(x x 2 )
y2
y3
(x 2 x 0 )(x 2 x 1 )(x 2 x 3 )
(x 3 x 0 )(x 3 x 1 )(x 3 x 2 )
y0
y1
=
+
(x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 )
y2
y3
+
+
(x x 0 )(x x 1 )(x x 2 )
(x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 )
(x + 1)x(x 1)
=
3
Q(x) P (x) = y 0
G. Faccanoni
61
2. Interpolation
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.4
1. Construire le polynme de Lagrange P qui interpole les trois points (1, e), (0, 1) et (1, e).
2. Sans faire de calculs, donner lexpression du polynme de Lagrange Q qui interpole les trois points (1, 1), (0, 0)
et (1, 1).
3. Trouver le polynme de lespace vectoriel Vec{1, x, x 2 } qui interpole les trois points (1, 1), (0, 0) et (1, 1).
C ORRECTION .
1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit
p n (x) =
n
n x x
X
Y
j
yi
.
x
i
j
i =0
j =0
j 6=i
Ici n = 2 donc on a
y
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
2.
62
G. Faccanoni
2. Interpolation
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,
Exercice 2.5
1. Construire le polynme de Lagrange P qui interpole les points (1, 1), (0, 1), (1, 2) et (2, 3).
2. Soit Q le polynme de Lagrange qui interpole les points (1, 1), (0, 1), (1, 2). Montrer quil existe un rel tel que :
Q(x) P (x) = (x + 1)x(x 1).
C ORRECTION .
Le polynme dinterpolation de Lagrange 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
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
1
1
2
= x 3 + x 2 + x + 1.
6
2
3
2. Par construction
Q(1) = P (1),
Q(0) = P (0),
Q(1) = P (1),
donc le polynme Q(x) P (x) sannule en 1, en 0 et en 1, ceci 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
G. Faccanoni
(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 )
63
2. Interpolation
x(x 1)
(x + 1)(x 1) + (x + 1)x
2
1
1
= x 2 + x + 1.
2
2
Ainsi
x x3
(x x 0 )(x x 2 )
x x3
(x x 1 )(x x 2 )
1
+ y1
1
Q(x) P (x) = y 0
(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 )
y0
y1
=
+
(x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 )
y2
y3
(x x 0 )(x x 1 )(x x 2 )
+
+
(x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 )
(x + 1)x(x 1)
=
6
et = 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
x1
Exercice 2.6
1. Construire le polynme de Lagrange P qui interpole les trois points (1, ), (0, ) et (1, ) o et sont des rels.
2. Si = , donner le degr de P .
3. Montrer que P est pair. Peut-on avoir P de degr 1 ?
C ORRECTION .
1. Construire le polynme de Lagrange P qui interpole les trois points (1, ), (0, ) et (1, ) o et sont des rels.
Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}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
64
G. Faccanoni
2. Interpolation
Ici n = 2 donc on a
P (x) = y 0
(x x 1 )(x x 2 )
(x x 0 )(x x 2 )
(x x 0 )(x x 1 )
+ y1
+ y2
+
(x 0 x 1 )(x 0 x 2 )
(x 1 x 0 )(x 1 x 2 )
(x 2 x 0 )(x 2 x 1 )
x(x 1)
(x + 1)(x 1)
(x + 1)x
+
+
=
2
1
2
= ( )x 2 + .
2. Si = , P = qui est un polynme de degr 0.
3. P (x) = P (x) donc P est pair. Donc P ne peut pas tre de degr 1 car un polynme de degr 1 est de la forme a 0 + a 1 x
qui ne peut pas tre pair.
Exercice 2.7
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 . 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 ),
0
q (x 0 ) = f (x 0 ),
a 0 + a 1 x 0 = f (x 0 ),
a 1 = f (x 0 ),
a 0 = f (x 0 ) x 0 f 0 (x 0 ),
a 1 = f 0 (x 0 ),
donc q(x) = f (x 0 ) + (x x 0 ) f 0 (x 0 ).
Exercice 2.8
Soit f une fonction de classe C 1 et x 0 D f . Soit ` le polynme dinterpolation de L AGRANGE de f en x 0 et h le polynme
dinterpolation dH ERMITE en x 0 . Calculer h(x) `(x).
C ORRECTION . Le polynme dinterpolation de L AGRANGE de f en x 0 est lunique polynme ` R0 [x] qui 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 ),
Exercice 2.9
Soit f : R R une fonction de classe C 1 (R) qui sannule au moins une fois et dont la drive ne sannule pas. Soit x 0 D f
donn. Pour i N construisons la suite (x i )i comme suit : x i +1 est la racine du polynme interpolateur dH ERMITE de f
en x i . Quelle mthode reconnait-on ? Justifier la rponse.
C ORRECTION . Le polynme dH ERMITE dune fonction f en x i a quation q(x) = f (x i )+(x x i ) f 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
dfinie par rcurrence
(
x 0 donne,
x i +1 = x i
f (x i )
.
f 0 (x i )
On a alors la suite
f (x i )
,
f 0 (x i )
Exercice 2.10
Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dHermite (de degr 3) de f vrifiant
p(1) = f (1),
G. Faccanoni
p 0 (1) = f 0 (1),
p(1) = f (1),
p 0 (1) = f 0 (1).
65
2. Interpolation
crire le polynme p.
C ORRECTION . On a deux points dinterpolation (n = 1), on cherche alors un polynme de R3 [x]. On a deux mthodes
pour calculer le polynme interpolateur dH ERMITE :
n
n (x x )2
X
Y
j
0
p(x) =
y i (1 2(x x i )c i ) + y i (x x i )
2
i =0
j =0 (x i x j )
ci =
j 6=i
n
X
1
.
x
xj
j =0 i
j 6=i
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
.
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
f 0 (1) f 0 (1) 2 f (1) + f 0 (1) f (1) + f 0 (1) 3
x +
x .
+
4
4
p(x) =
Deuxime mthode : le polynme interpolateur dHermite est un polynme de degr 2n + 1. On cherche donc un polynme
p(x) = + x + x 2 + x 3
tel que
p(1) = f (1),
p 0 (1) = f 0 (1),
p(1) = f (1),
p 0 (1) = f 0 (1),
+ = f (1),
+ + + = f (1),
2 + 3 = f 0 (1),
+ 2 + 3 = f 0 (1).
En utilisant la mthode dlimination de Gauss on obtient :
1
1
[A|b] =
0
0
1
1
1
1
1
L 4 L 4 12 L 3
0
0
L 3 L 3 12 L 2
66
1
2
1
1
2
2
1
0
1
1
3
3
f (1)
f (1)
L 2 L 1
L2
f 0 (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
1 1
f (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)
G. Faccanoni
2. Interpolation
ainsi
2 f (1) + 2 f (1) + f 0 (1) f 0 (1)
,
4
f 0 (1) + f 0 (1)
=
,
4
Exercice 2.11
1. Construire le polynme de Lagrange p qui interpole les points (1, 0), (0, 0), (1, 0) et (2, 0).
2. Construire lensemble des polynmes de degr 4 qui interpolent les points (1, 0), (0, 0), (1, 0) et (2, 0).
3. Construire le polynme dHermite Q qui interpole les points (1, 0, 1) et (2, 0, 1).
C ORRECTION .
1. Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit
p n (x) =
n
n x x
X
Y
j
yi
.
x
i
j
i =0
j =0
j 6=i
Q(x) =
n
X
i =0
n xx
Q
j
L i (x) =
x i x j ,
j
=0
j 6=i
P
1
ci =
x x j ,
j =0 i
j 6=i
A
(x)
= (1 2(x x i )c i )(L i (x))2 ,
x x1 2
x x0 2
x 2 2
x +1 2
= (x x 0 )
(x x 1 )
= (x + 1)
(x 2)
x0 x1
x1 x0
3
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 3 = 0
a
2a
+3a
=1
1
2
3x
3
a 1 +4a 2 +12a 3 x = 1
G. Faccanoni
67
2. Interpolation
1 1 1
1 2
4
A=
0 1 2
0 1
4
a0
a 1
a=
a 2
a3
1
8
,
3
12
1 1
1 1
0
1
0
2
4
8
L 2 L 1
L2
(A|b) =
0
1 2
3
1
0
1
4 12 1
1
0
0
0
1
3
1
1
1
0
0
0
L 3 L 3 L 2 /3
L 4 L 4 L 3 /3
et finalement on obtient
a 3 = 0,
do Q(x) =
0
0
b=
1
1
1
2
2
4
1
a2 = ,
3
et
1
9
3
12
1
2
3
3
1
3
0
0
0
0
1
1
0
0
L 4 +L 3
L4
1
1
1
9
0
9
1
a1 = ,
3
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)
2
Q(x)
P (x)
y = x + 2
Exercice 2.12
Lesprance de vie dans un pays a volue dans le temps selon le tableau suivant :
Anne
1975 1980 1985 1990
Esprance 72,8
74,2
75,2
76,4
Utiliser linterpolation de Lagrange pour estimer lesprance de vie en 1977, 1983 et 1988. La comparer avec une interpolation linaire par morceaux.
Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(x i , y i )}ni=0 scrit
C ORRECTION .
p n (x) =
n
n x x
X
Y
j
yi
.
i =0
j =0 x i x j
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 0 )(x x 2 )(x x 3 )
(x x 1 )(x x 2 )(x x 3 )
+ y1
(x 0 x 1 )(x 0 x 2 )(x 0 x 3 )
(x 1 x 0 )(x 1 x 2 )(x 1 x 3 )
(x x 0 )(x x 1 )(x x 3 )
(x x 0 )(x x 1 )(x x 2 )
+ y2
+ y3
=
(x 2 x 0 )(x 2 x 1 )(x 2 x 3 )
(x 3 x 0 )(x 3 x 1 )(x 3 x 2 )
P (x) = y 0
= 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
68
G. Faccanoni
2. Interpolation
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.13
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 .
xi
yi
0
1
2
1
p
e 2
e 2
1
2
Le polynme dinterpolation de Lagrange de degr n sur lensemble des n + 1 points {(y i , x i )}ni=0 scrit
p n (y) =
n
X
i =0
x i
n
Y
y yj
.
y
j =0 i y j
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
1 p
e+2
p
2 ( e2+1)( e2e+2)
p
e+2
+ (e2+1)(e2pe+2) 0.7087486785.
xk
G. Faccanoni
69
2. Interpolation
xk
0
1
2
3
0
1
2
e 0.7357588825
2e
2
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 peu pas tre gnralise au cas de plus de trois points dinterpolation car on ne connait
pas de formule gnrale pour le calcul des zros dun polynme de degr n 3.
Exercice 2.14
Soit f une fonction continue dont on connait les valeurs uniquement pour t entier, cest--dire on suppose connues les
valeurs f () pour tout Z. Si t R \ Z, on 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 .
points
Soit ` = E [t ] la partie entire 2 de t . Alors t [`; ` + 1] et il sagit de dfinir le polynme p interpolant les
( 1, f ( 1)),
(, f ()),
( + 1, f ( + 1)),
( + 2, f ( + 2)),
ce qui donne
P (t ) =
3
X
i =0
f ( 1 + i )
t +1 j
t ( 1 + j )
=
f ( 1 + i )
1
+
i
)
1
+
j
)
ij
i =0
j =0
j =0
3
Y
j 6=i
3
X
3
Y
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
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
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).
70
G. Faccanoni
2. Interpolation
Exercice 2.15
1. Calculer le polynme p de L AGRANGE qui interpole la fonction f (x) =
x 2 = 4. Esquisser les graphes de f et de p pour x [1, 4].
4
x
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 .
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 27 x + 7
y
4
2
1
p
f
1 2
4 x
2. On a (x) f (x) p(x) = x4 7 + 72 x 21 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 27 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
x [2,4] tel que (x)
alors
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
0
1
2
3
7
13
[a k , b k ]
[2, 4]
[3, 4]
3, 2
3, 4
7
13
25
`k
3
2
4
8
1
1
1
bk ak
2 > 10
1 > 10
0.5 > 10
0.25 > 101
4
25
3, 8
49
16
0.125 > 10
25
16 , 8
49
1
99
32
3. Comparons ce rsultat avec lestimation thorique de lerreur. n = 2 et f est de classe C ([1, 4]), donc pour tout
x [1, 2] il existe x [1, 4] tel que
(x) =
Comme (x) =
G. Faccanoni
4
x
f 000 (x )
3
(x 1)(x 2)(x 4) = 4 (x 3 7x 2 + 14x 8).
3!
x
7 + 72 x 12 x 2 , on obtient x =
p
4
6x.
71
3. Quadrature
Calculer
Rb
Dans les mthodes dintgration, lintgrale dune fonction 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 Gauss
fondes sur les polynmes orthogonaux pour lesquelles les points de la subdivision sont imposs.
In ( f ) =
f n (x)dx,
n 0.
b
a
Lapproximation f n doit tre facilement intgrable, ce qui est le cas si, par exemple, f n est un polynme. En effet, si f n =
Pn
i
i =0 i x Rn [x], alors
Z
I ( f ) In ( f ) =
b
a
Z
f n (x)dx =
n
X
!
i x
i =0
dx =
n
X
b
a
i =0
n
n b i +1 a i +1
X i h i +1 ib X
x i dx =
=
x
i .
a
i +1
i =0
i =0 i + 1
P
Une approche naturelle consiste prendre f n = n f = ni=0 f (x i )L i (x), le polynme dinterpolation de L AGRANGE de f
sur un ensemble de n + 1 nuds distincts {x i }ii =n
. Ainsi on dduit
=0
In ( 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
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 Lagrange et dH ERMITE sont toutes les deux des formules de quadrature interpolatoires, car la fonction f
est remplace par son polynme dinterpolation.
73
3. Quadrature
Astuce
Rb
P
Si q est un polynme de Rr [x], il existe 0 , 1 , . . . , r tels que q(x) = rk=0 k x k . Alors I (q) = a q(x) dx =
R
Pr
P
b
k a x k dx = rk=0 k I (x k ) . Pour vrifier quune formule de quadrature I n a degr dexactitude r il suffit alors
k=0
de vrifier que I n (x k ) = I (x k ) pour tout k = 0 . . . r .
Thorme
Toute formule de quadrature interpolatoire utilisant n + 1 nuds distincts a un degr dexactitude au moins gale n.
En effet, si f Rn [x], alors le polynme dinterpolation concide avec f .
La rciproque aussi est vraie : une formule de quadrature utilisant n + 1 nuds distincts et ayant un degr dexactitude au
moins gale n est ncessairement de type interpolatoire.
Le degr dexactitude peut mme atteindre 2n + 1 dans le cas des formules de quadrature de Gauss.
Dfinition Stabilit
Une formule de quadrature I n ( f ) =
Pn
i =0 i
Pn
i =0 |i | M .
Thorme
Une mthode de quadrature de type interpolation est convergente sur C [a; b] ssi les formules sont stables.
yj
j =0
m1
n
X X
j =0 k=0
(j)
(j)
k f (x k ).
g (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
Z d
Z b
g (y)dy = m
f (mx + q)dx.
c
74
d c
,
ba
q=
cb ad
.
ba
d c
cb ad
x+
do
ba
ba
Z
Z d
cb ad
d c b
d c
f (y)dy =
f
x+
dx.
ba a
ba
ba
c
G. Faccanoni
3. Quadrature
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 1
Z x
i +1
f (y)dy = (x i +1 x i )
f ((x i +1 x i )x + x i )dx.
xi
On voit que lorsque x = 0 alors y = x i , lorsque x = 1 alors y = x i +1 , ou encore lorsque x = 1/2 alors y =
x i +x i +1
etc.
2
Exemple
Transformer lintervalle [1; 1] dans lintervalle [x i ; x i +1 ] par un changement de variable affine.
x x
x x i
x x
On a y = i +12 i x + i +1
, quon peut rcrire y = x i + (1 + x) i +12 i et
2
Z x
i +1
xi
f (y)dy =
Z
x i +1 x i 1
x i +1 x i
f x i + (1 + x)
dx.
2
2
1
h2 0
| f ()|,
2
h = b a,
]a; b[.
k=0
1
ba
H | f 0 ()|,
2
]a; b[.
h2 0
| f ()|,
2
h = b a,
]a; b[.
G. Faccanoni
75
3. Quadrature
k=0
ba
H | f 0 ()|,
2
]a; b[.
a +b
I 0 ( f ) = (b a) f
.
2
Si f C 2 ([a; b]) alors lerreur de quadrature est
E0( f ) =
h 3 00
| f ()|,
3
h=
ba
,
2
]a; b[.
1
on
obtient
la
formule
composite du point
2
milieu
m1
X
2k + 1
I o,m ( f ) = H
f a+
H .
2
k=0
Si f C 2 ([a; b]) alors lerreur de quadrature est
E 0,m ( f ) =
b a 2 00
H | f ()|,
24
]a; b[.
ba
I1( f ) =
f (a) + f (b) .
2
Si f C 2 ([a; b]) alors lerreur de quadrature est
E1( f ) =
h 3 00
| f ()|,
12
h = b a,
]a; b[.
Le degr dexactitude de la formule du point milieu est 1, comme celle du point milieu.
!
m1
X
X
H m1
1
1
I 1,m ( f ) =
f (x k ) + f (x k+1 ) = H
f (a) +
f (a + k H ) + f (b) .
2 k=0
2
2
k=1
76
G. Faccanoni
3. Quadrature
b a 2 00
H | f ()|,
12
]a; b[.
a+b
a+b
,
f
(polynme de Lagrange de degr 2), ce qui donne
2
2
I2( f ) =
ba
a +b
f (a) + 4 f
+ f (b) .
6
2
h 5 (4)
| f ()|,
90
h=
ba
,
2
]a; b[.
m1
s1
m1
m1
X
X
X
X
H
H
2s + 1
I 2,m ( f ) =
f (a) + 2
f (x 2r ) + 4
f (x 2s+1 ) + f (b) =
f (a) + 2
f (a + r H ) + 4
f a+
H + f (b) .
3
3
2
r =1
s=0
r =1
s=0
Si f C 4 ([a; b]) alors lerreur de quadrature est
E 2,m ( f ) =
G. Faccanoni
b a H 4 (4)
| f ()|,
180 4
]a; b[.
77
3. Quadrature
x0 = a
x0 = a
x4 = b
x2
x3
x4 = b
x0 = a
x 2 +x 3
2
x 1 +x 2
2
x1
x2
x 3 +x 4
2
x3
x4 = b
x0 = a
a+b
2
x1
x 0 +x 1
2
x3
a+b
2
x2
x1
x1
x2
x3
x4 = b
x0 = a
x1
x2
x3
x4 = b
78
G. Faccanoni
3. Quadrature
Algorithmes
M THODE DU RECTANGLE GAUCHE
Require: f , a, b > a, n > 0
h ba
n
s 0
for i = 0 to n 1 do
s s + f (a + i h)
end for
return I hs
s
2
for i = 1 to n
1 do
s s + f a +ih
end for
return I hs
M THODE DE S IMPSON
Require: f , a, b > a, n > 0
h ba
2n
s1 0
s 2 f (a + h)
for i = 1 to n 1 do
s 1 s 1 + f (a + 2i h)
s 2 s 2 + f (a + (2i + 1)h)
end for
, , , , , , , , , , , , , ,
Conclusion
, , , , , , , , , , , , ,
1. Une formule de quadrature est une formule permettant dapprocher lintgrale de fonctions continues sur un intervalle [a, b] ;
2. elle sexprime gnralement comme une combinaison linaire des valeurs de la fonction en des points prdfinis
(appels noeuds) et avec des coefficients appels poids ;
3. le degr dexactitude dune formule de quadrature est le degr maximal des polynmes pouvant tre intgrs exactement. Le degr dexactitude vaut 1 pour les formules du point milieu et du trapze, 3 pour les formules de S IMPSON ;
4. lordre de prcision dune formule de quadrature composite est exprim par rapport la taille H des sous-intervalles.
Il vaut 2 pour les formules du point milieu et du trapze.
G. Faccanoni
79
3. Quadrature
TTTTTTTTTTTTT
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
5
6
7
8
9
10
11
def rectangle_gauche_composite(f,a,b,n):
h = (b-a)/n
s = 0.
for i in range(n):
s += f(a+i*h)
return h*s
12
13
14
15
16
17
18
def rectangle_droite_composite(f,a,b,n):
h = (b-a)/n
s = 0.
for i in range(n):
s += f(a+(i+1)*h)
return h*s
19
20
21
22
23
24
25
def milieu_composite(f,a,b,n):
h = (b-a)/n
s = 0.
for i in range(n):
s += f(a+(i+0.5)*h)
return h*s
26
27
28
29
30
31
32
def trapeze_composite(f,a,b,n):
h = (b-a)/n
s = (f(a)+f(b))*0.5
for i in range(1,n):
s += f(a+i*h)
return h*s
33
34
35
36
37
38
39
40
41
def simpson_composite(f,a,b,n):
h = (b-a)/(2.*n)
s1 = 0.
s2 = f(a+h)
for i in range(1,n):
s1 += f(a+2*i*h)
s2 += f(a+(2*i+1)*h)
return (f(a)+f(b)+2.*s1+4.*s2)*h/3.
44
45
46
47
48
49
50
51
52
53
54
80
G. Faccanoni
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
3. Quadrature
n = 100
a = 0.0
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)
73
74
75
76
77
78
print
print
print
print
"**
"A)
"B)
"C)
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
81
3. Quadrature
Exercices
..............
Exercice 3.1
Estimer
R 5/2
0
.............
0
/2
/2
2
1
2
/2
1.6364
3
2
1.2500
/2
0.9565
5
Z b
m1
X
1
ba
1
f (a + i h) + f (b)
f (a) +
avec h =
.
f (t )d t ' h
2
2
m
a
i =1
Ici on a a = 0, b = 5/2, h = 1/2 donc
Z 5/2
1 3
0.9565
f (x) dx '
= 4.057325
+ 2 + 2 + 1.6364 + 1.2500 +
2 4
2
0
Exercice
3.2
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.
C ORRECTION . 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) +
f (a + i h) + f (b)
avec h =
2
2
m
a
i =1
et lerreur est donn par
E =
b a 2 00
h f ()
12
!
Z
7
sin(0) X
sin()
sin(x) dx '
1.97423
+
sin(i /8) +
8
2
2
0
i =1
et lerreur est
3
sin()
768
pour ]0; [. Comme on ne connait pas la valeur de , on ne peut pas connaitre E mais on peut en dterminer les bornes :
E=
E min =
3
sin(0) = 0
768
E max =
ainsi
Z
(1.97423 0)
3
3
sin(/2) =
' 0.04037
768
768
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
0.04037
= 0.01009
4
Z
1.99358
82
E max '
G. Faccanoni
3. Quadrature
Exercice 3.3
On considre lintgrale
2
Z
I=
1
dx.
x
(b a)4 00
,
f
()
|E m | =
12m 2
]a; b[.
C ORRECTION .
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 (a + i h) + f (b)
f (t )d t ' h
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
1 1
1
1 1 3 3 1
21
f (1) + f (1 + 1/3) + f (1 + 2/3) + f (2) =
+ + +
=
= 0,7.
3 2
2
3 2 4 5 4
30
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
|E |
(b a)4
sup | f 00 ()|.
12m 2 ]a;b[
1
6m 2
1
2
1
max 3 =
.
2
12m ]1;2[
6m 2
p
< 104 , i.e. m > 102 / 6 40,8. partir de 41 sous-intervalles, lerreur de quadra-
Exercice 3.4
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
G. Faccanoni
83
3. Quadrature
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
h f () ,
]a; b[.
|E m | =
12
C ORRECTION .
1. La mthode des trapzes composite m + 1 points (m sous-intervalles) pour calculer lintgrale dune fonction f sur
lintervalle [a, b] scrit
!
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
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
0.5 1 1.5 2
|E m |
0
0.5 1 1.5 2
(b a) 2
(b a)3
h sup | f 00 ()| =
sup | f 00 ()|.
2
12
12m
]a;b[
]a;b[
2
00
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
|E m |
1
12m 2
e
0
x 2
2
dx
10
Z
=4
e
0
x 2
dx +
2
,
avec 0 < < 1044 , utiliser la mthode des trapzes composite 10 intervalles pour estimer la valeur de .
C ORRECTION . La mthode des trapzes composite m intervalles pour calculer lintgrale dune fonction f sur lintervalle [a, b] scrit
!
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
2
84
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 3.1422.
2 i =1
2e
2 e e
e
e
e
e
e
e
e
2e
G. Faccanoni
3. Quadrature
Exercice 3.6
f (x) dx
2
2 f 12 f (0) + 2 f 12 .
3
ba
n .
xi
Rb
a
f (x) dx.
C ORRECTION .
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
xi
f (x) dx = m
do le changement de variable x = x i + (t
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 =
1
1
f (mt + q) dt
x x
+ 1) i +12 i
avec
x i = m + q,
x i +1 = m + q,
"
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
f (x) dx
h
h
h
3h
2 f xi +
f xi +
+ 2 f xi +
.
3
4
2
4
b
a
f (x) dx =
n1
X Z xi +1
i =0 x i
f (x) dx
X
h n1
h
h
3h
2 f xi +
f xi +
+ 2 f xi +
.
3 i =0
4
2
4
Rb
3. Algorithme dapproximation de a f (x) dx
Require: f , a, b > a, n > 0
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
G. Faccanoni
85
3. Quadrature
Exercice 3.7
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.1)
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.2)
3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.1). Cette formule de
quadrature est-elle stable ?
4. crire lalgorithme du calcul de F .
C ORRECTION .
1. On a
R1
p k (x) = x k
1
x
x2
k
0
1
2
1 p k (x) dx
p k () + p k ()
Degr dexactitude
2
2
au moins 0
0
0
au moins 1
p
p
2/3
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 dexactitude 1 si 6= 1/ 3 et degr dexactitude 3 si = 1/ 3.
2. Par le changement de variable y = x i + (x + 1)
Z
x i +1
xi
x i +1 x i
2
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 13
+ f x i + 1 + 13
.
2
2
2
Z
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: f , a, b > a, n > 0
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
86
G. Faccanoni
3. Quadrature
f (t ) dt .
1
5. Soit h =
2h.
ba
2n
h
x 2i
b
x 2n
h
x 2i +1 x 2i +2
f (x) dx.
a
(3.3a)
f (1) = + ,
f (0) = ,
(3.3b)
f (1) = + + .
(3.3c)
Lquation (3.3b) donne = f (0), la somme (3.3c)+(3.3a) donne =
donne =
f (1) f (1)
.
2
f (1) f (1)
2
Z
f (t ) dt
p(t ) dt = 2( + /3) =
p k (x) = x k
x3
x4
1 p k (x) dx
0
2/5
0
2/3
R1
Degr dexactitude
au moins 3
3
x 2i +2
x 2i
f (x) dx = m
do le changement de variable x = x 2i + (t
polynme de degr au plus 3)
Z
x 2i +2
x 2i
G. Faccanoni
f (x) dx =
x 2i +2 x 2i
2
1
1
f (mt + q) dt
x
x
+ 1) 2i +22 2i
avec
x 2i = m + q,
x 2i +2 = m + q,
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
87
3. Quadrature
i +1
i
pour i = 0, . . . , 2n. On subdivise lintervalle [a; b] en n intervalles [x 2i ; x 2i +2 ] de largeur 2h. On trouve
5. h = ba
2n =
2
ainsi la formule de quadrature composite
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 (x 2i + h)
f (x 2i ) + 4
f (a) + f (b) + 2
=
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
Exercice 3.9
=2n
Soit f une fonction C (R, R). On se donne les points {x i }ii =0
de subdivision de lintervalle [a; b] : x i = a+i h avec h = ba
2n .
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.4)
a
On propose dans un premier temps (question 1 3) de construire la formule de quadrature 3 points de Simpson :
Z
1
1
(3.5)
3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.4). Cette formule de
quadrature est-elle stable ?
4. crire lalgorithme du calcul de F .
5. Soit x un lment de [x i ; x i +1 ]. crire une formule de Taylor f (x) = P i (x) + R i (x) lordre 3 pour f en x, avec P i
P3 . Majorer R i sur [x i ; x i +1 ] en fonction de h.
6. En dduire une estimation derreur entre (3.4) et F .
C ORRECTION .
88
G. Faccanoni
3. Quadrature
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
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
polynme de degr au plus 3)
Z
x 2i +2
x 2i
f (x) dx =
x 2i +2 x 2i
2
1
1
f (mt + q) dt
x
x
+ 1) 2i +22 2i
avec
x 2i = m + q,
x 2i +2 = m + q,
x 2i +2 x 2i
x 2i +2 x 2i
dt
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) .
f x 2i + (t + 1)
2
6
1
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
"
#
n1
n1
X
X
X
h
h n1
f (x) dx
f (x 2i ) + 4 f (x 2i +1 ) + f (x 2i +2 ) =
f (a) + f (b) + 2
f (x 2i ) + 4
f (x 2i + h)
3 i =0
3
i =1
i =0
"
#
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
Cette formule de quadrature est stable puisque tous les coefficients sont positifs et on a
"
#
n1
n1
X
X
ba
ba
h
1+1+2
1+4
1 =
6n = (b a).
[2 + 2(n 1) + 4n] =
3
6n
6n
i =1
i =0
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
G. Faccanoni
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 [.
89
3. Quadrature
H4
b a H3
max | f I V ()| =
max | f I V ()|.
24
n 24
Z b
n1 Z x
Z
n1
2i +2
X
X x2i +2
f
(x)
dx
F
P
(x)
dx
F
R
(x)
dx
i
i
a
x
x
2i
2i
i =0
i =0
n1
X x2i +2
R i (x) dx
nH |R i (x 2i +2 )| +
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
Exercice 3.10
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.6)
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.7)
3. En dduire une formule de quadrature 3n points, note F , pour le calcul approch de (3.6). Cette formule de
quadrature est-elle stable ?
C ORRECTION .
1. On a
k
0
1
2
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
0
2/5
2
0
22 /3
p
Soit = 1/ 2
0
1/3
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
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
1 x i +1 x i
1 x i +1 x i
f xi + 1 2
+ f xi +
+ f xi + 1 + 2
.
3
2
2
2
f (y) dy =
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.
90
G. Faccanoni
3. Quadrature
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
i
Xh
H n1
f (x) dx
f x i + H 1 p1 + f x i + H2 + f x i + H 1 + p1
2
2
3 i =0
a
Xh
H n1
=
f a + H i + 1 p1 + f x i + H2 + f a + H i + 1 + p1
.
2
2
3 i =0
Cette formule de quadrature est stable puisque tous les coefficients sont positifs.
Exercice 3.11
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.8)
On propose dans un premier temps (question 1 2) de construire la formule de quadrature deux points :
Z
1
1
4
2
g (x) dx g (w/2) + g (w),
3
3
(3.9)
3. En dduire une formule de quadrature 2n points, note F , pour le calcul approch de (3.8). Cette formule de
quadrature est-elle stable ?
4. crire lalgorithme du calcul de F .
C ORRECTION .
1. On a
k
0
1
2
p k (x) = x k
1
x
x2
R1
2
3 (2p k (w/2) + p k (w))
1 p k (x) dx
Degr dexactitude
2
au moins 0
0
au moins 1
p
p
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.
2
0
2/3
x i +1
xi
x i +1 x i
2
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
Z
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
q
q
X
H n1
f (x) dx
f x i + H 1 + 23 + 2 f x i + H 1 16
3 i =0
a
"
r !!
r !!#
X
H n1
2
1
=
f a +H i +1+
+2f a + H i +1
.
3 i =0
3
6
Cette formule de quadrature est stable puisque tous les coefficients sont positifs.
G. Faccanoni
91
3. Quadrature
4. Algorithme du calcul de F :
Require: f , a, b > a, n > 0
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.12
1. Soit 0 < 1 un nombre rel donn et soit 1 , 2 , 3 trois nombres rels. Considrons la formule de quadrature
1
g (t ) dt 1 g () + 2 g (0) + 3 g ().
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
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
2
3
x2
Soit 1 =
3
x3
x4
Soit =
1
32
3
5
et donc 3 =
22 1
1
32
et 2 = 2 32 2
2
5
2 2
3
et donc 1 = 3 =
5
9
et 2 =
x5
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
xi
92
f (x) dx = m
1
1
f (mt + q) dt
avec
x i = m + q,
x i +1 = m + q,
G. Faccanoni
3. Quadrature
do le changement de variable x = x i + (t + 1)
polynme de degr au plus 5)
Z
x i +1
xi
x i +1 x i
2
x i +1 x i
2
x i +1 x i
dt
f x i + (t + 1)
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 =
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
"
!#
r !
r !
Z b
x
n1
n1
X x i +1 x i
X Z xi +1
3 x i +1 x i
3 x i +1 x i
i +1 + x i
f (x) dx
f (x) dx =
5 f xi + 1
+8f
+ 5 f xi + 1 +
18
5
2
2
5
2
a
i =0
i =0 x i
! !
! !#
"
r
r
X
h
h n1
3
3
5 f xi + 1
h + 8 f xi +
+ 5 f xi + 1 +
h
=
18 i =0
5
2
5
"
r ! !
r ! !#
X
h n1
3
1
3
=
5f a + i +1
h +8f a + i + h +5f a + i +1+
h .
18 i =0
5
2
5
4. Algorithme du calcul associ cette formule de quadrature
Require: f , a, b > a, n > 0
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
return 18
s
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
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
G. Faccanoni
93
3. Quadrature
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.10a)
f (1) = p(1) = + .
(3.10b)
f (1)+ f (1)
2
f (1) f (1)
. On en dduit la mthode de quadrature
2
1
Z
f (t ) dt
Z
p(t ) dt =
1
1
+ t dt = 2 = f (1) + f (1).
Par construction, cette formule de quadrature a degr dexactitude au moins 1. Soit f (x) = x 2 , alors
tandis que f (1) + f (1) = 2 : la formule est exacte pour les polynmes de degr au plus 1.
R1
1
f (x) dx = 2/3
2. Soit x = mt + q, alors
Z
x i +1
xi
f (x) dx = m
do le changement de variable x = x i + (t + 1)
polynme de degr au plus 1)
Z
x i +1
xi
x i +1 x i
f (x) dx =
2
f (mt + q) dt
x i +1 x i
2
avec
b
a
f (x) dx =
n1
X Z xi +1
i =0 x i
f (x) dx
n1
X
i =0
x i +1 = m + q,
x i +1 x i
x i +1 x i
dt
f (x i ) + f (x i +1 ) .
f x i + (t + 1)
2
2
1
x i = m + q,
ba
n
x i +1 x i
2
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 (a) + f (b) + 2
f (x i ) =
f (a) + f (b) + 2
f (a + i h) .
2
2
i =1
i =1
Exercice 3.14
Soit f une fonction de classe C 1 ([1, 1]) et p le polynme interpolateur dH ERMITE (de degr 3) de f 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
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 .
1. On a deux mthodes pour calculer le polynme interpolateur dH ERMITE :
n
X
i =0
y i A i (x) + y i0 B i (x)
o
A i (x) = (1 2(x x i )c i )(L i (x))2 ,
B i (x) = (x x i )(L i (x))2 ,
94
G. Faccanoni
3. Quadrature
L i (x) =
n x x
Y
j
j =0
j 6=i
ci =
xi x j
n
X
1
.
x
xj
i
j =0
j 6=i
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
.
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) =
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),
+ = f (1),
+ + + = f (1),
2 + 3 = f 0 (1),
+ 2 + 3 = f 0 (1).
On obtient
2 f (1) + 2 f (1) + f 0 (1) f 0 (1)
,
4
0
0
f (1) + f (1)
=
,
4
G. Faccanoni
p(x) dx = x + x 2 + x 3 + x 4
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
95
3. Quadrature
1
= f (1) + f (1) + ( f 0 (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
f (x) dx =
1 5
x
5
1
=
1
2
6
=
5 15
6=
1
1
14 70
f (1) + f (1) + ( f 0 (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
a
Z
ba 1
ba
f (y)dy =
dx
f a + (x + 1)
2
2
1
ba
ba 0
=
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.15
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.11)
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
n
X
i f (x i ) +
n1
X
i f (m i )
i =0
i =0
pour le calcul approch de 3.11 construite sur la formule de quadrature prcdente pour chaque intervalle du type
[x i ; x i +1 ]. Cette formule de quadrature est-elle stable ?
3. On rappelle que si p interpole f en k points y 1 < y 2 < < y k , on a lestimation derreur
x [y 1 ; y k ],
| f (x) p(x)|
k
sup[y 1 ;y k ] | f (k) ()| Y
k!
(x y j ).
j =1
Z
E (h) =
f (x) dx Q( f ).
i +1
ba
ba 0
0
2. Rappel : si y = a + (x + 1) ba
2 alors dy = 2 dx et f (y) = 2 f (x).
96
G. Faccanoni
3. Quadrature
a f (x i ) + b f (m i ) + c f (x i +1 ), alors
B = hb , C = hc , M =
m i x i
h
R1
0
f (y) dy =
1
h
R xi +1
xi
f(
xx i
h
) dx
1
h
a f (0) + b f (
m i x i
h
m i = (1 M )x i + M x i +1 ,
a = Ah,
b = Bh,
c = Ch
tels que
1
Z
0
p(x) dx
k
h
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
A = 16 ,
A + B +C = 1
B M = 1 C
B = 2 ,
B M +C = 1
2
2
3
1
1
1
1
2
B
M
+C
=
(
C
)M
=
C
C
=
3
2
3
6,
1
1
3
B M +C = 4
( 3 C )M = 4 C
M = 12 .
La mthode
Z
0
f (x) dx =
1
2 1
1
+ f (1),
f (0) + f
6
3 2
6
1
2 1
1
1 2 1 4 1
5
+ =
f (0) + f
+ f (1) = +
,
6
3 2
6
6 3 2
6 24
1
1
m i = 2 x i + 2 x i +1 ,
a = 1 h,
6
b = 2 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 xi +1
x +x
i
hh
i
i +1
f (x i ) + 4 f
+ f (x i +1 ) .
f (x) dx
6
2
xi
On obtient ainsi
Z 1
n1
XZ
f (x)dx =
0
G. Faccanoni
x i +1
f (x) dx
i =0 x i
97
3. Quadrature
x +x
i
hh
i
i +1
f (x i ) + 4 f
+ f (x i +1 )
2
i =0 6
"
#
n1
n1
n1
X x i + x i +1
X
h X
f
f (x i +1 ) + 4
=
f (x i ) +
6 i =0
2
i =0
i =0
"
#
n1
n1
X x i + x i +1
X
h
f
f (x i ) + 4
f (a) + f (b) + 2
=
6
2
i =0
i =1
n
X
i f (x i ) +
n1
X
2h
avec i =
,
3
i f (m i ) = Q( f )
i =0
i =0
(
i =
h
3
h
6
si i = 1, . . . , n 1,
sinon.
Cette formule de quadrature est stable puisque tous les coefficients i et i sont positifs et on a
!
n1
n
X
X h h n1
X 2h 1 1 1 n1
X
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.11) 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
i =0 x i
n1
X Z xi +1
f (x) p(x) dx
i =0 x i
n1
X Z xi +1
i =0 x i
4
000
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
98
n 12
n
G. Faccanoni
Les quations diffrentielles dcrivent lvolution de nombreux phnomnes dans des domaines varis. Une quation
diffrentielle est une quation impliquant une ou plusieurs drives dune fonction inconnue. Si toutes les drives sont
prises par rapport une seule variable, on parle dquation diffrentielle ordinaire. Une quation mettant en jeu des drives partielles est appele quation aux drives partielles. On dit quune quation diffrentielle (ordinaire ou aux drives
partielles) est dordre p si elle implique des drives dordre au plus p. Dans le prsent chapitre, nous considrons des
quations diffrentielles ordinaires dordre un.
Exemple
On se donne f (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) = .
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 trois solutions du problme de C AUCHY donn.
Cest exemple montre quun problme de C AUCHY nas pas ncessairement de solution unique.
On se donne f (t , y(t )) = (y(t ))3 et y 0 = 1. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait
99
p
On vrifie que la solution y est donne par y(t ) = 1/ 1 2t qui nest dfinie que pour t [0; 1/2[. Cest exemple montre quun problme de C AUCHY nas pas toujours une solution pour tout t [0; +[ puisquici la solution explose lorsque t tend vars la valeur 1/2
(en effet, nous avons limt (1/2) y(t ) = +).
Les trois exemples ci-dessus montrent que ltude mathmatique de lexistence et de lunicit de solutions dun problme de C AUCHY peut tre une affaire dlicate. Dans ce chapitre, nous nous contentons de rappeler un rsultat dexistence
et dunicit global, au sens o on peut intgrer le problme de C AUCHY jusqu t = :
t I ,
y 1 , y 2 R,
Cas particulier
Soient a et g deux fonctions continues dun intervalle I dans R, si f (t , y(t )) = a(t )y(t ) + g (t ) et si (t 0 , y 0 ) I R, alors il
existe une unique solution y de lquation diffrentielle telle que y(t 0 ) = y 0 .
Remarque
Graphiquement, ce thorme signifie que par tout point du plan dont labscisse est dans I , il passe une courbe intgrale
et une seule, autrement dit deux trajectoires ne peuvent pas se croiser. En particulier, si une quation diffrentielle admet
comme solution la solution nulle, alors toute autre solution est soit toujours positive soit toujours ngative.
Exemple
2
On se donne f (t , y(t )) = |y(t )| + sin(y(t )) + e t /2 et y 0 = 1. On cherche une fonction y : t R+ 7 y(t ) R qui satisfait
(
y 0 (t ) = (y(t ))3 , t > 0,
y(0) = 1.
On vrifie facilement que
f (t , y 1 (t )) f (t , y 2 (t )) = |y 1 (t )| + sin(y 1 (t )) |y 2 (t )| sin(y 2 (t ))
Z y1
= |y 1 (t )| |y 2 (t )| +
sin()d
y2
|y 1 (t )| |y 2 (t )| + |y 1 (t ) y 2 (t )|
y 1 (t ) y 2 (t )
Par le thorme de C AUCHY-Lipschitz, le problme de C AUCHY a une solution globale unique y(t ). Cependant, il nest pas possible de
donner une expression explicite de la solution.
En pratique, on ne peut expliciter les solutions que pour des quations diffrentielles ordinaires trs particulires. Dans
certains cas, on ne peut exprimer la solution que sous forme implicite. Dans dautres cas, on ne parvient mme pas
reprsenter la solution sous forme implicite. Pour ces raisons, on cherche des mthodes numriques capables dapprocher
la solution de toutes les quations diffrentielles qui admettent une solution.
h
Une fois calcule la solution numrique { u n }n=1
, il est lgitime de chercher savoir dans quelle mesure lerreur |y(t n )
u n | est petite ou non pour n = 1, 2, . . . . Nous essayons de rpondre cette question en reprenant le premier exemple du
chapitre. On se donne f (t , y(t )) = 3t 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) = .
Nous avons vu que sa solution est donne par y(t ) = ( 1/3)e 3t + t + 1/3. Si nous cherchons rsoudre le problme
de C AUCHY jusqu t = 10 avec = 1/3, nous obtenons y(10) = 10 + 1/3 = 31/3. Par contre, si nous faisons le calcul
avec lapproximation = 0.333333 au lieu de 1/3, nous avons y(10) = (0.333333 1/3)e 30 + 10 + 1/3 = e 30 /3000000 +
31/3 ce qui reprsente une diffrence avec la prcdente valeur de e 30 /3000000 107 /3. Cet exemple nous apprend
100
G. Faccanoni
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.
Soit u n une approximation de y(t n ) et u n+1 une approximation de y(t n+1 ). On peut construire diffrentes schmas selon la
formule de quadrature utilise pour approcher le membre de droite.
? Si on utilise la formule de quadrature du rectangle gauche, i.e.
Z tn+1
f (t , y(t ))d t h f (t n , y(t n ))
tn
n = 0, 1, 2, . . .
Il sagit dun schma implicite car il ne permet pas dexpliciter directement u n+1 en fonction de u n lorsque la fonction
f nest pas triviale.
? Si on utilise la formule de quadrature du point du milieu, i.e.
Z tn+1
h
h
f (t , y(t ))d t h f t n + , y t n +
2
2
tn
on obtient un nouveau schma :
(
u 0 = y(y 0 ) = y 0 ,
u n+1 = u n + h f (t n + h/2, u n+1/2 ) n = 0, 1, 2, . . .
o u n+1/2 est une approximation de y(t n + h/2). Nous pouvons utiliser une prdiction dE ULER progressive pour approcher le u n+1/2 dans le terme f (t n + h/2, u n+1/2 ) par u n+1/2 = u n + (h/2) f (t n , u n ). Nous avons construit ainsi un
nouveau schma appel schma dE ULER modifi qui scrit
u 0 = y(y 0 ) = y 0 ,
u n+1/2 = u n + (h/2) f (t n , u n ),
G. Faccanoni
101
t n+1
tn
f (t , y(t ))d t
h
f (t n , y(t n )) + f (t n+1 , y(t n+1 ))
2
u 0 = y(y 0 ) = y 0 ,
u n+1 = u n + h f (t n , u n ),
Remarque
Considrons le schma dE ULER rtrograde. Si nous voulons calculer u n+1 , nous dfinissons la fonction
g (x) = x h f (t n+1 , x) u n
et nous cherchons un zro de g (x) en prenant par exemple la mthode de N EWTON. Ainsi nous pouvons poser x 0 = u 0 et
x m+1 = x m g (x m )/g 0 (x m ), m = 0, 1, . . . . Puisque g 0 (x) = 1 hx f (t n+1 , x), nous obtenons donc dans ce cas le schma
(
x0 = un ,
x m+1 = x m
x m h f (t n+1 ,x)u n
1hx f (t n+1 ,x)
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. 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.
A premire vue, il semble que le schma dE ULER progressif soit prfrable au schma dE ULER rtrograde puisque ce
dernier nest pas explicite. Cependant, nous verrons sur un exemple que le schma progressif peut engendrer des difficults
que le schma rtrograde nengendre pas.
Considrons le problme de C AUCHY dans le cas particulier o f (t , y(t )) = y(t ) avec un nombre rel positif donn.
Sa solution est trivialement y(t ) = y 0 e t . Puisque est positif, ce problme est numriquement bien pos : y(t ) dcrot
exponentiellement lorsque t tend vers linfini. Pour discrtiser la demi-droite t 0, nous choisissons un nombre rel h > 0
et nous posons t n = nh avec n = 0, 1, 2, . . . Nous allons tudier dans ce cadre les deux schmas dE ULER, savoir le schma
dE ULER progressif et le schma dE ULER rtrograde.
? Le schma dE ULER progressif devient
u n+1 = (1 h)u n ,
n = 0, 1, 2, . . .
u n+1 = (1 h)n u 0 ,
n = 0, 1, 2, . . .
et par suite
Bien que la solution y(t ) tend vers zro lorsque t tend vers linfini, nous voyons que si u 0 6= 0 et 1 h < 1 alors u n
tend vers linfini en alternant de signe lorsque t tend vers linfini. Nous dirons dans ce cas que le schma dE ULER
102
G. Faccanoni
progressif est instable. Pour viter de phnomne, il convient donc dimposer 1 1 h, ce qui aura pour effet de
limiter h
2
h .
Cette condition est appele condition de stabilit : elle limite le pas h davance en t lorsquon utilise le schma dE ULER
progressif.
? Le schma dE ULER rtrograde devient dans le cadre de notre exemple
(1 + h)u n+1 = u n ,
n = 0, 1, 2, . . .
et par suite
u n+1 =
1
u0 ,
(1 h)n+1
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.
Dfinition
La proprit
lim u n = 0
n+
est appele stabilit absolue. Les mthodes qui sont inconditionnellement absolument stables pour tout complexe de
partie relle ngative sont dites A-stables.
Les mthodes dE ULER implicite et de C RANK -N ICOLSON sont donc A-stables. Cest aussi le cas de nombreuses autres
mthodes implicites. Cette proprit rend les mthodes implicites attractives, bien quelles soient plus coteuses que les
mthodes explicites.
G. Faccanoni
103
TTTTTTTTTTTTT
Codes Python
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)
104
G. Faccanoni
62
63
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()
G. Faccanoni
105
Exercices
..............
.............
y 0 (t ) = y(t ),
y(0) = 1,
t k = t 0 + kt ,
y k = y k1 + F (t k1 , y k1 )t .
3 k
si t = 2.5 alors y k =
,
2
k
1
? si t = 1.5 alors y k =
,
2
k
1
? si t = 0.5 alors y k =
.
2
Ci-dessous sont traces sur lintervalle [0; 10], les courbes reprsentatives de la solution exacte et de la solution calcule par la mthode dE ULER explicite. En faisant varier le pas t nous pouvons constater que si t = 2.5 lerreur
commise entre la solution exacte et la solution calcule est amplifie dun pas lautre.
?
106
G. Faccanoni
y
3
2
Exacte
t = 0.5
t = 1.5
t = 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 y k+1 = (1 t )k+1 on dduit que
? si 0 < t < 1 alors la solution numrique est stable et convergente,
? si 1 < t < 2 alors la solution numrique oscille mais est encore convergente,
? si t > 2 alors la solution numrique oscille et divergente.
En effet, on sait que la mthode est absolument stable si et seulement si |1 t | < 1.
Remarque : la suite obtenue est une suite gomtrique de raison q = 1 t . On sait quune telle suite
? diverge si |q| > 1 ou q = 1,
? est stationnaire si q = 1,
? converge vers 0 |q| < 1.
Exercice 4.2
Lvolution de la concentration de certaines ractions chimiques au cours du temps peut tre dcrite par lquation
diffrentielle
1
y 0 (t ) =
y(t ).
1+ t2
Sachant qu linstant t = 0 la concentration est y(0) = 5, dterminer la concentration t = 2 laide de la mthode
dE ULER implicite avec un pas h = 0.5.
C ORRECTION . La mthode dE ULER implicite est une mthode dintgration numrique dEDO du premier ordre de la
forme y 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 k = t 0 + kh, k N. En rsolvant lquation non-linaire
y k+1 = y k + hF (t k+1 , y k+1 ),
on obtient une suite (y k )kN qui approche les valeurs de la fonction y en t k . Dans notre cas, lquation non-linaire scrit
y k+1 = y k
h
2
1 + t k+1
y k+1 .
yk
1 + 1+th2
k+1
G. Faccanoni
107
4 + (k + 1)2
yk .
6 + (k + 1)2
On obtient donc
k
tk
1
2
yk
5
0.5
1.0
1.5
2.0
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
52
20
= 13
15 7 = 21 2.48
6+32 7
2
4+4 52
20 52
520
= 22
21 = 231 2.25
6+42 21
La concentration t = 2 est denviron 2.25. Comparons avec le calcul exact : y(2) = 5e arctan(2) 1.652499838.
y
5
4
3
2
Exacte
E ULER implicite
Exercice 4.3
Soit > 0 un nombre rel positif et considrons le problme de C AUCHY
(
(4.1)
o y 0 est une valeur donne. Soit h > 0 un pas de temps donn, t i = i h pour i N et y i une approximation de y(t i ).
1. crire le schma du trapze (appel aussi de C RANCK -N ICHOLSON) permettant de calculer y i +1 partir de y i . Sous
quelle condition sur h le schma du trapze est-il A-stable ? Autrement dit, pour quelles valeurs de h la relation
lim y i = 0 a-t-elle lieu ?
i +
2. partir du schma du trapze, en dduire le schma de H EUN. Sous quelle condition sur h le schma de H EUN
est-il A-stable ?
C ORRECTION . Le problme (4.1) est un problme du type
trouver y : I R+ R tel que
(
y 0 (t ) = f (t , y(t )), t I ,
y(t 0 ) = y 0 .
Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur
h et, pour
chaque
nud t i = t 0 +i h (i N ), on cherche la valeur inconnue y i qui approche y(t i ). Lensemble de valeurs y 0 , y 1 , . . . reprsente
la solution numrique. Les schmas numriques permettent de calculer y i +1 partir de y i et il est donc possible de calculer
successivement y 1 , y 2 ,. . . en partant de y 0 .
1. Si nous intgrons lEDO y 0 (t ) = f (t , y(t )) entre t i et t i +1 nous obtenons
Z
y(t i +1 ) y(t i ) =
108
t i +1
f (t , y(t )) dt .
ti
G. Faccanoni
Soit y i une approximation de y(t i ) et y i +1 une approximation de y(t i +1 ). Si on utilise la formule du trapze, i.e.
Z ti +1
h
f (t , y(t )) dt
f (t i , y(t i )) + f (t i +1 , y(t i +1 ))
2
ti
on obtient le schma du trapze ou de C RANCK -N ICHOLSON
(
y 0 = y(t 0 ),
y i +1 h2 f (t i +1 , y i +1 ) = y i + h2 f (t i , y i ), pour i = 0, 1, 2, . . .
Il sagit dun schma implicite car il ne permet pas dcrire directement y i +1 en fonction de y i lorsque la fonction
f nest pas triviale. En appliquant le schma du trapze au problme (4.1) on obtient la suite dfinie par rcurrence
suivante
(
y = y(t 0 ),
0
1 + h2 y i +1 = 1 h2 y i .
Par induction on obtient
yi =
2 h
2 + h
i
y0.
2 h
2 + h < 1.
x
x
|q(x)| < 1 pour tout x R+ . La relation lim y i = 0 est donc satisfaite pour tout h > 0.
i +
2. Pour viter le calcul implicite de y i +1 dans le schma du trapze, nous pouvons utiliser une prdiction dE ULER
progressive et remplacer le y i +1 dans le terme f (t i +1 , y i +1 ) par yi +1 = y i + h f (t i , y i ). Nous avons construit ainsi le
schma de H EUN. Plus prcisment, cette mthode scrit
(
y 0 = y(t 0 ),
y i +1 = y i + h2 f (t i , y i ) + f t i +1 , y i + h f (t i , y i , pour i = 0, 1, 2, . . .
En appliquant le schma de H EUN au problme (4.1) on obtient la suite dfinie par rcurrence suivante
(
y 0 = y(t 0 ),
(h)2
y i +1 = 1 h + 2 y i .
Par induction on obtient
(h)2
y0.
y i = 1 h +
2
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 y i = 0 est donc satisfaite si et seulement si
i +
h<
G. Faccanoni
2
.
109
Exercice 4.4
On considre le problme de C AUCHY
(
(4.2)
y(0) = 0,
o m est un entier impair.
1. Montrer que le problme (4.2) possde une solution unique globale.
2. Soit t > 0 un pas de temps donn, soit t i = i t pour i N et y i une approximation de y(t i ). crire le schma
dE ULER rtrograde permettant de calculer y i +1 partir de y i .
3. partir du schma obtenu au point prcdent, crire un seul pas de la mthode de N EWTON pour calculer une
nouvelle approximation de y i +1 . En dduire ainsi un nouveau schma explicite.
C ORRECTION .
1. Le problme (4.2) est un problme du type
trouver y : I R+ R tel que
(
y 0 (t ) = f (t , y(t )), t I ,
y(t 0 ) = y 0 ,
Si la fonction f (t , y) est
1.1. continue par rapport ses deux variables ;
1.2. lipschitzienne par rapport sa deuxime variable, cest--dire quil existe une constante positive L (appele
constante de Lipschitz) telle que
| f (t , y 1 ) f (t , y 2 )| L|y 1 y 2 |,
t I ,
y 1 , y 2 R,
f (t 1 , y(t 1 )) f (t 2 , y(t 2 )) (t 1 t 2 ) 0
t 1 , t 2 R.
y 0 (t ) = f (t , y(t )), t I ,
y(t 0 ) = y 0 .
Le principe des mthodes dapproximation est de subdiviser lintervalle I en sous-intervalles de longueur t et, pour
chaque
nud
t n = t 0 + i t (i 0 ), on cherche la valeur inconnue y i qui approche y(t i ). Lensemble de valeurs
y 0 , y 1 , . . . reprsente la solution numrique. Le schma de E ULER rtrograde tablit une relation entre y i et y i +1 et
il est donc possible de calculer successivement y 1 , y 2 ,. . ., en partant de y 0 .
Si nous intgrons lEDO y 0 (t ) = f (t , y(t )) entre t i et t i +1 nous obtenons
Z
y(t i +1 ) y(t i ) =
t i +1
f (t , y(t )) dt .
ti
Soit y i une approximation de y(t i ) et y i +1 une approximation de y(t i +1 ). Si on utilise la formule du rectangle droite,
i.e.
Z
t i +1
ti
f (t , y(t )) dt t f (t i +1 , y(t i +1 ))
y 0 = 0,
y i +1 = y i + t (y i +1 )m + cos(t i +1 ) .
110
G. Faccanoni
y i +1 = y i + t y im+1 + cos(t i +1 ) .
g (x) = x + t x m t cos(t i +1 ) + y i .
La mthode de N EWTON pour approcher le zro de g scrit
x k + t x km t cos(t i +1 ) + y i
g (x k )
x k+1 = x k 0
= xk
.
g (x k )
1 + mt x km1
Le premier pas de la mthode de N EWTON scrit donc
x1 = x0
x 0 + t x 0m t cos(t i +1 ) + y i
1 + mt x 0m1
Choisissons x 0 = y i comme valeur de dpart. Nous pouvons utiliser x 1 comme approximation de y i +1 et on obtient
le schma
y 0 = 0,
y i + t y im t cos(t i +1 ) + y i
.
y i +1 =
1 + mt y im1
Exercice 4.5
Soit le problme de C AUCHY :
(
u 0 (t ) + 10u(t ) = 0, t R,
(4.3)
u(0) = u 0 > 0.
1. Montrer quil existe une unique solution globale u C (R, R) que vous prciserez explicitement.
2. Soit le schma numrique de Cranck-Nicholson dfini par la suite (u n )nN vrifiant
u n+1 u n
+ 5(u n+1 + u n ) = 0,
t
n N,
t 0
7. Soit (v n )nN la suite dfinissant le schma dE ULER explicite pour lquation diffrentielle (4.3). Montrer que
lim v n = u 0 e 10T .
t 0
(4.4)
G. Faccanoni
111
plus, u est dcroissante si u 0 > 0 et croissante si u 0 < 0. On en dduit par le thorme des extrmits que la solution
u admet un prolongement sur R solution de lEDO.
Pour en calculer la solution, on remarque quil sagit dune EDO variables sparables. Lunique solution constante
est u(t ) 0, toutes les autres solutions sont du type u(t ) = C e 10t . En prenant en compte la condition initiale on
conclut que lunique solution du problme de C AUCHY est u(t ) = u 0 e 10t dfinie pour tout t R.
y
3
2
1
0
2
3
2. Soit le schma numrique de Cranck-Nicholson dfini par la suite (u n )nN vrifiant
u n+1 u n
+ 5(u n+1 + u n ) = 0,
t
n N,
pour t > 0 fix. On obtient une formule de rcurrence rendue explicite par un calcul lmentaire :
u n+1 = 5t u n+1 5t u n + u n
do
1 5t
un .
1 + 5t
u n+1 =
Il sagit dune suite gomtrique de raison
r=
3. Pour tout t > 0 on a
r=
1 5t
.
1 + 5t
1 5t
10t
= 1
1 + 5t
1 + 5t
et
1 < 1
10t
< 1.
1 + 5t
10t
>0
1 + 5t
1
t < .
5
1 5t
un =
1 + 5t
n
u0 .
et en observant que
15t tT 1
1+5t
15t n
1+5t
15t tT
1+5t
k
e
)
(T t ) ln(15t )ln(1+5t
t
k
e
k
e (T t )
112
5 ln(15t )5 ln(1+5t )
5t
ln(15t )ln(1+5t )
t
k
eT
5 ln(15t )5 ln(1+5t )
5t
e 10T
e 10T
G. Faccanoni
on conclut que
lim u n = u 0 lim
t 0
t 0
1 5t
1 + 5t
= u 0 e 10T .
(1 10t ) t 1
k
(1 10t )n
ln(110t )
t
(1 10t ) t
k
eT
e (T t )
k
ln(110t )
t
k
ln(110t )
e 10(T t ) 10t
e 10T
e 10T
ln(110t )
10t
e 10T
do
t 0
t 0
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.6
Soit le problme de C AUCHY :
(
u 0 (t ) + u 5 (t ) = 0, t R+ ,
u(0) = u 0 > 0.
(4.5)
n N,
(4.6)
G. Faccanoni
un
1 + u n4 t
n N.
113
3. On tudie la suite
(
u 0 > 0,
u n+1 =
un
,
1+u n4 t
n N,
u n+1
un
1
1+u n4 t
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 t donc ` = 0. Ce schma est donc inconditionnellement A-stable.
Exercice 4.7
Soit le problme de C AUCHY :
(
u 0 (t ) + sin(u(t )) = 0, t R,
(4.7)
u(0) = u 0 > 0.
1. Montrer quil existe une unique solution globale u C (R, R).
2. crire le schma le schma dE ULER explicite pour ce problme de C AUCHY en explicitant vos notations.
3. Montrer que la suite (u n )nN construite par ce schma vrifie
|u n+1 | |u n | + t ,
n N,
|u n | |u 0 | + nt ,
n N.
C ORRECTION .
Cest un problme de C AUCHY du type
(
u 0 (t ) = f (t , u(t )), t R,
(4.8)
u(0) = u 0 > 0,
avec f (t , u(t )) = g (u(t )) = sin(u(t )).
1. Comme g C 1 (R, R), daprs C AUCHY-Lipschitz, il existe T > 0 et une unique solution u C 1 ([T, T ], R). Par rcurrence, en exploitant lEDO et la rgularit de g , on grimpe en rgularit sur u et u C ([T, T ], R).
Toutes les fonctions constante u(t ) = k pour k Z sont solutions de lquation diffrentielle car g (k) = 0. Pour
(k + 1)] ; par lunicit de la solution du problme de C AUCHY on a u(t )
u 0 donn, soit k Z tel que u 0 [k;
[k; (k + 1)] pour tout t [T, T ] (car deux trajectoires ne peuvent pas se croiser), i.e. la solution est borne. On en
dduit par le thorme des extrmits que la solution u admet un prolongement sur R solution de lEDO.
2. Soit t > 0 fix et t n = nt pour tout n Z. Le schma dE ULER explicite pour lEDO donne construit la suite
u n+1 = u n t sin(u n ),
n N.
114
G. Faccanoni
Pour calculer la temprature chaque instant on a besoin de connatre la constante K . Cette valeur peut tre dduite en
constatant quaprs 5 minutes le caf est 50C, cest--dire
T (5) = 50.
Calculer la solution exacte de ce problme de C AUCHY et la comparer avec la solution approche obtenue par la mthode
dE ULER explicite.
C ORRECTION .
Solution exacte
1. On commence par calculer toutes les solutions de lEDO. tant une quation diffrentielle du premier ordre, la famille de solutions dpendra dune constante quon 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
D = 50
T (t ) = 25 + 50e K t
K =
ln(2)
0.14
5
T (t ) = 25 + 50e
ln(2)
5 t
ln(2)
5 t
T
75
50
25
0
5
10
15 t
Solution approche par la mthode dEuler progressive Supposons de connatre K mais de ne pas vouloir/pouvoir
calculer la fonction T (t ). Grce la mthode dE ULER on peut estimer la temprature diffrentes instantes t i en
faisant une discrtisation temporelle du futur (i.e. on construit une suite de valeurs {t i = 0 + i t }i ) et en construisant
une suite de valeurs {Ti }i o chaque Ti est une approximation de T (t i ). Si on utilise la mthode dE ULER, cette suite
de temprature est ainsi construite :
(
Ti +1 = Ti ln(2)
5 t (Ti 25),
T0 = 75,
quon peut rcrire comme
(
Ti +1 = (1 ln(2)
5 t )Ti + 5 ln(2)t ,
T0 = 75.
1. Exemple avec t = 5 :
G. Faccanoni
115
T
75
50
25
0
5
ti
0.000000
5.000000
10.000000
15.000000
10
T (t i )
75.000000
50.000000
37.500000
31.250000
Ti
75.000000
40.342641
29.707933
26.444642
15 t
T (t i ) Ti
0.000000
9.657359
7.792067
4.805358
2. Exemple avec t = 1 :
T
75
50
25
0
5
ti
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
10.000000
11.000000
12.000000
13.000000
14.000000
15.000000
116
10
T (t i )
75.000000
68.527528
62.892914
57.987698
53.717459
50.000000
46.763764
43.946457
41.493849
39.358729
37.500000
35.881882
34.473229
33.246924
32.179365
31.250000
Ti
75.000000
68.068528
62.097962
56.955093
52.525176
48.709377
45.422559
42.591391
40.152707
38.052095
36.242691
34.684123
33.341618
32.185225
31.189141
30.331144
15 t
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
G. Faccanoni
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
ln 37
1
37
37
20
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 )
?
G. Faccanoni
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 .
117
D = T0
T (t ) = T0 e K 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.10
Un modle pour la diffusion dune pidmie se base sur lhypothse que sa vitesse de propagation est proportionnelle
au nombre dindividus infects et au nombre dindividus sains.
Si on note I (t ) 0 le nombre dindividus infects linstant t 0 et A > 0 le nombre dindividus total, il existe une
constante k R+ telle que I 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 ce schma est inconditionnellement A-stable.
C ORRECTION .
I 0 (t ) = f (t , I (t )), t R+ ,
I (0) = I 0 > 0,
(4.9)
118
G. Faccanoni
1 + k At
In .
1 + k I n t
(1 + k At )I n (1 + k I n t )A
In A
A
De Akt + 1
ln(363/38)
35000
A I0
I0
et t = 1 :
I
A
Exacte
Approche avec t = 1
I0
t
Exercice 4.11
Considrons une population de bactries. Soit p(t ) le nombre dindividus ( 0) linstant t 0. Un modle qui dcrit
lvolution de cette population est lquation de la logistique : soit k et h deux constantes positives, alors p(t ) 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.
C ORRECTION .
Solution exacte
G. Faccanoni
119
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
=
=
=
=
=
=
kD
1 + hDe 0k
D=
p0
.
k hp 0
p(t ) =
si p 0 = 0,
khp 0 +h
sinon.
si p 0 = hk ,
p 0 e kt
3
2
1
0
1
Solution approche Supposons de ne pas vouloir/pouvoir calculer la fonction p(t ). Grce la mthode dE ULER on
peut estimer le nombre dindivus diffrentes instantes t i en faisant une discrtisation temporelle du futur (i.e.
120
G. Faccanoni
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,
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
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)!
h m (m)
y (x + h) y (m) (x) .
(m + 1)!
y 0 (x) + 4y(x) = x 2 ,
y(0) = 1.
Estimer y(0.1) par la mthode de Taylor dordre 4 avec un seul pas dintgration.
G. Faccanoni
121
C ORRECTION .
1
1
1 00
y (0)h 2 + y 000 (0)h 3 + y I V (0)h 4 .
2!
3!
4!
y (x) = 4y(x) + x ,
y 0 (0) = 4,
y 00 (0) = 16,
y I V (0) = 248.
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'
122
248 I V
248
y (0.1) y I V (0) =
(166.259 248) = 0.000068.
960000
960000
G. Faccanoni
n
mentaux (x i , y i ) i =0 et lensemble de points (x i , f (x i )) i =0 .
Nous avons dj vu au chapitre sur linterpolation quaugmenter le degr dun polynme dinterpolation de Lagrange
namliore pas toujours lapproximation dune fonction donne. Ce problme peut tre rsolu avec linterpolation composite (avec des fonctions linaires par morceau ou des splines). Nanmoins, aucune des deux mthodes nest adapte
lextrapolation dinformations partir des donnes disponibles, cest--dire, la gnration de nouvelles valeurs en des
points situs lextrieur de lintervalle contenant les nuds dinterpolation. Un autre cas o ni linterpolation de L A GRANGE ni linterpolation composite nest daucune aide est le cas o les donnes sont bruites. Lorsquun chercheur met
au point une exprience (parce quil a quelques raisons
de croire que les deux grandeurs x et y sont lies par une fonction
n
f ), il rcolte des donnes sous la forme de points (x i , y i ) i =0 mais en gnrale ces donnes sont affectes par des erreurs
de mesure. Lorsquon en fait une reprsentation graphique il cherche f pour quelle sajuste le mieux possible aux points
observs. Soit d i = y i f (x i ) lcart vertical du point (x i , y i ) par rapport la fonction f . La mthode des moindres carrs
est celle qui choisit f de sorte que la somme des carrs de ces dviations soit minimale.
n
On considre un ensemble de points exprimentaux (x i , y i ) i =0 et on suppose que les deux grandeurs x et y sont lies
par une relation affine, cest--dire de la forme y = mx + q pour certaines valeurs de m et q, au moins approximativement
(autrement dit, lorsquon affiche ces points dans un plan cartsien, les points ne sont pas exactement aligns mais cela
semble tre d des erreurs de mesure). On souhaite alors trouver les constantes m et q pour que la droite dquation
y = mx + q sajuste le mieux possible aux points observs. Soit d i = y i (mx i + q) lcart vertical du point (x i , y i ) par
rapport la droite. La mthode des moindres carrs est celle qui choisit m et q de sorte que la somme des carrs de ces
dviations soit minimale.
n
X
i =1
d i2 =
n
X
(y i mx i q)2 .
i =0
Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrifient
!
n
X
E
(m, q) = 2
(y i (mx i + q))x i ,
m
i =0
E
m
E
q
= 0. Puisque
!
n
X
E
(m, q) = 2
(y i (mx i + q)) ,
q
i =0
123
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
Pn
Pn
Pn
i =0 x i
i =0 y i (n + 1)
i =0 (x i y i )
m=
Pn
2
P
x i (n
+1) ni=0xi2
i
=0
Pn
Pn
P
Pn
xi
x i y i ni=0 y i
x i2
i
=0
i
=0
i
=0
q =
Pn
2
Pn
2
i =0 x i (n + 1)
i =0 x i
(P
n
P
P
y i x i m ni=1 x i2 + q ni=0 x i = 0
Pn
i =0 y i m i =1 x i + (n + 1)q = 0
Pin=0
Si on note
x=
n
1 X
xi ,
n + 1 i =0
x2 =
n
1 X
x2,
n + 1 i =0 i
xy =
n
1 X
xi y i ,
n + 1 i =0
y=
n
1 X
yi .
n + 1 i =0
alors
m=
x y xy
(x)2 x 2
q=
y x2 x x y
x 2 (x)2
La droite dquation
y = mx + q
sappelle droite de rgression de y par rapport x et passe par le point moyen (x, y).
Remarque
Cette criture est susceptible de gnrer des erreurs de roundoff (les deux termes dans chaque numrateur ainsi quau
dnominateur sont presque gaux). Il est alors mieux calculer m et q comme suit (ce qui est quivalent) :
Pn
y i (x i x)
m = Pni =0
q = y mx.
i =0 x i (x i x)
Remarque
Notons 2x = x 2 (x)2 la variance des abscisseset c = x y x y le coefficient de corrlation. La droite de rgression de y
par rapport x a alors quation
c
(x x) y.
y=
x
Exemple
Si on a le points suivantes
x
y
1
0.9
2
1.5
3
3.5
4
4.2
5
4.9
n
sur lensemble initial (x i , y i ) i =0 . En effet, si on note d i = y i ae kxi et D i = ln(y i ) (kx i + ln(a)), lorsquon fait une
n
rgression linaire sur lensemble (x i , ln(y i )) i =0 on minimise D i et non d i .
124
G. Faccanoni
n
On considre un ensemble de points exprimentaux (x i , y i ) i =0 et on suppose que les deux grandeurs x et y sont
P
j
lies, au moins approximativement, par une relation polynomiale, cest--dire de la forme y = m
j =0 a j x pour certaines
Pm
valeurs de a j . On souhaite alors trouver les m + 1 constantes a j pour que le polynme dquation y = j =0 a j x j sajuste le
P
j
mieux possible aux points observs. Soit d i = y i m
j =0 a j x i lcart vertical du point (x i , y i ) par rapport au polynme. La
mthode des moindres carrs est celle qui choisit les a j de sorte que la somme des carrs de ces dviations soit minimale.
Pour cela, on doit minimiser la fonction E : Rm+1 R+ dfinie par
E (a 0 , a 1 , . . . , a m ) =
n
X
i =1
d i2
n
X
i =0
yi
m
X
j =0
!2
j
a j xi
Pour minimiser E on cherche dabord ses points stationnaires, i.e. les points qui vrifient
E
a j
= 0 pour j = 0, . . . , m. Puisque
!!
m
n
X
X
E
j
0
a j xi ,
xi y i
(a 0 , a 1 , . . . , a m ) = 2
a 0
j =0
i =0
!!
m
n
X
X
E
j
1
a j xi ,
xi y i
(a 0 , a 1 , . . . , a m ) = 2
a 1
j =0
i =0
..
.
!!
m
n
X
X
E
j
m
a j xi ,
xi y i
(a 0 , a 1 , . . . , a m ) = 2
a m
j =0
i =0
on obtient alors le systme linaire de (m + 1) quations en les (m + 1) inconnues a 0 , a 1 , . . . , a m suivant
a0 (a 0 , a 1 , . . . , a m ) = 0
E (a 0 , a 1 , . . . , a m ) = 0
a 1
...
E
a m (a 0 , a 1 , . . . , a m ) = 0
Pn
Pn
Pn
m
a 0 (n + 1) + a 1 i =0 x i + + a m i =0 x i = i =0 y i
P
P
P
P
a 0 n x i + a 1 n x 2 + + a m n x m+1 = n y i x i
i =0
i =0 i
i =0 i
i =0
.
..
P
P
P
Pn
Pn
Pn
m
(n + 1)
...
a0
i =0 x i
i =0 x i
i =0 y i
P
P
P
P
n x
n
n
n
2
m+1
...
i =0 i
a 1 i =0 y i x i
i =0 x i
i =0 x i
. =
.
.
.
.
..
..
..
..
Pn
Pn
Pn
Pn
m
m
m+1
2m
y
x
a
x
x
.
.
.
x
m
i =0 i i
i =0 i
i =0 i
i =0 i
Exemple
Remarque
Quand m = n, le polynme des moindres carrs concide avec le polynme dinterpolation de Lagrange.
G. Faccanoni
125
Exercices
..............
.............
Exercice 5.1
1.0
6.008
2.5
15.722
3.5
27.130
4.0
33.772
1.1
5.257
1.8
9.549
2.2
11.098
3.7
28.828
calculer la droite et la parabole de rgression. Comparer ensuite les erreurs des chaque rgression.
C ORRECTION .
1. La droite de rgression a quation y = mx + q avec
P6
m = P7i =0
y i (x i x)
i =0 x i (x i
o x =
1
7
P6
i =0 x i
= 2.0125 et y =
1
7
x)
q = y m x 3.37833528,
8.420042377,
P6
i =0 y i
i =0
8
P
6 xi
P6i =0 2
i =0 x i
P6
x
P6i =0 2i
x
Pi6=0 i3
i =0 x i
P6
P6
x 2 a0
y
Pi6=0 i3
P6 i =0 i
x a 1 = i =0 y i x i
P6
Pi6=0 i4
2
a2
i =0 y i x i
i =0 x i
8
16.1
44.79
i.e.
16.1
44.79
141.311
44.79
a0
108.536
141.311 a 1 = 322.7425
481.5123 a 2
1067.97905
et on obtient
a 0 = 0.744611871628180655,
a 1 = 2.14480468957977077,
a 2 = 1.51926210146774388.
Lerreur est
6
X
i =0
(y i (a 0 + a 1 x i + a 2 x i2 ))2 = 5.715921703.
y
40
30
20
10
Exercice 5.2
Le tableau ci-dessous donne la conductivit thermique k du sodium pour diffrentes valeurs de la temprature. Calculer
la parabole de meilleur approximation.
T (C)
k
126
79
1.00
190
0.932
357
0.839
524
0.759
690
0.693
G. Faccanoni
C ORRECTION .
P4
x
P4i =0 2i
x
Pi4=0 i3
i =0 x i
6
P
4 xi
P4i =0 2
i =0 x i
P4
P4
x 2 a0
y
Pi4=0 i3
P4 i =0 i
x a 1 = i =0 y i x i
P4
Pi4=0 i4
2
a2
i =0 y i x i
i =0 x i
8
16.1
44.79
i.e.
16.1
44.79
141.311
44.79
a0
108.536
141.311 a 1 = 322.7425
481.5123 a 2
1067.97905
et on obtient
a 0 = 0.744611871628180655,
a 1 = 2.14480468957977077,
a 2 = 1.51926210146774388.
Lerreur est
6
X
i =0
(y i (a 0 + a 1 x i + a 2 x i2 ))2 = 5.715921703.
Exercice 5.3
La viscosit cinmatique de leau varie en fonction de la temprature comme dans le tableau suivant :
T (C)
(103 m2 s1 )
0
1.79
21.1
1.13
37.8
0.696
54.4
0.519
71.1
0.338
87.8
0.321
100
0.296
Comparer les valeurs (10 ), (30 ), (60 ), (90 ) approches par linterpolation de L AGRANGE et par le polynme de
meilleur approximation de degr 3.
C ORRECTION .
6
On a la famille de points (Ti , i ) i =0 . Le polynme de L AGRANGE scrit
`(T ) =
6
6 T T
X
Y
j
i
T
i
j
i =0
j =0
j 6=i
et on obtient
`(T ) =
tandis que le polynme de meilleur approximation de degr 3 scrit
r (T ) = a 0 + a 1 T + a 2 T 2 + a 3 T 3
o a 0 , a 1 , a 2 , a 3 sont solution du systme linaire
6
P
6 Ti
P i =0
6 T2
Pi6=0 i3
i =0 Ti
et on obtient
P6
T
P6i =0 i2
T
P6i =0 i3
T
Pi6=0 i4
i =0 Ti
P6
T2
Pi6=0 i3
T
P6i =0 i4
T
Pi6=0 i5
i =0 Ti
P6
P6
T 3 a0
Pi6=0 i4
P6 i =0 i
T
a 1 = P i =0 i Ti
Pi6=0 i5
6
2
a2
T
T
Pi6=0 i i3
Pi6=0 i6
a
T
3
i =0 i Ti
i =0 i
a 0 = 0.914534618675843625,
a = 0.914534618675843625,
1
2 = 0.000620138768106035594,
a 3 = 0.000620138768106035594.
On a alors
`(10 ) =
r (10 ) = 1.004300740
`(30 )
r (30 ) = 0.9114735501
`(60 )
r (60 ) = 0.9114735501
`(90 )
r (90 ) = 0.249145396
n
On considre un ensemble de points exprimentaux (x i , y i ) i =0 et on suppose que les deux grandeurs x et y sont
lies, au moins approximativement, par une relation de la forme y = a sin( 2 x) + b cos( 2 x). On souhaite alors trouver les
constantes a et b pour que la courbe dquation y = a sin( 2 x) + b cos( 2 x) sajuste le mieux possible aux points observs
G. Faccanoni
127
n
X
i =0
d i2 .
C ORRECTION .
!
n
X
E
y i a sin 2 x i + b cos 2 x i sin 2 x i ,
(a, b) = 2
a
i =0
!
n
X
E
y i a sin 2 x i + b cos 2 x i cos 2 x i ,
(a, b) = 2
b
i =0
on obtient
(
E
a (a, b) = 0
E
b (a, b) = 0
(P
n
y i a sin 2 x i + b cos 2 x i sin( 2 x i ) = 0
i
=0
Pn
cos( 2 x i ) = 0
i =0 y i a sin 2 x i + b cos 2 x i
(P
P
n
a sin 2 x i + b cos 2 x i sin( 2 x i ) = ni=0 y i sin( 2 x i )
i
=0
Pn
P
cos( 2 x i ) = ni=0 y i cos( 2 x i )
i =0 a sin 2 x i + b cos 2 x i
Pn
Pn
Pn
sin2 x i
a
i =0 y i sin 2 x i .
i =0Psin 2 x i cos 2 x i
P
Pn i =0 2
=
n
n
2
b
i =0 cos 2 x i
i =0 sin 2 x i cos 2 x i
i =0 y i cos 2 x i
Si on note
U=
n
X
i =0
sin2
2 xi
V=
n
X
sin
i =0
2 xi
cos
2 xi
W=
n
X
cos2
i =0
2 xi
P=
n
X
i =0
y i sin
2 xi
Q=
n
X
i =0
y i cos
2 xi
U
V
V
W
a
P
=
b
Q
W P V Q
,
UW V 2
b=
UQ V P
.
UW V 2
Exercice 5.5
La mthode de rgression stend facilement
desdonnes qui dpendent de deux ou plusieurs variables. On considre
n
un ensemble de points exprimentaux (x i , y i , z i ) i =0 et on suppose que les trois grandeurs x, y et z sont lies, au moins
approximativement, par une relation affine de la forme z = a + bx + c y. On souhaite alors trouver les constantes a, b et c
pour que le plan dquation z = a + bx + c y sajuste le mieux possible aux points observs (on parle de plan de meilleure
approximation).
Soit d i = z i (a + bx i + c y i ) lcart vertical du point (x i , y i , z i ) par rapport au plan. La mthode de rgression (ou des
moindres carrs) est celle qui choisit a, b et c de sorte que la somme des carrs de ces dviations soit minimale. Pour
cela, on doit minimiser la fonction E dfinie par
E : R3 R+
(a, b, c) 7 E (a, b, c) =
n
X
i =0
d i2 .
128
G. Faccanoni
5
2. Calculer lquation du plan de meilleure approximation pour lensemble (x i , y i , z i ) i =0 o
i
xi
yi
zi
0
0
0
1
0
1
2
3
2
2
1
0
3
2
0
0
1
2
4
2
1
1
2
5
2
2
1
n
X
E
(z i (a + bx i + c y i )) ,
(a, b, c) = 2
a
i =0
!
n
X
E
(z i (a + bx i + c y i ))x i ,
(a, b, c) = 2
b
i =0
!
n
X
E
(z i (a + bx i + c y i ))y i ,
(a, b, c) = 2
c
i =0
on obtient
E
a (a, b, c) = 0
E
b (a, b, c) = 0
E
c (a, b, c) = 0
Pn
Pi =0 (z i (a + bx i + c y i )) = 0
n
i =0 (z i (a + bx i + c y i ))x i = 0
Pn
i =0 (z i (a + bx i + c y i ))y i = 0
Pn
Pn
zi
Pi =0 (a + bx i + c y i ) = i =0P
n
n
2
(ax
+
bx
+
c
y
x
)
=
i
i i
i =0
i =0 z i x i
i
P
Pn
n
2
i =0 (a y i + bx i y i + c y i ) = i =0 z i y i
Pn
Pn
Pn
(n + 1)
x
y
z
a
Pn
Pni =0 2i
Pni =0 i
Pni =0 i
x
x i y i b = i =0 z i x i .
i =0 x i
Pn
Pn
Pni =0 i
Pi =0
n
2
y
x
y
c
i
i
i
i =0 z i y i
i =0
i =0
i =0 y i
n
X
xi = 7
i =0
n
X
n
X
yi = 4
i =0
i =0
n
X
7
xi zi =
2
i =0
xi y i = 6
i =0
n
X
n +1 = 6
i =0
zi =
x i2 = 13
n
X
y i zi =
i =0
n
X
i =0
11
2
9
2
y i2 = 6
6
7
4
7
13
6
11
4 a
/2
6 b = 7/2
9
6 c
/2
6
7
4
7
13
6
4
6
6
L 2 L 2 76 L 1
/2
6
L 3 L 3 23 L 1
7
/2 0
9
/2
0
11
7
29
/6
4
/3
4
4
/3
10
/3
/2
6
8
L 3 L 3 29
L2
35/12 0
5
/6
0
11
7
29
/6
0
4
4
/3
86
/29
/2
35/12
95
/58
11
123
1.430232557
a
/86
b = 65/86 0.7558139503 .
95
/172
0.5523255766
c
G. Faccanoni
129
6. Systmes linaires
Rsoudre lensemble dquations linaires Ax = b
(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
131
6. Systmes linaires
n
X
j =1,...,n i =1
kAk = max
|a i j |,
n
X
i =1,...,n j =1
|a i j |.
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.
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.
On dit quune matrice carre A = (a i j )1i , j n est TRIANGULAIRE SUPRIEURE (respectivement triangulaire INFRIEURE)
si i > j = a i j = 0 (resp. si i < j = a i j = 0).
132
G. Faccanoni
6. Systmes linaires
Si la matrice est triangulaire suprieure (resp. triangulaire infrieure), on dira que le systme linaire est un systme
triangulaire suprieur (resp. triangulaire infrieur).
Pour rsoudre le systme triangulaire Ax = b,
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
!
n
P
1
ai j x j .
xi = a bi
ii
bn
a nn
j =i +1
Proprit
Le dterminant dune matrice triangulaire est gal au produit des lments diagonaux.
La mthode du pivot de Gauss transforme le systme Ax = b en un systme quivalent (cest--dire ayant la mme
solution) de la forme Ux = y, o U est une matrice triangulaire suprieure et y est un second membre convenablement
modifi. Enfin on rsout le systme triangulaire Ux = y.
Soit A = (a i j ) 1i n la matrice des coefficients du systme Ax = b. En permutant ventuellement deux lignes du systme,
1 j p
ai k
Lk
a kk
Exemple
Soit le systme linaire
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.
2 2L 1
x 1 +2x 2 +3x 3 +4x 4 = 1 LL 2 L
3 L 3 3L 1
2x 1 +3x 2 +4x 3 +x 4 = 2 L 4 L 4 4L 1
x 2 2x 3 7x 4 = 0
3x
+4x
+x
+2x
=
3
2x
2
3
4
2 8x 3 10x 4 = 0
1
4x 1 +x 2 +2x 3 +3x 4 = 4
7x 2 10x 3 13x 4 = 0
L 3 L 3 2L 2
1
x 2 2x 3 7x 4 = 0 L 4 L 4 +L 3
x 2 2x 3 7x 4 = 0
L 4 L 4 7L 2
4x
+4x
=
0
4x 3 +4x 4 = 0
3
4
4x 3 +36x 4 = 0
40x 4 = 0
donc x 4 = 0, x 3 = 0, x 2 = 0 et x 1 = 1.
2. Rsolution par la mthode du pivot de Gauss en criture matricielle :
1
2
[A|b] =
3
4
2
3
4
1
3
4
1
2
4
1
2
3
L 2 L 2 2L 1
1
L 3 L 3 3L 1
2
4 4L 1
L4L
3
4
1
0
0
0
2
1
2
7
3
4
1
2
7
0
8 10 0
10 13 0
1
2
3
L 3 L 3 2L 2
0 1 2
L 4 L 4 7L 2
0
0
4
0
0
4
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.
G. Faccanoni
133
6. Systmes linaires
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,
P
? diagonale dominante par lignes si |a i i | nj=1 |a i j |, pour i = 1, . . . , n ( diagonale dominante stricte par lignes si lingalit est stricte),
j 6=i
Pn
j =1
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.
134
G. Faccanoni
6. Systmes linaires
`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 .
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
1
x 2 = 2
2 x 3 3
3 x4
4
et
1
2
3
4
2
3
4
1
3
4
1
2
10
4 x1
1
x 2 = 10 .
2 x 3 10
x4
10
[A|b] =
3
4
2
3
4
1
3
4
1
2
4
1
2
3
L 2 L 2 2L 1
1
L 3 L 3 3L 1
2
4 4L 1
L4L
3
4
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
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
1
0
0
0
donc
x 4 = 0,
G. Faccanoni
x 3 = 0,
x 2 = 0,
x 1 = 1.
135
6. Systmes linaires
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
0
40
1
0
0
0
2
1
0
0
3
2
4
4
4
7
4
36
10
10
0
40
donc
x 1 + 2x 2 + 3x 3 + 4x 4 = 10
x 2x 7x = 10
2
3
4
4x
+
4x
=
0
3
4
40x 4 = 40
x 4 = 1,
x 3 = 1,
x 2 = 1,
x 1 = 1.
2. Factorisation de la matrice A :
1
2
3
4
2
3
4
1
2 2L 1
1
4 LL 2 L
3 L 3 3L 1
1
4 4L 1 2
L4L
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
7
4 +L 3 2
L4L
3
4
3
2
4
4
36
2
1
2
7
3
2
4
1
4
7
40
donc
1
2
L=
3
4
0
1
2
7
0
0
1
1
1
0
U=
0
0
0
0
2
1
0
0
3
2
4
0
4
7
40
0
0
1
1
1
0 y1
0
y 2 = 2
0 y 3 3
4
1 y4
2
1
0
0
3
2
4
0
4
x1
1
x 2 0
7
=
4 x 3 0
40 x 4
0
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
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
x1
10
4
7
x 2 = 10
4 x 3 0
40 x 4
40
x 4 = 1,
x 3 = 1,
136
G. Faccanoni
6. 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
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
G. Faccanoni
137
6. Systmes linaires
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.
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
138
G. Faccanoni
6. Systmes linaires
de convergence, la mthode de G AUSS -S EIDEL est plus rapide que celle de J ACOBI.
Exemple
Considrons le systme linaire
4
1
2
mis sous la forme
2
2
1
4
1 x
0 y = 2
9
4 z
y
z
x = 1 2 4 ,
x
y = 1+ 2 ,
y
z = 94 x2 4 .
3
3
9
1 2/2 4/2
1 20 04
1 21 4/4
1
1/16
1/8
1
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
G. Faccanoni
139
6. Systmes linaires
Exercices
..............
.............
Exercice 6.1
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 Gauss.
4. Factoriser la matrice A (sans utiliser la technique du pivot) et rsoudre les systmes linaires.
C ORRECTION .
1. Mthode de J ACOBI :
2
(0)
x = 2 ,
2
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
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
35
(2)
0(2 18 +01) 35
/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 Gauss :
2
=
(A|b)
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
1 0 0 y1
12
1
y2 = 0
1
0
=
y 1 = 12,
3
1
1
y
6
1
3
6
2
140
1
1
3
6
y 2 = 4,
y3 = 6
G. Faccanoni
6. 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 6.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
y i = bi
iX
1
`i j y j ,
i = 2, . . . , n
j =1
!
n
X
yn
1
xn =
,
xi =
yi
ui j x j ,
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
L
3 1
1 0
0
3
1
8
/3
4/3
1 L L / L
3
3
3
2
/
4/3 0
8
/3
0
4
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 6.3
Calculer, lorsquil est possible, la factorisation LU des matrices suivantes :
1 2 3
1 2 3
A = 2 4 5 ,
B = 7 8 9 .
7 8 9
2 4 5
Comment peut-on modifier lalgorithme de factorisation pour pouvoir toujours aboutir une factorisation LU lorsque
la matrice est inversible ?
G. Faccanoni
141
6. Systmes linaires
C ORRECTION . Pour une matrice quelconque A Mn,n (R), la factorisation LU (sans pivot) existe et est unique ssi les sousmatrices principales Ai de A dordre i = 1, . . . , n 1 (celles que lon obtient en restreignant A ses i premires lignes et
colonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sous-matrices principales, sont non nuls).
Matrice A : comme det(A) 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
1
3
L 3 L 3 21 L 1
9 0
0
5
0
1
0
0
0 ,
1
1
A2 = 7
2
2
6
0
3
12
1
1
U = 0
0
2
6
0
3
12 .
1
Lorsquun pivot est nul, la mthode de G AUSS pour calculer la factorisation LU de la matrice A nest plus applicable. De
plus, si le pivot nest pas nul mais trs petit, lalgorithme conduit des erreurs darrondi importantes. Cest pourquoi des
algorithmes qui changent les lments de faon avoir le pivot le plus grand possible ont t dvelopps. Les programmes
optimiss intervertissent les lignes chaque tape de faon placer en pivot le terme de coefficient le plus lev : cest la
mthode du pivot partiel. Pour la matrice A cela aurait donn
1
A = 2
7
2
4
8
3
1
L 2 L 3
5 7
9
2
2
8
4
L 2 L 2 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 6.4
Aprs avoir utilis la mthode dlimination de Gauss, une matrice symtrique A a t transforme en la matrice triangulaire suprieure
4 2
1
0
0 3 3/2
1
.
U=
0 0
3
3/2
0 0
0
35/12
Calculer la matrice A.
142
G. Faccanoni
C ORRECTION .
6. Systmes linaires
Comme A = LU, il suffit de calculer L. En divisant chaque ligne de U par son terme diagonal on trouve
1
0
LT =
0
0
1/2
1
0
0
1/4
1/2
1
0
0
1/3
.
1/2
1
Alors
1
1/2
A = LU =
1/4
0
0
1
1/2
1/3
0
0
1
1/2
0 4
0
0
0 0
1 0
1
3/2
3
0
2
3
0
0
0
4
2
1
=
3/2 1
35/12
0
2
4
2
1
1
2
4
2
0
1
.
2
4
Exercice 6.5
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
2
4
1
det(A) = det 2 1
2
3
2
= (2 (2) 2) + (4 (1) 2) + (1 3) (2 (1) 3) (4 2) (1 (2) 2)
= (8) + (8) + (3) (6) (8) (4)
= 6 5,
la matrice A est inversible si et seulement si 6= 56 .
2. Pour une matrice A carre dordre n quelconque, la factorisation de Gauss existe et est unique si et seulement si les
sous-matrices principales Ai de A dordre i = 1, . . . , n 1 (celles que lon obtient en restreignant A ses i premires
lignes et colonnes) ne sont pas singulires (autrement dit si les mineurs principaux, i.e. les dterminants des sousmatrices principales, sont non nuls).
Pour la matrice A on a les sous-matrices principales suivantes :
A1 = 2 ,
det(A1 ) = 2;
2
4
A2 =
,
det(A2 ) = 4(1 + ).
2
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
2
4
1
1 0 0
2
4
1
3
2 .
PA1 = 0 0 1 1 2 1 = 2
0 1 0
2
3
2
1 2 1
La matrice M admet une dcomposition LU (sans pivot) et lon a
2
2
1
G. Faccanoni
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
143
6. Systmes linaires
1
L= 1
12
0
1
0
0
0 ,
1
2
U = 0
0
1
1 .
12
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 1
3
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 6.6
Considrons les deux matrices carres dordre n > 3 :
0 0
0
...
0 0
0
0
.
..
..
0 0
0
..
..
A=
.
.
0
...
.
..
..
.
.
.
0
.
0 0
0
...
..
.
.
.
B=
.
.
.
...
0
...
0
0
..
.
0
0
..
.
...
0
0
...
..
.
B(1) =
0
0
L 2 L 2 L 1
L 3 L 3 L 1
0
L
L 4 L 4
0
1
B(2) =
0
0
0
0
2. La matrice A est une matrice en flche : pour en calculer la factorisation LU il suffit de transformer la dernire
ligne, ce qui requiert le calcul de lunique multiplicateur m = / et lexcution de n 1 produits et sommes. Le cot
globale est donc de lordre de n.
3. Le dterminant n de la matrice A de dimension n concide avec le dterminant de la matrice U. Comme u i i =
pour tout i < n et u nn = (n 1)2 /, on conclut que
n = n (n 1)n2 2 .
4. Les valeurs propres de la matrice A sont les racines du dterminant de la matrice A I. Suivant le mme raisonnement du point prcdant, ce dterminant scrit
( )n (n 1)( )n2 2
dont les racines sont
1,2 =
144
(n 1),
3 = = n = .
G. Faccanoni
6. Systmes linaires
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
si 0,
pn1
sinon.
+ n1
Exercice 6.7
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 . Une condition suffisante pour la convergence des mthodes de J ACOBI et de G AUSS -S EIDEL est que A est
diagonale strictement dominante. A vrifie cette condition si et seulement si || > 1.
Exercice 6.8
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 Jacobi
2. convergence de la mthode de Gauss-Seidel.
C ORRECTION .
1. Une condition suffisante pour que la mthode de J ACOBI converge est que la matrice soit dominance diagonale
stricte, ce qui quivaut imposer
|| > ||,
|| > ||,
|| > ||,
A = 0
0
0
.
2 = ,
3 = + ,
G. Faccanoni
145
6. Systmes linaires
Exercice 6.9
crire les formules de la mthode dlimination de Gauss pour une matrice de la forme
a 1,1 a 1,2
0
...
0
..
.
a 2,1 a 2,2 a 2,3 0
..
..
..
..
..
.
.
.
.
.
.
A=
.
..
..
..
.
.
0
a
a
a n,1
a n,2
...
n1,n1
n1,n
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 . Comme la matrice a une seule sur-diagonale non nulle, les formules de la mthode dlimination de Gauss
deviennent
(k)
+ m i ,k a k,
,
= a i(k)
a i(k+1)
,j
,j
j
m i ,k =
a i(k)
,k
(k)
a k,k
i , j = k + 1,
i = k + 1.
Exercice 6.10
Soit R et considrons les matrices carres de dimension n
0
. . .
..
..
.
.
0
A=
,
B=
..
..
.
.
. . .
..
.
...
..
.
.
...
+
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
146
n
1
n o
2
max n,
=
.
||
n 2
||
G. Faccanoni
6. Systmes linaires
2
= 2n.
||
Exercice 6.11
On suppose que le nombre rel > 0 est assez petit pour que lordinateur arrondisse 1 + en 1 et 1 + (1/) en 1/ ( est
plus petit que lerreur machine (relative), par exemple, = 230 en format 32 bits). Simuler la rsolution par lordinateur
des deux systmes suivants :
(
(
a + b = 1
2a + b = 0
et
2a + b = 0
a + b = 1
On appliquera pour cela la mthode du pivot de Gauss et on donnera les dcompositions LU des deux matrices associes
ces systmes. On fournira galement la solution exacte de ces systmes. Commenter.
C ORRECTION .
Premier systme :
1
1
a
1
=
.
b
0
Factorisation LU :
1 L 2 L 2 2 L 1
1
0
1
1 2
donc
L=
1
2
0
1
U=
1
1 2
1 0 y1
1
=
=
y 1 = 1,
2
y
0
1
2
1
1 2
1
a
= 2
b
1+
b=
,
1 2
1 0
e
L= 2
1
e
U=
0
2
y2 = ;
1
2
a=
2
1 2
e = b et Ux
e =y:
Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly
2
1 0 y1
1
=
=
y 1 = 1, y 2 = ;
2
0
1 y2
1 a
1
= 2
=
b = 1, a = 0.
0 2 b
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=
G. Faccanoni
0
1
2
U=
0
1
1 2
147
6. Systmes linaires
1 0 y1
0
=
=
y 1 = 0,
1 y2
1
2
2
0
1
1 2
a
0
=
b
1
1+
a=
b=
,
1 2
1 0
e
L=
1
2
2
e
U=
0
y 2 = 1;
1
2
2
1 2
e = b et Ux
e =y:
Pour rsoudre ce systme linaire approch on rsout les systmes triangulaires Ly
1 0 y1
0
=
=
y 1 = 0, y 2 = 1;
1
y
1
2
2
2
1 a
0
=
=
b= , a = .
1
0 2 b
2
4
Exercice 6.12
Rappeler lalgorithme vu en cours pour calculer la dcomposition LU dune matrice A et la solution du systme Ax = b
o le vecteur colonne b est donn. On appliquera ces algorithmes pour les cas suivants :
1
2
3
1
1
2
1 x1
1
3 x 2 = 1
4
x3
1
2
3
2
et
2
5
1
2
4 x1
1
x 2 1
1
=
5 x 3 1
3 x4
1
3
7
1
0
1
1
1
1
et
1
2
4
0
1
3
6
0
1 x1
1
x 2 1
4
=
8 x 3 1
0 x4
1
Donner, en fonction de n (nombre de lignes et de colonnes de A), une majoration du nombres doprations effectues
par lordinateur pour calculer la dcomposition LU de A avec lalgorithme donn en cours. Donner aussi une estimation
du nombres doprations effectues pour rsoudre le systme Ax = b quand la dcomposition LU est connue.
C ORRECTION .
Premier systme :
1
2
3
1
1
2
1
3
4
L 2 L 2 21 L 1
1
1
L 3 L 3 3
1 L1
1 0
1
0
1
1
5
1
1
7
1
1
5
L 3 L 3 1
L2
1 0
4
0
1
1
0
1
1
12
1
1
1
donc
1
L= 2
3
0
0
1
0
1
5
1
U = 0
0
1
1
0
1
1
12
x 1 + x 2 + x 3 = 1
x 2 + x 3 = 1
12x 3 = 1
= x 3 =
1
,
12
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
1
0
0
0
2
9
0
0
3
1
77
9
56
9
L 3 L 3 9 L 2
L 4 L 4 2
9 L 2
148
4
7
7
5
4
7
28
9
31
9
1
1
2
1
1
56/9
L L
L2
1
4477/9
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
G. Faccanoni
6. Systmes linaires
donc
1
2
L=
3
2
0
1
0
0
1
5
9
2
9
0
0
0
1
56
77
1
0
U=
0
0
2
9
0
0
3
1
77
9
0
4
7
28
9
13
11
x 1 + 2x 2 + 3x 3 + 4x 4 = 1
9x + x 7x = 1
2
3
4
28
13
77
x
=
9 3 9 4 9
13
3
11 x 4 = 11
= x 4 =
3
,
13
x3 =
23
,
91
x2 =
29
,
91
x1 =
48
.
91
Troisime systme :
1
1
1
1
1
2
4
0
1
3
6
0
L L L
2
2
1
1
L 3 L 3 L 1
1
L
L
L
4
4
1
1
1
1 1
1
1
0 3 2
3
0 3
5
7
0 1 1 1
1 1
1
L 3 L 3 (1)L 2
0 3
L 4 L 4 1
2
3 L 2
0 0
7
0 0 53
1
4
8
0
1
0
0
0
1
3
10
2
L 4 L 4 5/3
0
7 L2
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
0
0
5
21
1
0
U=
0
0
1
3
0
0
1
2
7
0
1
3
10
8
21
x1 + x2 + x3 + x4 = 1
3x + 2x + 3x = 0
2
3
4
7x
+
10x
=
0
3
4
8
21 x 4 = 0
= x 4 = 0,
x 3 = 0,
x 2 = 0,
x 1 = 1.
Exercice 6.13
crire les mthodes itratives de Gauss, J ACOBI et G AUSS -S EIDEL pour les systmes suivants :
(
10a + b = 11
(
2a + 10b = 12
et
2a + 10b = 12
10a + b = 11.
Pour chacun de ces mthodes et systmes, on calculera le rayon spectral de la matrice associe la mthode. On illustrera
les rsultats thoriques de convergence/non-convergence en calculant les 3 premiers itrs en prenant comme point de
dpart le vecteur (a, b) = (0, 0).
C ORRECTION .
Gauss
Premier systme :
10
2
1
10
11
12
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 :
G. Faccanoni
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.
149
6. Systmes linaires
Jacobi
Premier systme :
(
10a + b = 11
2a + 10b = 12
a=
b=
11b
10
122a
10
49
110 11
49
501
11 12
11 50
10
0
/10
/500
10
10 = /50 , x(3) = 10 =
x(0) =
, x(1) = 120
= 12 , x(2) = 122
.
11
49
49
502
122 50
0
/
10
/
50
/500
10
10
10
10
Second systme :
(
2a + 10b = 12
10a + b = 11
a=
1210b
2
b = 11 10a
0
6
49
2
2
x(0) =
=
=
, x(1) =
, x(2) =
,
0
11
49
11 0
11 10 6
Gauss-Seidel
x(3) =
1210(49)
2
11 10 (49)
251
.
501
Premier systme :
(
10a + b = 11
2a + 10b = 12
a=
b=
11b
10
122a
10
110 !
49
2499
501
25001
11 50
11 2500
11
0
/10
/
500
/25000
10
(0)
(1)
(2)
(3)
10
10
x =
, x = 122 11 = 49 , x = 122
,
x
=
.
=
=
501
25001
2499
12499
122 25000
10
0
/50
/2500
/125000
500
10
10
10
Second systme :
(
2a + 10b = 12
10a + b = 11
a=
1210b
2
b = 11 10a
1210(49)
0
6
251
2
2
x(0) =
, x(1) =
=
=
, x(2) =
,
0
49
2499
11 10 6
11 10 251
x(3) =
1210(2499)
2
11 10 (12501)
12501
.
124999
Exercice 6.14
Rsoudre les systmes linaires suivants :
x 5y 7z = 3
2x 13y 18z = 3
3x 27y 36z = 3
C ORRECTION .
1
2
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
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 5
7 L 2 L 2 2L 1 1 5
7
1 5 7
L 3 3L 1
L 3 L 3 4L 2
2 13 18 L3
4 0 3 4
0 3
3
27
36
1
L = 2
3
0
1
4
12
15
5
3
0
7
4
1
donc
0
0
1
1
U = 0
0
150
G. Faccanoni
6. Systmes linaires
1
2
3
1
0
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.
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
1
2
3
1
0
0
0
1
4
5
3
0
0 y1
0
0 y 2 = 3
1 y3
6
7 x 1
6
4 x 2 = 12
1
x3
27
y 1 = 0,
y 2 = 3,
y 3 = 6;
x 3 = 6,
x 2 = 7,
x 1 = 7.
Exercice 6.15
Soit A une matrice, A Mn,n (R).
1. Rappeler la mthode de J ACOBI pour la rsolution du systme Ax = b, avec b Mn,1 (R) donn.
2. Soit la matrice A suivante :
4
1
1
1
1 .
4
1
3
1
n
P
j =1
j 6=i
a i j x kj
,
ai i
i = 1, . . . , n.
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
L
1
4
1 0
4
0
1
11
/4
5/4
3
1 L L / L
2
3
3
/
5/4 0
15
0
/4
5
11
1
11
/4
0
1
5/4 .
35
/11
Par consquent
1
L = 1/4
1/4
G. Faccanoni
0
1
5/11
0
0
1
et
4
U = 0
0
1
11
/4
0
1
5/4 .
35
/11
151
6. Systmes linaires
Exercice 6.16
Soit la matrice A Rnn 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 .
1
.
.
.
..
.
0
1
1
..
.
...
1
Factorisation LU de la matrice A :
...
..
.
1
..
.
...
1
...
..
.
..
.
..
.
0
...
...
..
.
1
1
1
1
..
.
0
..
1
L L n 1 L 1 ..
. n
.
..
..
.
.
1
1
0
...
..
.
1
1
..
.
1
..
.
...
2
...
2
...
..
.
..
.
..
.
0
...
...
...
..
.
..
.
..
.
0
...
...
1
1
..
.
0
..
2
L L n 1 L 2 ..
. n
.
..
..
.
.
1
2
0
..
.
1
2
...
..
.
1
1
..
.
...
..
.
..
.
..
.
0
...
1
..
.
...
4
...
0
...
1
..
.
..
..
.
1
4
..
.
1
4
[. . . ]
n2
L n L n 2 1 L n1 ..
.
..
.
0
0
...
..
.
1
1
..
.
1
..
.
...
0
...
0
1
..
.
..
..
.
1
2n1
..
.
1
0
0
L=
..
.
0
1
0
..
.
0
2
1
..
.
...
4
...
..
.
..
.
..
.
0
...
...
0
1
0
..
.
..
2n2
et
0
U=
..
.
0
0
0
..
.
0
0
1
..
.
...
0
...
..
.
..
.
..
.
0
...
...
1
..
.
..
.
1
2n1
1
1
0
On obtient
`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 ;
Exercice 6.17
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 .
152
Factorisation LU de la matrice A :
..
.
.
..
.
.
.
1
1
..
.
...
..
.
1
..
.
...
..
..
..
...
...
.
.
.
...
0
..
.
..
.
0
1
1
1
1
..
L L +L
. 2 2 1 0
.
.. ..
..
.
L
L
+L
n
n
1
.
.
..
..
.
.
1
1
0
0
1
1
..
.
..
.
1
...
..
.
1
..
.
...
..
..
..
...
.
.
.
...
0
..
.
..
.
0
1
1
L L +L
2 3 3 2 0
.
.. ..
..
.
L
L
+L
n
n
2
.
.
..
..
.
.
.
2
2
0
1
0
..
.
..
.
0
...
..
.
1
1
..
.
1
...
..
0
..
.
..
.
..
..
.
...
1
1
..
.
4
4
G. Faccanoni
6. Systmes linaires
..
L n L n +L n1 .
[. . . ]
.
..
.
.
.
0
...
..
.
1
..
.
1
..
.
...
..
0
..
.
..
.
..
.
...
1
0
..
...
...
20
21
2
2
..
.
n2
2
2n1
..
.
L=
.
..
.
.
.
1
..
.
...
...
..
.
1
..
.
...
..
..
..
...
...
.
.
.
...
..
1
1
0
..
..
.
..
.
0
1
et
..
.
U=
.
..
.
.
.
...
..
.
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.
a1
c1
b 2
0
A=
.
..
.
.
.
0
a2
c2
b3
..
.
a3
..
.
..
.
...
...
...
..
.
..
.
..
.
...
..
..
b n1
0
a n1
bn
0
..
.
..
.
c n1
an
1. Montrer que les matrices L et U de la factorisation LU de A sont bidiagonales, i.e. si a i j = 0 pour |i j | > 1 alors
`i j = 0 pour i > 1 + j (et pour i < j car triangulaire infrieure) et u i j = 0 pour i < j 1 (et pour i > j car triangulaire
suprieure).
Soit A(k) , k = 0, . . . , n 1 la matrice obtenue ltape k de la mthode de G AUSS, avec A(0) = A et A(n1) = U. On
montrera par rcurrence sur k que A(k) est tridiagonale pour tout k = 0, . . . , n 1, i.e. a i(k)
= 0 pour |i j | > 1.
j
G. Faccanoni
153
6. Systmes linaires
sous la forme
0
L=
.
..
.
.
.
0
...
..
.
3
..
.
1
..
.
..
.
...
...
...
..
..
...
.
..
n1
0
1
n
0
..
..
.
,
..
.
0
1
..
.
U=
.
..
.
.
.
0
2
..
.
2
..
.
..
.
...
...
...
..
.
..
.
..
.
..
.
...
...
..
..
0
..
.
..
.
n1
n
n1
0
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 R n .
C ORRECTION .
1. Soit A(k) , k = 0, . . . , n 1 la matrice obtenue ltape k de la mthode de G AUSS, avec A(0) = A et A(n1) = U. On
= 0 pour |i j | > 1.
montrera par rcurrence sur k que A(k) est tridiagonale, i.e. a i(k)
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
?
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 :
a1
c1
b 2
0
A(0) =
.
..
.
.
.
0
a2
c2
b3
..
.
a3
..
.
..
.
...
...
..
.
..
.
..
.
...
..
..
0
..
.
..
.
154
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
b n1 a n1
0
bn
1 = a 1
1 = c 1
2 = a 2 2 c 1
0
0
L 3 L 3 3 L 2
0
A(2) =
.
.
b3
..
..
3 =
..
.
0
...
...
0
2 = c 2
3 = a 3 3 c 2
..
.
..
.
...
...
...
..
.
..
.
..
.
...
b n1
0
a n1
bn
..
..
0
..
.
..
.
...
..
.
..
.
..
.
...
..
..
b n1
0
a n1
bn
0
..
.
..
.
c n1
an
L 4 L 4 4 L 3
[ ]
b
4 = 4
0
c n1
an
G. Faccanoni
6. Systmes linaires
1 = a 1
0
L n L n n L n1
[ ] A(n1) =
..
bn
n =
.
n
..
1 = c 1
2 = a 2 2 c 1
2 = c 2
0
..
.
3 = a 3 3 c 2
..
.
..
.
...
...
...
..
.
..
.
..
.
...
..
0
..
.
..
.
..
0
0
n1 = a n1 n1 c n2
0
n1 = c n1
n = a n n c n1
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,
i.e.
y i = f i i y i 1 , pour i = 2, . . . , n,
(
xn =
xi =
yn
n ,
y i i x i +1
,
i
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
i.e.
pour i = n 1, . . . , 1,
y1 = f1,
Exercice 6.19
Soit les systmes linaires
4x 1 + 3x 2 + 3x 3 = 10
3x 1 + 4x 2 + 3x 3 = 10
3x 1 + 3x 2 + 4x 3 = 10
4x 1 + x 2 + x 3 = 6
x 1 + 4x 2 + x 3 = 6
x 1 + x 2 + 4x 3 = 6
(6.1)
(6.2)
1. Rappeler une condition suffisante de convergence pour les mthodes de J ACOBI et de Gauss-Seidel. Rappeler une
autre condition suffisante de convergence pour la mthode de G AUSS -S EIDEL (mais non pour la mthode de Jacobi). Les systmes (6.1) et (6.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 dans lun des cas suivant (vous
tes libre de choisir) :
3.1. avec la mthode de J ACOBI pour le systme (6.1),
3.2. avec la mthode de G AUSS -S EIDEL pour le systme (6.1),
3.3. avec la mthode de J ACOBI pour le systme (6.2),
3.4. avec la mthode de G AUSS -S EIDEL pour le systme (6.2).
4. On comparera le rsultat obtenu avec la solution exacte (quon calculera laide de la mthode dlimination de
Gauss).
C ORRECTION .
4 3 3 x1
10
3 4 3 x 2 = 10
3 3 4 x3
10
|
{z
}
A1
et
4 1 1 x1
6
1 4 1 x 2 = 6
1 1 4 x3
6
|
{z
}
A2
G. Faccanoni
155
6. Systmes linaires
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
2
3
(k+1) 1
(k)
= 4 10 3x 3x (k)
x
1
3
x 3(k+1)
10 3x 1(k) 3x 2(k)
(k+1)
(k)
(k)
x 1
10 3x 2 3x 3
(k+1) 1
= 4 10 3x (k+1) 3x (k)
x
1
3
(k+1)
(k+1)
(k+1)
x3
10 3x 1
3x 2
Jacobi
Gauss-Seidel
A2 x = b
(k+1)
(k)
(k)
x
6
x
1
2
3
(k+1) 1
(k)
x
= 4 6 x x (k)
1
3
2
x 3(k+1)
6 x 1(k) x 2(k)
(k+1)
(k)
(k)
x 1
6 x2 x3
(k+1) 1
= 4 6 x (k+1) x (k)
x
1
3
(k+1)
(k+1)
(k+1)
x3
6 x1
x2
=
x 2 = 4 10 3 2 3 2 = 4 = x 2 = 4 10 3 4 3 4 = 8
5
35
10 3 52 3 52
54
x3
10 3 5
x3
4 3 4
8
x1
(3)
(2)
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
10 3 245
x3
x3
128 3 512
2048
131072
x1
9
=
x 2 = 4 6 1 2 1 2 = 4 = x 2 = 4 6 1 4 1 4 = 8
3
9
x3
x3
6 1 32 1 32
6 1 43 1 34
4
8
x1
1. det A1 () = (4 )3 + 27 + 27 9(4 ) 9(4 ) 9(4 ) = 64 48 + 122 3 + 54 108 + 27 = 3 + 122 21 + 10. Une racine vidente est
= 1 et on obtient det A1 () = ( 1)(2 + 11 10) = ( 1)2 ( 10).
156
G. Faccanoni
6. Systmes linaires
(3)
129
8139
531
1 2025
x1
6 1 89 1 27
x1
6 1 512
32
128
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
531
2025
8139
131139
1 32913
x3
6 1 129
x3
6 1 8192
128 1 512
2048
32768
131072
x1
3
3
4
L 2 L 2 43 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
6
4
L 3 L 3 14 L 1
6 0
6
0
4
3
3
?
3
7
/4
3
/4
3
3
/4
7
/4
4
10
L2
L 3 L 3 3/4
7/4
5
/2 0
5
/2
0
3
7
/4
0
3
3
/4
10
/7
10
1
5
/2 = x = 1
10
/7
1
1
3
/4
15
/4
6
4
3/4
L 3 L 3 15/4
L2
9
/2 0
9
/2
0
1
15
/4
0
1
3
/4
18
/5
6
1
9
/2 = x = 1
18
/5
1
Systme (6.2) :
4
1
1
G. Faccanoni
1
15
/4
3
/4
157
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 :
159
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.
1. Il ne sagit pas, pour linstant, de soccuper des rgles exactes de programmation, mais seulement dexprimenter le fait dentrer des commandes
dans Python.
160
G. Faccanoni
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
161
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.
>>>
>>>
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
ATTENTION. Python est sensible la casse. Ainsi, les noms n et N reprsentent diffrents objets. Les noms de variables
peuvent tre non seulement des lettres, mais aussi des mots ; ils peuvent contenir des chiffres ( condition toutefois de ne pas
commencer par un chiffre), ainsi que certains caractres spciaux comme le tiret bas _ (appel underscore en anglais).
162
G. Faccanoni
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
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
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
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
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
163
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[18, 7, 15, 3]
>>> fraise[:2]
[12, 11]
>>> fraise[:]
[12, 11, 18, 7, 15, 3]
>>> fraise[2:5]
[18, 7, 15]
>>> fraise[2:6]
[18, 7, 15, 3]
>>> fraise[2:7]
[18, 7, 15, 3]
>>> fraise[2:6:2]
[18, 15]
>>> fraise[-2:-4]
[]
>>> fraise[-4:-2]
[18, 7]
>>> fraise[-1]
3
noter que lorsquon utilise des tranches, les dpassements dindices sont licites.
Voici quelques oprations et mthodes trs courantes associes aux listes :
a.append(x)
a.extend(L)
a.insert(i,x)
a.remove(x)
a.pop([i])
a.index(x)
a.count(x)
a.sort(x)
a.reverse(x)
len(a)
x in a
x not in a
max(a)
min(a)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
164
G. Faccanoni
27
28
29
30
31
32
33
34
35
36
37
>>>
>>>
[2,
>>>
8
>>>
>>>
[2,
>>>
>>>
[2,
a.sort()
print a
17, 20, 21, 34, 37, 83, 100]
len(a) # Determine length of list
a.insert(2,7) # Insert
print a
17, 7, 20, 21, 34, 37,
a[2:4] = [-2,-5,-1978]
print a
17, -2, -5, -1978, 21,
7 in position 2
83, 100]
# Modify selected elements
34, 37, 83, 100]
ATTENTION. Si a est une liste, la commande b=a ne cre pas un nouvel objet b mais simplement une rfrence (pointeur)
vers a. Ainsi, tout changement effectu sur b sera rpercut sur a aussi ! Pour crer une copie c de la liste a qui soit vraiment
indpendante on utilisera la commande deepcopy du module copy comme dans lexemple suivant :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
1
4
7
2
5
8
3
6 .
9
La commande len (comme length) renvoie la longueur dune liste. On obtient donc le nombre de ligne de la matrice avec
len(a) et son nombre de colonnes avec len(a[0]). En effet,
1
2
3
4
5
6
7
8
9
10
>>> print a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> print a[1] # Print second row (element 1)
[4, 5, 6]
>>> print a[1][2] # Print third element of second row
6
>>> print len(a)
3
>>> print len(a[0])
3
ATTENTION. Dans Python les indices commences zro, ainsi a[0] indique la premire ligne, a[1] la deuxime etc.
G. Faccanoni
165
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
166
Addition
Soustraction
Multiplication
Division
Exponentiation
Quotient de la division euclidienne
Reste de la division euclidienne
G. Faccanoni
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
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
a signifie
<
>
=
6=
and
or
not
G. Faccanoni
a signifie
et
ou
non
167
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
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
7
8
9
10
11
12
13
14
15
16
>>> f(2)
>>> print f(2)
None
>>> def f(x):
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.
168
G. Faccanoni
17
18
19
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
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 arctan(x) en x = 0.5 il suffit dcrire
1
2
3
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
G. Faccanoni
169
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
ou
1
2
3
4
5
6
7
170
G. Faccanoni
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 (il sagit dune spline linaire comme on verra au prochaine
chapitre). Plus les points sont nombreux, plus le graphe de la fonction spline est proche du graphe de la fonction f . Pour
gnrer les points x i on peut utiliser linstruction linspace(a,b,n) qui construit la liste de n + 1 lments
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
ou encore
1
2
3
4
5
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
2
3
4
5
6
7
8
9
10
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. . .
1
2
3
4
5
6
7
8
9
10
11
G. Faccanoni
171
(a)
(b)
(c)
-.
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
"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
si x 0,
sinon.
On a besoin dune instruction qui opre une disjonction de cas. En Python il sagit de linstruction de choix introduite par
le mot-cl if. La syntaxe est la suivante :
1
2
3
4
5
6
if condition_1:
instruction_1.1
instruction_1.2
...
elif condition_2:
instruction_2.1
172
G. Faccanoni
7
8
9
10
11
12
13
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
5
6
7
8
def sign_of(a):
if a < 0.0:
sign = negative
elif a > 0.0:
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
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.
G. Faccanoni
173
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]
def somme(n):
s ,i = 0, 0
while i<n:
i += 1
s += i
return s
somme(100) # Output 5050
Boucle for : rptition inconditionnelle Lorsque lon souhaite rpter un bloc dinstructions un nombre dtermin
de fois, on peut utiliser un compteur actif, cest--dire une variable qui compte le nombre de rptitions et conditionne la
sortie de la boucle. Cest la structure introduite par le mot-cl for qui a la forme gnrale suivante (attention lindentation
et aux deux points) :
1
2
3
4
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
174
premier
premier
premier
premier
G. Faccanoni
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)
E }
[ f(x) for x in E ]
Voici quelques exemples :
1
2
3
4
5
6
7
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
>>> n = 100
>>> [d for d in range(1,n+1) if (n%d==0)]
[1, 2, 4, 5, 10, 20, 25, 50, 100]
G. Faccanoni
175
Chasseurs de chimres de la srie De Cape et de Crocs (AYROLES & M ASBOU), tome VII, 14, 5