Anda di halaman 1dari 39

ANALYSE NUMRIQUE

P. HELLUY
Table des matires
1. Rsolution directe des systmes linaires 2
1.1. Notions prliminaires 2
1.2. Dcomposition LU dune matrice inversible 5
1.3. Travaux pratiques 8
2. Intgration numrique 8
2.1. Prliminaires 8
2.2. Intgration des polynmes 8
2.3. Intgration des fonctions rgulires 9
2.4. Mthodes composites 10
2.5. Ordre dune mthode 11
2.6. Mthode de Gauss composite 12
3. Interpolation des fonctions 13
3.1. Interpolation de Lagrange 13
3.2. Polynmes de Lagrange 14
3.3. Interpolation par fonctions splines 14
4. Rsolution numrique des quations non-linaires 17
4.1. Introduction 17
4.2. Le thorme du point xe 17
4.3. Mthode de Newton 19
4.4. Exercices 19
5. Rsolution numrique des quations direntielles 20
5.1. Rappels 20
5.2. Mthode dEuler explicite 20
5.3. Mthode dEuler implicite 21
5.4. Mthode explicite un pas 21
6. Introduction la rsolution itrative des systmes linaires 23
6.1. Introduction 23
6.2. Mthodes de Jacobi et de Gauss-Seidel 23
6.3. Mthodes de gradient 25
7. Exercices et travaux pratiques 26
7.1. TD TP n

1 26
7.2. TD TP n

2 28
7.3. TD TP n

3 30
7.4. TD TP n

4 33
8. Examen danalyse numrique n1 35
8.1. Enonc 35
8.2. Corrig 36
9. Examen danalyse numrique n2 38
9.1. Enonc 38
1
2 P. HELLUY
1. Rsolution directe des systmes linaires
Dans la suite, A = (a(i, j))
1in1jn
dsigne une matrice carr inversible de
nombres rels ou complexes.
1.1. Notions prliminaires. Une des tches fondamentales du numricien consiste
rsoudre, laide dun ordinateur, des systmes linaires de la forme Ax = b o
x est linconnue et b un vecteur rel ou complexe. Souvent, il arrive que la matrice
A est creuse, cest dire quelle contient beaucoup de zros. Par opposition, une
matrice possdant peu de zros est dite pleine. Pour des raisons decacit il fau-
dra trouver des algorithmes permettant dviter au maximum le stockage des zros
an dconomiser la mmoire et les temps de calcul.
On appelle mthode de rsolution directe dun systme linaire un algorithme
qui, si lordinateur faisait des calculs exacts, donnerait la solution en un nombre
ni doprations. Il existe aussi des mthodes itratives qui consistent construire
une suite de vecteurs x
n
convergeant vers la solution x.
1.1.1. Stockage des matrices creuses. La mthode la plus conomique pour sto-
cker une matrice creuse consiste mettre ses valeurs dans un tableau de rels
atab(k)
1kN
o N est le nombre de valeurs non nulles de A. Les termes diagonaux
de A seront toujours supposs non nuls. Il faut alors deux tableaux indi(k)
1kN
et
indj(k)
1kN
pour reprer les numros de lignes et de colonnes suivant la formule :
atab(k) = a(indi(k), indj(k))
Exemple : dans la suite nous ferons les calculs pour la matrice
A =
_

_
2 0 0 1
0 2 1 0
0 1 2 1
1 0 1 2
_

_
ici, nous sommes conduits
atab = [2, 1, 2, 1, 1, 2, 1, 1, 1, 2]
indi = [1, 1, 2, 2, 3, 3, 3, 4, 4, 4]
indj = [1, 4, 2, 3, 2, 3, 4, 1, 3, 4]
N = 10
Bien quconomique en mmoire, ce stockage (dit stockage morse) est peu adapt
la rsolution directe des systmes linaires. Nous allons partir de cette reprsenta-
tion an dobtenir un stockage plus utile. Pour simplier lexpos, nous supposerons
(quitte stocker quelques zros supplmentaires) que les valeurs non nulles de A
sont rparties de manire symtrique (a(i, j) ,= 0 a(j, i) ,= 0). A nest pas nces-
sairement symtrique.
1.1.2. Prol dune matrice.
Dnition 1. On appelle prol de A le tableau prof(j)
1in
dni par
E
j
= i, 1 i j, a(i, j) ,= 0
prof(j) = j max E
j
On dit quun couple (i, j) est dans le prol de A si
j prof(j) i j ou i prof(i) j i
ANALYSE NUMRIQUE 3
Remarque : sur la colonne j, E
j
contient en fait les indices de lignes i au dessus
de la diagonale, pour lesquels a(i, j) ,= 0. j prof(j) + 1 est alors le plus petit de
ces indices.
Exemple : le prol est ici
prol = [0, 0, 1, 3]
1.1.3. Diminution du prol dune matrice, algorithme de Cuthill-Mac Kee. Nous
verrons par la suite quil est intressant que la matrice A ait un prol le plus petit
possible. Lalgorithme de Cuthill-Mac Kee consiste renumroter les lignes et les
colonnes de A an de diminuer son prol, cest dire concentrer les valeurs non
nulles autour de la diagonale. Nous dirons que deux indices i et j sont voisins si
a(i, j) ,= 0 (rappelons dailleurs que par hypothse a(i, i) ,= 0, donc i est toujours
sont propre voisin), et nous commenons par compter les voisins nbvois(i) de i grce
lalgorithme suivant.
for k to N do
if indi[k] > indj[k] then
nbvois[indj[k]] :=nbvois[indj[k]]+1 :
nbvois[indi[k]] :=nbvois[indi[k]]+1 :fi :od :
for k to n do nbvois[k] :=nbvois[k]+1 :od :
Notons alors nvoismax= max
1in
nbvois(i). nvoismax est le nombre maximum
de voisins sur tous les indices. Nous sommes donc en mesure de construire le tableau
listvois(i, l)
1in,1lnvoismax
o listvois(i, l) contient le voisin numro l de lindice
i :
indvois :=vector(n) :listvois :=matrix(n,nvoismax) :
for k to n do
indvois[k] :=1 :listvois[k,1] :=k :od :
for k to N do
if indi[k] > indj[k] then
i :=indi[k] :j :=indj[k] :
indvois[i] :=indvois[i]+1 :indvois[j] :=indvois[j]+1 :
listvois[i,indvois[i]] :=j :listvois[j,indvois[j]] :=i :
fi :od :
Exemple : on trouve
listvois =
_

_
1 4 0
2 3 0
3 2 4
4 1 3
_

_
Ces tableaux permettent dailleurs de calculer le prol de A :
prof :=vector(n,0) :
for i to n do :for j to indvois[i] do
if listvois[i,j] < i then
prof[i] :=max(prof[i],i-listvois[i,j]) :fi :od :od :
Lalgorithme de Cuthill-MacKee consiste alors partir dun indice arbitraire
i
0
= inum(1). Ensuite, dans le tableau inum on ajoute les voisins de i
0
puis les
voisins des voisins, etc. On peut donc crire :
estcompte :=vector(n) :inum :=vector(n) :i0 :=1 :
for i to n do
estcompte[i] :=0 :od :
inum[1] :=i0 :
estcompte[i0] :=1 :
compte :=1 :pointeur :=1 :
while compte < n do
4 P. HELLUY
iactu :=inum[pointeur] :
for ii to nbvois[iactu] do
i :=listvois[iactu,ii] :
if estcompte[i]=0 then compte :=compte+1 :inum[compte] :=i :
estcompte[i] :=1 :fi :
od :
pointeur :=pointeur+1 :
od :
A la n, le tableau inum contient la nouvelle numrotation.
Exemple :
inum = [1, 4, 3, 2]
Aprs avoir renumrot, il est souvent intressant de relancer plusieurs fois lalgo-
rithme en prenant i
0
:= inum(n). Il est aussi prfrable, dans la boucle sur ii de
numroter en priorit les indices ayant le moins de voisins. Si aprs lalgorithme, la
diminution du prol est importante, il est prfrable de remplacer la matrice A par
la matrice A

dnie par :
a

inum(i),inum(j)
= a
i,j
Exemple : A

est ici
A

=
_

_
2 1 0 0
1 2 1 0
0 1 2 1
0 0 1 2
_

_
(dans la suite des exemples, nous continuons travailler avec A et non avec A

)
Nous sommes maintenant en mesure de construire un nouveau stockage de A
appel stockage prol.
1.1.4. Stockage prol de A. A sera stocke dans trois tableaux : ainf contiendra la
partie infrieure de A. asup contiendra la partie suprieure et adiag la diagonale de
A. La diagonale est facile stocker
adiag(i) = a(i, i) 1 i n
On dcide de ranger dans asup les valeurs de la partie suprieure de A qui sont
dans le prol, colonne aprs colonne, zros compris. Le principe de stockage est le
mme pour ainf, en travaillant ligne par ligne. En notant NN le nombre de valeurs
stockes dans ainf ou asup, on a donc
NN =
n

i=1
prof(i)
Pour le reprage, nous aurons besoin de savoir o commence chaque colonne dans
asup (ou chaque ligne dans ainf). Pour cela, nous construisons un tableau debut(i)
1in
par lalgorithme
debut :=vector(n+1) :debut[1] :=1 :debut[2] :=1 :
for k from 3 to n+1 do
debut[k] :=debut[k-1]+prof[k-1] :od :
Il est alors possible de remplir asup et ainf par lalgorithme
asup :=vector(NN,0) :ainf :=vector(NN,0) :for k to N do
i :=indi[k] :j :=indj[k] :
if i < j then kk :=debut[j+1]-j+i :asup[kk] :=atab[k] :fi :
if i > j then kk :=debut[i+1]-i+j :ainf[kk] :=atab[k] :fi :
od :
ANALYSE NUMRIQUE 5
Exemple :
NN = 4
adiag = [2, 2, 2, 2]
ainf = [1, 1, 0, 1]
asup = [1, 1, 0, 1])
debut = [1, 1, 1, 2, 5]
Nous donnons enn en exemple lalgorithme de calcul du produit de A par u
avec stockage dans v
for i to n do
v[i] :=adiag[i]*u[i] :
for k from i-prof[i] to i-1 do
v[i] :=v[i]+ainf[debut[i+1]-i+k]*u[k] :od :
for k from i+1 to n do
if i > =k-prof[k] then
v[i] :=v[i]+asup[debut[k+1]-k+i]*u[k] :
fi :
od :od :
1.2. Dcomposition LU dune matrice inversible.
1.2.1. Algorithme. Pour rsoudre Ax = b, on va chercher crire A = LU o
L est une matrice triangulaire infrieure avec des 1 sur la diagonale, telle que
L +L
T
a le mme prol que A.
U est une matrice triangulaire suprieure, telle que U + U
T
a le mme prol
que A.
La rsolution de Ax = b est alors ramene aux rsolutions successives des sys-
tmes chelonns Ly = b et Ux = y.
Nous allons procder par identication :
l(i, j) =
_

_
1 si i = j
0 si i < j
l(i, j) si i prof(i) j < i
0 si 1 j < i prof(i)
u
i,j
=
_
_
_
0 si j < i
u(i, j) si j prof(j) i j
0 si 1 i < j prof(j)
nous voulons donc que
a(i, j) =
n

k=1
l(i, k) u(k, j) 1 i n
pour des (i, j) dans le prol de A, on a donc (par convention,

b
k=a
= 0 si a > b) :
a(i, j) =
n

k=1
l(i, k) u(k, j)
=
min(i,j)

k=max(iprof(i),jprof(j))
l(i, k) u(k, j)
donc si j < i alors
a(i, j) =
j

k=max(iprof(i),jprof(j))
l(i, k) u(k, j)
6 P. HELLUY
et si i j alors
a(i, j) =
i

k=max(iprof(i),jprof(j))
l(i, k) u(k, j)
et nous en dduisons que
u(1, j) = a(1, j) 1 j 1 + prof(j)
puis, pour i = 2, 3, , n
l(i, j) =
1
u(j, j)
_
_
a(i, j)
j1

k=max(iprof(i),jprof(j))
l(i, k) u(k, j)
_
_
pour i prof(i) j < i
u(i, j) = a(i, j)
i1

k=max(iprof(i),jprof(j))
l(i, k) u(k, j) pour i j i + prof(j)
il se trouve, dans cet algorithme, que L et U peuvent tre stocks dans les mmes
tableaux que A au cours de llimination, condition de prendre les calculs dans le
bon ordre ! Lalgorithme nal scrit alors :
for i from 2 to n do
for j from i-prof[i] to i-1 do
for k from max(i-prof[i],j-prof[j]) to j-1 do
ainf[debut[i+1]-i+j] :=ainf[debut[i+1]-i+j]
-ainf[debut[i+1]-i+k]*asup[debut[j+1]-j+k] :
asup[debut[i+1]-i+j] :=asup[debut[i+1]-i+j]
-ainf[debut[j+1]-j+k]*asup[debut[i+1]-i+k] :
od :
ainf[debut[i+1]-i+j] :=ainf[debut[i+1]-i+j]/adiag[j] :
od :
for k from i-prof[i] to i-1 do
adiag[i] :=adiag[i]-ainf[debut[i+1]-i+k]*asup[debut[i+1]-i+k]
od :od :
Exemple : On trouve
adiag = [2, 2, 3/2, 5/6]
asup = [1, 1, 0, 1]
ainf = [1/2, 1/2, 0, 2/3]
on a donc
A =
_

_
2 0 0 1
0 2 1 0
0 1 2 1
1 0 1 2
_

_
U =
_

_
2 0 0 1
0 2 1 0
0 0 3/2 1
0 0 0 5/6
_

_
L =
_

_
1 0 0 0
0 1 0 0
0 1/2 1 0
1/2 0 2/3 1
_

_
ANALYSE NUMRIQUE 7
1.2.2. Descente-remonte. Lalgorithme de rsolution de Ly = b (descente) scrit
y :=vector(n,0) :x :=vector(n,0) :
y[1] :=b[1] :
for i from 2 to n do
y[i] :=b[i] :
for k from i-prof[i] to i-1 do
y[i] :=y[i]-ainf[debut[i+1]-i+k]*y[k] :
od :od :
Lalgorithme de rsolution de Ux = y (remonte) scrit
x[n] :=y[n]/adiag[n] :
for i from n-1 to 1 by -1 do
x[i] :=y[i] :for k from i+1 to n do
if i > =k-prof[k] then
x[i] :=x[i]-asup[debut[k+1]-k+i]*x[k] :fi :
od :
x[i] :=x[i]/adiag[i] :
od :
1.2.3. Algorithme avec pivotage. Il arrive parfois au cours de lalgorithme que le
pivot, qui est la valeur par laquelle on divise (ici adiag(i)), est nul ou trs petit.
cause des erreurs darrondi, les rsultats obtenus peuvent alors tre trs dirents
de la solution exacte. Il faut donc modier lalgorithme. Pour cela, on amne
chaque tape en position (i, i), par change de lignes, le plus grand lment en
valeur absolue de la colonne i. Il faut mmoriser ces changes de lignes dans un
tableau (not ici sig). De plus, la structure ligne de ciel tant dtruite par ces
changes, nous prsentons un algorithme pour les matrices pleines.
factolu :=proc(A,sig,n)
#initialisations
det :=1 :sig :=vector(n) :
for i to n do sig[i] :=i :od :
for k to n-1 do
p :=A[k,k] :kp :=k :
#recherche du pivot le plus grand
for i from k to n do
if abs(A[i,i]) > abs(p) then
kp :=i :p :=A[i,i] :fi :
od :
#calcul de la signature de la permutation
#pour calcul du determinant
if not(kp=k) then det :=-det :fi :
#echange des lignes kp et k
for j to n do
interm :=A[k,j] :A[k,j] :=A[kp,j] :A[kp,j] :=interm :
od :
interm :=sig[k] :sig[k] :=sig[kp] :sig[kp] :=interm :
#elimination
for i from k+1 to n do
g :=-A[i,k]/A[k,k] :A[i,k] :=-g :
for j from k+1 to n do
A[i,j] :=A[i,j]+g*A[k,j] :od :od :od :i :=i :
#affichage du resultat : > #factorisation, permutation, determinant
op(A),op(sig),det*product(A[i,i],i=1..n) :end ;
8 P. HELLUY
Lalgorithme de descente-remonte, en tenant compte de la permutation, est le
suivant :
desrem :=proc(A,sig,b,x,n)
y :=vector(n) :
y[1] :=b[sig[1]] :
for i from 2 to n do
y[i] :=b[sig[i]]-sum(A[i,j]*y[j],j=1..i-1) :od :
x[n] :=y[n]/A[n,n] :i :=i :j :=j :
for i from n-1 by -1 to 1 do
x[i] :=(y[i]-sum(A[i,j]*x[j],j=i+1..n))/A[i,i] :
od :op(x) ;end ;

1.3. Travaux pratiques.


(1) Raliser un programme pour rsoudre un systme linaire Au = f o A est
une matrice tridiagonale.
(2) Tester ce programme en comparant les rsultats obtenus avec des rsultats
connus, dans un cas simple.
(3) En approchant le problme
u

(x) = f(x)
u(0) = u(1) = 0
par un systme linaire, rsoudre numriquement ce problme pour f(x) =
x(x 1), f(x) = x(x 1/2)(x 1), f(x) = x(x 1/3)(x 2/3)(x 1) et
pour diverses dimensions du systme linaire. Conclusions ?
(4) Rsoudre numriquement
u

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


u(0) = u(1) = 0

2. Intgration numrique
2.1. Prliminaires. On souhaite disposer dun moyen dvaluer numriquement
I(f) =
_
B
A
f(t)dt o f est une fonction continue sur un intervalle [A, B] avec A < B.
En eet, dans de nombreuses applications, cette intgrale ne se ramne pas des
fonctions simples, et mme si cest le cas, on cherche une mthode simple et utilisable
dans le cas gnral. Pour cela, nous chercherons une approximation de I(f), note
J(f) sous la forme
J(f) =
N

i=0

i
f(x
i
)
o les points x
i
sont dans lintervalle [a, b]. Les x
i
sont appels les points dint-
gration et les coecients
i
les poids dintgration.
2.2. Intgration des polynmes. Pour commencer, supposons que f est un po-
lynme de degr N, et supposons que les points dintgration x
i
sont imposs
avec
A x
0
< < x
N
B
Dans ce cas, il est possible de trouver un unique jeu de
i
tel que I(f) soit exac-
tement J(f). En eet, par linarit de I et J, il sut que I(f) = J(f) quand
ANALYSE NUMRIQUE 9
f = x x
i
pour 0 i N. Les poids dintgration sont alors solutions du
systme linaire
_

_
1 1 1
x
0
x
1
x
N
.
.
.
.
.
.
x
N
0
x
N
1
x
N
N
_

_
_

1
.
.
.

N
_

_
=
_

_
B A
B
2
A
2
2
.
.
.
B
N+1
A
N+1
N+1
_

_
A = S
qui admet une solution et une seule car
det A = (1)
E(N/2)+N

i<j
(x
i
x
j
) ,= 0
Exemples :
N = 0, x
0
=
A+B
2
, on trouve
0
= B A, soit
(1) J(f) = (B A) f(
A+B
2
)
cest la mthode des rectangles. On constate que la mthode est encore exacte
pour des polynmes de degr 1.
N = 1, x
0
= A, x
1
= B, on trouve
0
=
1
=
BA
2
, soit
(2) J(f) = (B A)
f(A) +f(B)
2
cest la mthode des trapzes.
N = 2, x
0
= A, x
1
=
A+B
2
, x
2
= B, on trouve
0
=
2
=
BA
6
,
1
=
2(BA)
3
,
soit
(3) J(f) =
(B A)
6
_
f(A) +f(B) + 4f(
A+B
2
)
_
cest la mthode de Simpson. Cette mthode est encore exacte pour des poly-
nmes de degr 3.
2.3. Intgration des fonctions rgulires. Quand f nest plus un polynme,
les formules (1), (2), et (3) peuvent encore tre crites. Cependant, on naura plus
ncessairement I(f) = J(f). Il faut alors se demander en quel sens I(f) est une
approximation de J(f). cette n, posons E(f) = J(f) I(f). E(f) est lerreur
de la mthode dintgration. Nous allons valuer E(f) dans le cas de la mthode
des rectangles.
Thorme 1. Si f est de classe C
2
sur [A, B] alors, c [A, B] tel que
E(f) =
(b a)
3
24
f

(c)
Dmonstration : commenons par crire la formule de Taylor avec reste intgral
f(x) = f(A) + (x A)f

(A) +
_
x
A
(x t)f

(t)dt
10 P. HELLUY
La formule des rectangles tant exacte pour des fonctions anes, on a (H est la
fonction de Heaviside)
E(f) = E(x
_
x
A
(x t)f

(t)dt)
= (B A)
_
B
A
max(0,
A+B
2
t)f

(t)dt +
_
B
x=A
_
B
t=A
max(0, x t)f

(t)dt
=
_
B
t=A
_
_
B
x=A
max(0,
A+B
2
t) max(0, x t)dx
_
f

(t)dt
=
_
B
t=A
_
H(
A+B
2
t)(B A)(
A+B
2
t)
(B t)
2
2
_
f

(t)dt
or H(
A+B
2
t)(BA)(
A+B
2
t)
(Bt)
2
2
est une fonction ngative sur [A, B] donc
c [A, B] tel que
E(f) = f

(c)
_
B
t=A
_
H(
A+B
2
t)(B A)(
A+B
2
t)
(B t)
2
2
_
dt
=
(B A)
3
24
f

(c)

Nous admettons le thorme suivant (qui se dmontre avec les mmes techniques
que le prcdent)
Thorme 2. Soit une mthode dintgration J N points, exacte pour des po-
lynmes de degr P avec P N. Alors, si f est de classe C
P+1
sur [A, B],
c [A, B] tel que
E(f) = K (B A)
P+2
f
(P+1)
(c)
o K = K(P) est une constante indpendante de f et de A et B.
Nous dduisons de ce thorme la majoration
[E(f)[ [K(P)[ [(B A)[
P+2
sup
c[A,B]

f
(P+1)
(c)

malheureusement, nous ne pouvons pas en dduire que [E(f)[ 0 quand P


car rien ne dit que [K(P)[ [(B A)[
P+2
sup
c[A,B]

f
(P+1)
(c)

tend vers 0. Dailleurs,


on peut exhiber des fonctions f pour lesquelles [E(f)[ quand le nombre de
points dintgration augmente ! Nous sommes donc conduits introduire les m-
thodes dintgration composites.
2.4. Mthodes composites. On part dune mthode dintgration sur lintervalle
[0, 1] exacte pour des polynmes de degr N
J(f) =
N

i=0

i
f(
i
)
o 0
0
< <
N
1 sont les points dintgration et les
i
les poids dintgra-
tion. Considrons maintenant un polynme Q de degr N dni sur un intervalle
[a, b] un changement de variables donne :
(4)
_
b
a
Q(t)dt = (b a)
_
1
0
Q((b a) +a)d = (b a)
N

i=0

i
Q((b a)
i
+a)
Une mthode dintgration composite consiste alors considrer une subdivision
de lintervalle [A, B]
A x
0
< < x
M
B
ANALYSE NUMRIQUE 11
et appliquer la formule (4) sur chaque intervalle [a, b] = [x
i
, x
i+1
] , 0 i M1.
Nous approcherons donc I(f) par
H(f) =
M

k=1
(x
k
x
k1
)
N

i=0

i
f((x
k
x
k1
)
i
+x
k1
)
Dans le cas dune subdivision rgulire, x
k
= a +kh avec h =
BA
M
et
H(f) = h
M

k=1
N

i=0

i
f((k 1 +
i
)h)
en appliquant le thorme (2) chaque intervalle [a, b] = [x
i
, x
i+1
], on obtient, dans
le cas de la subdivision rgulire :
Thorme 3.
[H(f) I(f)[ [K(P)[ (B A) sup
c[A,B]

f
(P+1)
(c)

h
P+1
Cette fois-ci lerreur tend bien vers 0 quand h 0 (cest dire quand M )
P x.
2.5. Ordre dune mthode. Continuons tudier les mthodes composites dans
le cas dune subdivision rgulire. Pour linstant nous avons obtenu des majora-
tions de lerreur. Nous nous intressons ici au cas o lon dispose dun quivalent
de lerreur quand h 0.
Dnition 2. On dit que la mthode est dordre L pour la fonction f ssi C ,= 0,
[H(f) I(f)[ Ch
L
quand h 0
Il est vident que plus lordre de la mthode est lev, plus la convergence de
H(f) vers I(f) est rapide quand h 0. Nanmoins, la taille de la constante C
nest pas ngliger !
Exemples :
On considre f(x) = e
x
, et on calcule
_
1
0
f(t)dt par la mthode des rectangles
pour 10 M 20. On trace le logarithme de lerreur en fonction du loga-
rithme de M. Si M est assez grand, on sattend ce que la courbe soit presque
une droite. Sa pente sera loppos de lordre de la mthode (car M =
ba
h
).
Lalgorithme est le suivant
intrect :=proc(f,a,b,M)
h :=evalf((b-a)/M) :
h*sum(f((i+.5)*h),i=0..M-1) ;end ;
f :=x- > exp(x) ;
intrect(f,0,1,10) ;
graf := [seq([ln(1./j),
ln(abs(exp(1.)-1.-intrect(f,0,1,j)))],j=10..20)] ;
plot(graf) ;
La pente de la courbe obtenue est de 2. Lordre de la mthode des rectangles
est donc de 2 pour la fonction exponentielle.
On considre f(x) = e
x
, et on calcule
_
1
0
f(t)dt par la mthode de Simpson
pour 10 M 20. Lalgorithme est le suivant
intsim :=proc(f,a,b,M)
h :=evalf((b-a)/M) :
h/6.*sum(f(i*h)+4.*f((i+.5)*h)+f((i+1.)*h),i=0..M-1) ;end ;
f :=x- > exp(x) ;
intsim(f,0,1,10) ;
graf := [seq([ln(1./j),
12 P. HELLUY
ln(abs(exp(1.)-1.-intrect(f,0,1,j)))],j=10..20)] ;
plot(graf) ;
Loppos de la pente de la courbe obtenue est de 4. Cest lordre de la mthode
de Simpson pour la fonction exponentielle.
On considre f(x) = ln x, et on calcule
_
1
0
f(t)dt par la mthode des rectangles.
On trouve que lordre est 1 ! Ceci montre que la rgularit de la fonction est
indispensable dans le thorme (2).
2.6. Mthode de Gauss composite. La mthode de Gauss consiste dterminer
les points dintgration
i
sur lintervalle [0, 1] de sorte que la mthode
J(f) =
N

i=0

i
f(
i
)
dj exacte pour des polynmes de degr N soit exacte pour des polynmes
de degr le plus lev possible. A priori, on dispose de N + 1 degrs de libert
supplmentaires, on sattend donc ce que la mthode puisse tre exacte pour des
polynmes de degr 2N + 1.
Considrons alors sur lensemble des polynmes le produit scalaire
P, Q) =
_
1
0
P(t)Q(t)dt
En orthonormalisant la suite de polynmes n x
n
, par le procd de Gramm-
Schmidt, on obtient
L
0
(x) = 1
L
1
(x) = 2

3
_
x
1
2
_
L
2
(x) = 6

5
_
x
2
x +
1
6
_
L
3
(x) = 20

7
_
x
3

3
2
x
2
+
3
5
x
1
20
_
L
4
(x) = 210
_
x
4
2 x
3
+
9
7
x
2

2
7
x +
1
70
_
.
.
.
nous admettrons que L
k
admet k zros distincts dans ]0, 1[. Nous allons alors mon-
trer
Thorme 4. Si les
i
sont les zros de L
N+1
alors la mthode
J(f) =
N

i=0

i
f(
i
)
est exacte pour des polynmes de degr 2N + 1.
Dmonstration : soit P un polynme de degr 2N+1. La division euclidienne
de P par L
N+1
donne
P = qL
N+1
+r
ANALYSE NUMRIQUE 13
o r est un polynme de degr N et q un polynme de degr N. Donc, par
orthogonalit des polynmes L
k
, et parce que les
i
sont racines de L
N+1
:
_
1
0
P(t)dt =
_
1
0
q(t)L
N+1
(t)dt +
_
1
0
r(t)dt =
_
1
0
r(t)dt
=
N

i=0

i
r(
i
) =
N

i=0

i
(qL
N+1
+r)(
i
) =
N

i=0

i
P(
i
)

Exemples :
N = 1
0
=
1
2

3
6
,
1
=
1
2
+

3
6
. La mthode est dordre 4 pour une
fonction rgulire.
N = 2
0
=
1
2

10
15
,
1
=
1
2
,
2
=
1
2
+

10
15
. La mthode est dordre 6 pour
une fonction rgulire.

3. Interpolation des fonctions


3.1. Interpolation de Lagrange. On se donne une fonction continue, f : [a, b]
R, et une subdivision de [a, b]
a = x
0
< < x
N
= b
le problme de linterpolation est alors de dterminer un polynme P de degr
N tel que
i = 0 N, P(x
i
) = f(x
i
)
P est dit polynme dinterpolation de f relatif la subdivision x.
Thorme 5. Pour toute subdivision x de points distincts, il existe un unique
polynme dinterpolation de f.
Dmonstration : si P(t) = a
0
+ a
1
x + + a
N
x
N
, les coecients de P sont
solutions de
_

_
1 x
0
x
N
0
1 x
1
x
N
1
.
.
.
.
.
.
1 x
N
x
N
N
_

_
_

_
a
0
a
1
.
.
.
a
N
_

_
=
_

_
f(x
0
)
f(x
1
)
.
.
.
f(x
N
)
_

_
la matrice de ce systme linaire est une matrice de Vandermonde de dterminant
,= 0 car les points x
i
sont distincts.
Thorme 6. Soit f : [a, b] R de classe C
N+1
. Soit P
N
le polynme dinterpo-
lation associ f relatif la subdivision a = x
0
< < x
N
= b alors c [a, b]
f(x) P
N
(x) = (x x
0
) (x x
N
)
f
(N+1)
(c)
(N + 1)!
Dmonstration : voir les exercices
On constate, comme pour lintgration numrique, que si on souhaite approcher
f il ne faut pas, en gnral, faire tendre N vers linni ! Il est prfrable de xer N,
de subdiviser lintervalle [a, b] en M sous-intervalles gaux sur lesquels on interpole
f avec N points. On peut alors faire tendre M vers linni. Linconvnient de cette
approche est que lapproximation de f est continue, polynmiale par morceaux,
mais nest pas drivable, en gnral, aux extrmits des M sous-intervalles.
Exemple : linterpolation P
N
de x
1
1+x
2
sur lintervalle [1, 1] pour la sub-
division x
i
= 1 +
2i
N
, i = 0 N ne converge pas vers f quand M tend vers linni
(on observe des oscillations de P
N
de plus en plus importantes. Ce comportement
de P
N
est appel phnomne de Runge).
14 P. HELLUY
Mais il existe une autre dicult que nous allons aborder sur un exemple
Exemple : soit f(x) = x sur [0, 1]. Soit la subdivision x
i
=
i
N
, i = 0 N. La
rsolution de
_

_
1 x
0
x
N
0
1 x
1
x
N
1
.
.
.
.
.
.
1 x
N
x
N
N
_

_
_

_
a
0
a
1
.
.
.
a
N
_

_
=
_

_
f(x
0
)
f(x
1
)
.
.
.
f(x
N
)
_

_
conduit bien sr (a
0
, a
1
, , a
N
) = (0, 1, 0, , 0). Or si lon tente de rsoudre
ce systme avec N = 20, numriquement pour une prcision de 10 chires, grce
la mthode LU (avec ou sans pivotage), les rsultats obtenus nont rien voir
avec la solution exacte. Lerreur peut atteindre, suivant la machine avec laquelle on
travaille, plusieurs centaines de milliers ! Le systme de Vandermonde appartient
la catgorie (heureusement plutt rare) des systmes linaires mal conditionns.
On appelle ainsi un systme pour lequel une petite erreur sur les coecients ou le
second membre entrane une erreur importante sur la solution du systme. Il est
possible de savoir si un systme Ax = b est bien ou mal conditionn en connaissant
sont conditionnement, dni par
cond(A) = |A|
_
_
A
1
_
_
o || est une norme matricielle quelconque. On a toujours cond(A) 1, et plus
ce nombre est grand plus la rsolution du systme est dicile. Dans notre exemple
cond(A) = 356551625901350880. Par ailleurs, cond(A) = 1 ssi A est une matrice
orthogonale (A
1
= A
T
). Les systmes linaires les mieux conditionns sont donc
ceux dans lesquels intervient une matrice orthogonale.
Heureusement, il existe dautres mthodes pour calculer le polynme dinterpo-
lation
3.2. Polynmes de Lagrange.
Dnition 3. Soit a = x
0
< < x
N
= b une subdivision de lintervalle [a, b].
On appelle i
me
polynme de Lagrange associ la subdivision et on note L
i
le
polynme
L
i
(x) =

j=i
(x x
j
)

j=i
(x
i
x
j
)
L
i
est un polynme de degr N, (L
0
, , L
N
) constitue une base de lensemble des
polynmes de degr N, de plus
L
i
(x
j
) =
_
1 si j = i
0 si j ,= i
Thorme 7. Soit f : [a, b] R. Soit P
N
le polynme dinterpolation associ f
relatif la subdivision a = x
0
< < x
N
= b. P
N
est alors donn par
P
N
=
N

k=0
f(x
k
)L
k
3.3. Interpolation par fonctions splines.
3.3.1. Introduction. Les inconvnients de linterpolation de Lagrange sont :
possibilits doscillations si le degr de linterpolation est trop lev.
lapproximation nest pas drivable quand on utilise linterpolation par mor-
ceaux.
ANALYSE NUMRIQUE 15
Nous allons maintenant dcrire une modication de linterpolation de Lagrange
qui permet dviter ces dsavantages.
Soit a x
0
< < x
N
b une subdivision de lintervalle [a, b], et f : [a, b] R,
une fonction. Nous noterons f(x
i
) = y
i
.
Dnition 4. Une fonction dnie sur [a, b] est appele une spline dinterpolation
de f relative la subdivision x
i
ssi
est de classe C
1
sur [a, b] (donc

(x
+
i
) =

(x

i1
) pour i = 1 N 1)
est de classe C

sur [x
i
, x
i+1
] , i = 0 N 1 (

nest pas forcment


continue sur [a, b])
(x
i
) = y
i
Remarque : spline signie latte en Anglais. Une latte de bois souple tait eec-
tivement utilise par les dessinateurs industriels pour tracer des courbes drivables
passant par des points donns.
Il existe bien sr une innit de splines dinterpolation de f (dont le polynme
dinterpolation). En fait nous allons chercher parmi toutes les splines celles dont les
oscillations sont minimales sur lintervalle [a, b] au sens o
_
b
a

(t)
2
dt est minimale
En termes physiques, la quantit
_
b
a

(t)
2
dt est dailleurs lnergie de exion de la
latte. Nous allons donc calculer la position eective dune latte exible qui passe
par les points (x
i
, f(x
i
)).
3.3.2. Caractrisation.
Thorme 8. Il existe une unique spline dinterpolation dont lnergie est mini-
male. Cette spline vrie :
la restriction de [x
i
, x
i+1
] est un polynme de degr 3 pour i = 0 N1
(x
0
) = y
0
, (x
N
) = y
N
(x
+
i
) = (x

i
) = y
i
pour i = 1 N 1

(x
+
i
) =

(x

i
) pour i = 1 N 1

(x
0
) =

(x
N
) = 0

(x
+
i
) =

(x

i
) pour i = 1 N 1
Ide de la dmonstration : Soit C lensemble des splines dinterpolation de f
relativement x
i
C =
_
, C
1
[a, b] C

[x
i
, x
i+1
] , i = 0 N 1, (x
i
) = y
i
_
C est un ensemble convexe. Soit V lespace vectoriel
V =
_
, C
1
[a, b] C

[x
i
, x
i+1
] , i = 0 N 1, (x
i
) = 0
_
On a C + tV C pour tout rel t. Soit E() =
_
b
a

(t)
2
dt. Pour tout dans V ,
et tout rel t, on a
E() E( +t)
par consquent,
d
dt
E( +t)

t=0
= 0
ce qui se traduit (aprs calculs) par
V,
_
b
a

(t)

(t) = 0
16 P. HELLUY
On considre alors une fonction support dans ]x
i
, x
i+1
[ (le support dune fonc-
tion est ladhrence du plus grand ouvert sur lequel la fonction nest pas nulle),
nous avons alors, aprs intgrations par parties sur [x
i
, x
i+1
]
_
b
a

(4)
(t)(t) = 0
et ceci tant vrai pour toute fonction support dans ]x
i
, x
i+1
[, on en dduit que
sur cet ouvert

(4)
(x) = 0
do la premire assertion. Les assertions 2, 3 et 4 sont videntes car C
Enn, pour C, on a (en convenant de prolonger par 0 en dehors de [a, b])
_
b
a

(t)

(t) =
_
b
a

(t)

(t) +
N

i=0

(x
i
)
_

(x

i
)

(x
+
i
)
_
=
_
b
a

(4)
(t)(t) +
N

i=0

(x
i
)
_

(x

i
)

(x
+
i
)
_
+
N

i=0
(x
i
)
_

(x
+
i
)

(x

i
)
_
=
N

i=0

(x
i
)
_

(x

i
)

(x
+
i
)
_
= 0
en choisissant convenablement , on en dduit les assertions 5 et 6.
3.3.3. Calcul de la spline. Pour calculer pratiquement la spline minimale, on pose
M
i
=

(x
i
). En particulier, M
0
= M
N
= 0. Sur lintervalle [x
i
, x
i+1
], est alors
donn par
(x) = 1/6
(x
i+1
x) (x x
i
) (x 2 x
i+1
+x
i
)
x
i+1
x
i
M
i
1/6
(x
i+1
x) (x x
i
) (x 2 x
i
+x
i+1
)
x
i+1
x
i
M
i+1
+
y
i+1
y
i
x
i+1
x
i
x +
y
i
x
i+1
x
i
y
i+1
x
i+1
x
i
de plus

(x
i
) = 1/3 M
i
(x
i+1
x
i
) 1/6 M
i+1
(x
i+1
x
i
) +
y
i+1
y
i
x
i+1
x
i

(x
i+1
) = 1/6 M
i
(x
i+1
x
i
) + 1/3 M
i+1
(x
i+1
x
i
) +
y
i+1
y
i
x
i+1
x
i
le raccord des drives au point x
i
implique donc
1/6 M
i+1
(x
i+1
x
i
) + 1/6 M
i1
(x
i
x
i1
) + 1/3 M
i
(x
i+1
x
i1
)
=
y
i+1
y
i
x
i+1
x
i

y
i
y
i1
x
i
x
i1
ANALYSE NUMRIQUE 17
Pour simplier, considrons une subdivision rgulire (x
i+1
x
i
= h =
ba
N
), les
M
i
sont alors solutions de
_

_
2/3 1/6 0
1/6 2/3 1/6
1/6
.
.
.
.
.
. 0
.
.
.
.
.
. 1/6
0 1/6 2/3
_

_
_

_
M
1
.
.
.
M
N1
_

_
=
_

_
y22y1+y0
h
2
.
.
.
y
N
2y
N1
+y
N2
h
2
_

_
il sut donc de rsoudre un systme tridiagonal.

4. Rsolution numrique des quations non-linaires


4.1. Introduction. Soit f : ferm R
p
R
p
. On cherche x tel que f(x) =
0. Nous supposerons quun moyen (une tude graphique, une raison physique, un
thorme, lintuition ou ... la chance !) nous ont permis de voir que x tait lunique
solution dans . Nous supposerons aussi que f est au moins continue sur .
En gnral, les mthodes de rsolution de f(x) = 0 sont des mthodes itratives.
Elles consistent construire une suite x
n
convergente (le plus rapidement possible)
vers x. Nous envisagerons le cas o cette suite est de la forme
x
0

x
n+1
= g(x
n
)
o g est une application de dans continue.
4.2. Le thorme du point xe. Tout le monde a dj entendu parler de
Thorme 9. Soit g une application dnie sur ferm, qui vrie
(1) g() (cette condition est indispensable pour que la suite x
n
soit d-
nie !)
(2) g est KLipschitzienne sur avec K < 1, cest dire
K, 0 < K < 1, (x, y) , |g(x) g(y)| K|x y|
Alors lquation g(x) = x admet une solution et une seule dans . De plus pour
toute suite de la forme
x
0

x
n+1
= g(x
n
)
on a lim
n
x
n
= x.
Dmonstration :
(1) unicit : soient x
1
et x
2
, deux solutions. On a :
|x
1
x
2
| K|x
1
x
2
|
et K < 1 x
1
= x
2
(2) existence : soit la suite
x
0

x
n+1
= g(x
n
)
Puisque f est KLipschitzienne, on a
|x
n+1
x
n
| K|x
n
x
n1
|
18 P. HELLUY
donc
(5) |x
n+1
x
n
| K
n
|x
1
x
0
|
Calculons maintenant, pour p > n
p

k=n+1
x
k
x
k1
= x
p
x
n
par (5), on obtient
|x
p
x
n
|
p

k=n+1
K
k1
|x
1
x
0
| K
n
|x
1
x
0
|

k=0
K
k
=
K
n
1 K
|x
1
x
0
| 0 quand (n, p)
la suite (x
n
) est donc de Cauchy dans , donc convergente dans car
est un ferm dans un complet donc complet. De plus, soit l, la limite de
cette suite, par continuit de g, g(l) = l, do lexistence du point xe.
Il est important de disposer de critre pratique assurant quune fonction g est
KLipschitzienne, avec K < 1.
Thorme 10. Si |g

(x)| K pour tout x dans convexe, alors, g est KLipschitzienne


sur .
Dmonstration : soient x et y dans . Puisque le segment [x, y] est inclus dans
, on a
g(y) g(x) =
_
1
0
g

(x +t(x y))(x y)
donc
|g(y) g(x)|
_
1
0
|g

(x +t(x y))(x y)| dt

_
1
0
|g

(x +t(x y))| |(x y)| dt


K|(x y)|

En gnral, la mthode du point xe, quand elle converge, est une mthode
dordre 1. Cest dire que, en gros, chaque itration lerreur est multiplie par
un coecient plus petit que un. Voici un nonc plus prcis
Thorme 11. Supposons que la mthode du point xe converge et que g est de
classe C
2
, alors
x
n+1
x = g

(x)(x
n
x) +O(|x
n
x|
2
)
en particulier, en dimension un despace, si x
n
,= x,
x
n+1
x
x
n
x
g

(x)
et donc, [g

(x)[ 1.
Nous sommes conduits la dnition suivante
Dnition 5. Une mthode du point xe est dordre k ssi
x
n+1
x
(x
n
x)
k
l avec 0 < [l[ < +
ANALYSE NUMRIQUE 19
4.3. Mthode de Newton. La mthode de Newton est un cas particulier de la
mthode du point xe. Quand elle converge, elle est en gnral dordre 2, do son
intrt. Lide est la suivante :
Supposons que lon connaisse ltape n une approximation x
n
de la solution x.
Posons
x
n+1
= x
n
+dx
n
Nous allons chercher un accroissement dx
n
qui amliore la prcision de lapproxi-
mation. Un dveloppement de Taylor donne
f(x
n
+dx
n
) = f(x
n
) +f

(x
n
)dx
n
+O(|dx
n
|
2
)
On souhaite bien sr que f(x
n
+ dx
n
) soit le plus proche possible de zro. En
ngligeant les termes du second ordre, il est donc logique de rsoudre
f(x
n
) +f

(x
n
)dx
n
= 0
soit
x
n+1
= x
n
f

(x
n
)
1
f(x
n
)
Bien sr, la suite (x
n
) nest pas toujours dnie. Il faut, en particulier, que f

(x
n
)
soit une matrice inversible et que x
n+1
. Pour tudier cette suite, on peut par
exemple essayer dappliquer le thorme du point xe la fonction g : x g(x) =
x f

(x)
1
f(x).
Vrions, dans le cas de la dimension 1, que la mthode est, sous certaines
hypothses, une mthode dordre 2.
Thorme 12. Soit f de classe C
2
sur [a, b] admettant une unique racine x dans
[a, b]. On suppose que :
[f

(x)[ m > 0 et [f

(x)[ M sur [a, b]


x
0
[x , x +] avec <
2m
M
alors la mthode de Newton converge et
[x
n
x[ [x
0
x[
2
n
_
M
2m
_
2
n
1
Dmonstration : la suite x
n
est dnie par
x
n+1
x = x
n
x f

(x
n
)
1
(f(x
n
) f(x))
par ailleurs,
f(x
n
) f(x) = (x
n
x) f

(x
n
) +
(x
n
x)
2
2
f

() avec ]x
n
, x[
donc
x
n+1
x = (x
n
x)
2
f

()
2f

(x
n
)
et
[x
n+1
x[ [x
n
x[
2
M
2m
ce qui prouve lexistence de la suite et sa convergence. On a aussi
x
n+1
x
(x
n
x)
2

f

(x)
2f

(x)
Si f

(x) ,= 0, la mthode est dordre 2.


4.4. Exercices. 1) Montrer que lquation f(x) = x
3
2 possde une solution
unique et quon peut obtenir celle-ci en utilisant la mthode de Newton partir
de x
0
= 1. Donner une minoration du nombre ditrations eectuer pour obtenir
une prcision = 10
10

20 P. HELLUY
5. Rsolution numrique des quations diffrentielles
5.1. Rappels. Soient P un entier 1, T un rel > 0, un lment de R
P
et f
une application continue de [0, T] R
P
valeurs dans R
P
. On cherche une solution
y : [0, T] R
P
lquation direntielle
y

(t) = f(t, y(t)) t [0, T]


y(0) = (6)
Pour simplier lexpos, nous poserons P = 1. Mais les rsultats et mthodes dcrits
dans le cas scalaire stendent sans dicult au cas vectoriel. Rappelons le thorme
de Cauchy-Lipschitz
Thorme 13. Si f est Lipschitzienne par rapport y, cest dire sil existe
K > 0 tel que
(t, y, y

) [0, T] R
P
R
P
, [f(t, y) f(t, y

)[ K[y y

[
alors le problme (6) admet une unique solution (pour T assez petit).
Il est souhaitable, avant daborder lanalyse numrique de ce type de problme,
que ce thorme soit applicable. En eet, considrons lexemple suivant
y

=
_
[y[
y(0) = 0
il est clair que y(t) = 0 et y(t) =
t
2
4
sont solutions. Il est dicile dimaginer une
mthode permettant dapprocher plusieurs solutions en mme temps !
5.2. Mthode dEuler explicite.
Principe. Posons t = h = T/N o N est un entier 1. Si t reprsente le temps,
t est souvent appel le pas de temps. Soit t
n
= nt une subdivision rgulire de
lintervalle [0, T]. Il est aussi possible (et mme souhaitable dans les applications !)
denvisager des subdivisions irrgulires. Nous allons chercher un vecteur (y
n
)
0nN
tel que y
n
y(t
n
) o y est la solution exacte de (6).
Puisque
y(t
n+1
) y(t
n
)
t
= y

(t
n
) +(t) avec lim
t0
(t) = 0
= f(t
n
, y(t
n
)) +(t)
il est naturel de rsoudre
y
n+1
y
n
t
= f(t
n
, y
n
) 1 n N
y
0
=
Le vecteur y peut ainsi se calculer par rcurrence de proche en proche. On dit quon
utilise une mthode ou un schma de rsolution explicite.
Exemple. Soit lquation ( ,= 0)
y

= y
y(0) = 1
dont la solution est y(t) = e
t
. La mthode dEuler explicite donne y
n
= (1
t)
n
. En posant t = nt, et en faisant t 0, on obtient
y
n
= (1 t)
t
t
e
t
= y(t)
Dans ce cas, la mthode dEuler permet dapprocher y(t) quand t 0. On dira
que la mthode est convergente.
ANALYSE NUMRIQUE 21
Supposons maintenant > 0. Il est alors clair que y(t) 0 quand t . Il est
bien videmment souhaitable que ce soit aussi le cas pour y
n
quand n . Or
ceci nest vrai que si [1 t[ < 1 soit
t <
2

Cette condition (dite de stabilit) doit donc tre vrie par t pour que la solution
discrte y
n
ressemble la solution y. Elle est contraignante si est trs grand en
valeur absolue.
5.3. Mthode dEuler implicite.
Principe. Puisque
y(t
n+1
) y(t
n
)
t
= y

(t
n+1
) +(t) avec lim
t0
(t) = 0
= f(t
n+1
, y(t
n+1
)) +(t)
il est galement naturel de rsoudre
y
n+1
y
n
t
= f(t
n+1
, y
n+1
) 1 n N
y
0
=
Le vecteur y peut se calculer par rcurrence de proche en proche, condition de
savoir rsoudre chaque tape une quation en y
n+1
. On dit quon utilise une
mthode ou un schma de rsolution implicite.
Exemple. Soit lquation ( ,= 0)
y

= y
y(0) = 1
dont la solution est y(t) = e
t
. La mthode dEuler implicite donne y
n
= (1 +
t)
n
. En posant t = nt, et en faisant t 0, on obtient
(7) y
n
= (1 +t)
t
t
e
t
= y(t)
Dans ce cas, la mthode dEuler permet aussi dapprocher y(t) quand t 0.
Supposons maintenant > 0. Il est alors clair que y(t) 0 quand t . Cest
aussi le cas pour y
n
quand n indpendamment de t. Le schma dEuler
implicite est dit inconditionnellement stable.
La mthode implicite est plus dicile mettre en oeuvre car elle implique la
rsolution dune quation chaque tape. Cependant, elle permet dobtenir, en
gnral, des rsultats plus prcis, avec un pas de temps moins grand.
5.4. Mthode explicite un pas. Nous allons dans la suite de ce cours nous
attacher aux mthodes explicites un pas. Ce sont des schmas qui scrivent
y
n+1
= y
n
+ t (t
n
, y
n
, t)
y
0
= (8)
La mthode dEuler explicite entre dans ce cadre, avec (t
n
, y
n
, t) = f(t
n
, y
n
).
5.4.1. Ordre dune mthode.
Dnition 6. Soit y la solution de (6). La mthode (8) sera dite consistante
lordre l ssi
sup
t[0,T]

y(t + t) y(t)
t
(t, y(t), t)

= O(t
l
)
nous admettrons quil sut de vrier que
t [0, T]

y(t + t) y(t)
t
(t, y(t), t)

= O(t
l
)
22 P. HELLUY
Il est facile de vrier que la mthode dEuler explicite est dordre 1
5.4.2. Stabilit. Nous allons dnir une autre notion de stabilit, ne pas confondre
avec celle introduite en (7).
Dnition 7. La mthode (8) est stable ssi il existe deux constantes A et B > 0
telles que si y
n
, z
n
,
n
sont solutions de
y
n+1
= y
n
+ t (t
n
, y
n
, t)
y
0
=
z
n+1
= z
n
+ t ( (t
n
, z
n
, t) +
n
)
z
0
=
alors, pour tout n N
[y
n
z
n
[ A[ [ +B max
0iN
[
i
[
Le rsultat principal de stabilit est le suivant
Thorme 14. Si est lipschitzienne par rapport y alors la mthode est stable.
dmonstration : soient
y
n+1
= y
n
+ t (t
n
, y
n
, t)
y
0
=
z
n+1
= z
n
+ t ( (t
n
, z
n
, t) +
n
)
z
0
=
on a
[y
n+1
z
n+1
[ [y
n
z
n
[ + t [
n
[ + t [(t
n
, y
n
, t) (t
n
, z
n
, t)[
(1 +Lt) [y
n
z
n
[ + t [
n
[
il est alors facile de montrer (par rcurrence) que
[y
n
z
n
[ (1 +Lt)
n
[y
0
z
0
[ +
(1 +Lt)
n
1
L
max
pn
[
p
[
par ailleurs, si k > 0
1 +k e
k
donc
(1 +Lt)
n
e
Lnt
e
LT
car 0 nt Nt = T
on obtient alors
[y
n
z
n
[ e
LT
[y
0
z
0
[ +
e
LT
1
L
max
pn
[
p
[
et la mthode est stable.
5.4.3. Convergence.
Dnition 8. Une mthode est convergente lordre l ssi
lim
N
max
0iN
[y
i
y(t
i
)[ = O(t
l
)
Thorme 15. Une mthode stable et consistante est convergente
ANALYSE NUMRIQUE 23
Dmonstration : la mthode tant consistante, on a
y(t
n+1
) = y(t
n
) + t((t
n
, y(t
n
), t) +
n
)
avec
max
n
[
n
[ = O(t
l
)
et
y
n+1
= y
n
+ t(t
n
, y
n
, t)
la stabilit implique alors
[y
n
y(t
n
)[ O(t
l
)
do la convergence.
5.4.4. Exemples.
Mthode dEuler amliore. Cette mthode scrit
(t, y, h) = f(t +
h
2
, y +
h
2
f(t, y))
elle est stable et consistante lordre 2.
Mthode de Runge-Kutta dordre 4. Cette mthode scrit
(t, y, h) =
1
6
(k
1
+ 2k
2
+ 2k
3
+k
4
)
avec
k
1
= f(t, y)
k
2
= f(t +
h
2
, y +
h
2
k
1
)
k
3
= f(t +
h
2
, y +
h
2
k
2
)
k
4
= f(t +h, y +hk
3
)
elle est stable et consistante lordre 4.

6. Introduction la rsolution itrative des systmes linaires


6.1. Introduction. Soit le systme linaire
Ax = b
o A est une matrice N N inversible. Une mthode itrative de rsolution de ce
systme consiste construire une suite (x
(n)
) de vecteurs, convergente vers lunique
solution x. Lintrt des mthodes itratives, compares aux mthodes directes, et
dtre simple programmer et de ncessiter moins de place en mmoire. En revanche
le temps de calcul est souvent plus long.
En pratique, les mthodes les plus ecaces consistent mlanger les techniques
directes et itratives : on commence par calculer, de faon approche, en conomi-
sant la mmoire, une factorisation LU de A. Puis on lance une mthode itrative
base sur cette factorisation incomplte. La convergence est alors trs rapide.
6.2. Mthodes de Jacobi et de Gauss-Seidel.
24 P. HELLUY
6.2.1. Mthode de Jacobi pour les matrices diagonale dominante. Les algorithmes
que nous allons dcrire sapplique une famille de matrices que lon rencontre
souvent en pratique.
Dnition 9. La matrice A = (a
ij
)
1iN1jN
est dite diagonale strictement
dominante ssi
i [a
ii
[ >

k=i
[a
ik
[
Lalgorithme de Jacobi scrit alors, un vecteur x
(0)
tant donn
x
(n+1)
i
=
1
a
ii
_
_
b
i

k=i
a
ik
x
(n)
k
_
_
Il scrit aussi
x
(n+1)
= D
1
_
b (L +U)x
(n)
_
o lon a pos
A = L +D +U
L : triangulaire infrieure
D : diagonale de A
U : triangulaire suprieure
Lalgorithme de Jacobi est, on le voit, particulirement simple. Il ncessite le sto-
ckage des deux vecteurs x
(n)
et x
(n+1)
6.2.2. Mthode de Gauss-Seidel. Lalgorithme de Gauss-Seidel scrit, un vecteur
x
(0)
tant donn
x
(n+1)
i
=
1
a
ii
_
b
i

i1

k=1
a
ik
x
(n+1)
k

N

k=i+1
a
ik
x
(n)
k
_
i = 1, 2, , N
Il scrit aussi
x
(n+1)
= (D +L)
1
_
b Ux
(n)
_
(on aurait aussi pu envisager
x
(n+1)
= (D +U)
1
_
b Lx
(n)
_
condition de faire varier lindice i de N 1).
Lalgorithme de Gauss-Seidel ne ncessite quun vecteur de stockage, x
(n)
tant
remplac par x
(n+1)
au cours de litration. Il est en gnral plus rapide que lalgo-
rithme de Jacobi, donc prfrable.
6.2.3. Convergence de la mthode de Jacobi.
Thorme 16. Si A est diagonale strictement dominante, alors lalgorithme de
Jacobi converge.
Dmonstration : soit x la solution du systme linaire, on a
x
(n+1)
i
x
i
=
1
a
ii

k=i
a
ik
_
x
(n)
k
x
k
_
donc
max
i

x
(n+1)
i
x
i


1
a
ii

k=i
[a
ik
[ max
k

x
(n)
k
x
k

K max
k

x
(n)
k
x
k

avec 0 K < 1
ANALYSE NUMRIQUE 25
car A est diagonale strictement dominante. De plus max
i
[y
i
[ = |y|

est une
norme sur R
N
. On a ainsi montr que
_
_
_x
(n+1)
x
_
_
_

K
_
_
_x
(n)
x
_
_
_

ce qui prouve la convergence.


Remarque : en pratique la stricte dominance nest pas indispensable. Lingalit
large sut pour la plupart des matrices inversibles.
6.3. Mthodes de gradient. Si A est une matrice symtrique dnie positive, il
existe une mthode simple programmer et trs ecace : la mthode du gradient
conjugu dont nous proposons la description en exercice.
6.3.1. Mthode du gradient pas optimal. A est une matrice symtrique dnie
positive N N. On considre x lunique solution du systme linaire Ax = b
1) Montrer que rsoudre Ax = b revient trouver le minimum de
J(x) =
1
2
Ax, x) b, x)
(., .) dsigne le produit scalaire usuel sur R
N
)
2) On souhaite construire une suite de vecteurs x
(k)
convergente vers x. Les
notations suivantes auront cours dans la suite du problme :
r
(k)
= b Ax
(k)
: rsidu ltape k
e
(k)
= x
(k)
x : erreur ltape k
E(x) = A(x x), x x)
vrier que
E(x) = r, e) =

r, A
1
r
_
puis que
J(x) = r
3) Posons
x
(k+1)
= x
(k)
+
(k)
p
(k)
p
(k)
est appel direction de descente et
(k)
coecient de descente. Justier cette
terminologie.
a) Montrer que le coecient optimal de descente pour la direction p
(k)
est donn
par

(k)
=

r
(k)
, p
(k)
_

Ap
(k)
, p
(k)
_
puis que

r
(k)
, p
(k+1)
_
= 0
b) Montrer que
E(x
(k+1)
) = E(x
(k)
)(1
(k)
)
o
(k)
est donn par

(k)
=

r
(k)
, p
(k)
_
2

Ap
(k)
, p
(k)
_
A
1
r
(k)
, r
(k)
_
c) On choisit comme direction de descente p
(k)
= r
(k)
(mthode du gradient
pas optimal). Montrer que la suite x
(k)
converge vers x.
26 P. HELLUY
6.3.2. Mthode du gradient conjugu. 4) a) On pose cette fois-ci p
(k)
= r
(k)
+

(k)
p
(k1)
. Calculer
(k)
an que
(k)
soit le plus grand possible (montrer que

(k)
=
Ap
(k)
,r
(k)
)
Ap
(k)
,p
(k1)
)
).
b) Dduire de ce qui prcde lalgorithme du gradient conjugu. Dcrire sa mise
en oeuvre.

7. Exercices et travaux pratiques


7.1. TD TP n

1.
7.1.1. Exercices. 1) Soient f C
n+1
([a, b]), a x
0
< x
1
< x
n
b, P
n
le
polynme dinterpolation de f aux points (x
i
). On se propose de montrer
f(x) P
n
(x) =
(x x
0
) (x x
n
)
(n + 1)!
f
(n+1)
() avec a b
a) Soit g : [a, b] R tel que g

existe. Montrer que si g a (n + 2) zros distincts


alors g

a au moins (n + 1) zros distincts.


b) En considrant W(t) = f(t) P
n
(t) (t x
0
) (t x
n
)K(x) o K est tel
que W(x) = 0 dmontrer le rsultat cherch.
2) On a donc
[f(x) P
n
(x)[
M
n+1
(n + 1)!

i=0
(x x
i
)

On cherche majorer [

n
i=0
(x x
i
)[ dans le cas dune subdivision rgulire de pas
h. On pose (x) =

n
i=0
(x x
i
), h = 1 et x
0
= 0 (pour simplier).
a) Montrer que (x + 1) = (x)
x+1
xn
b) En dduire que le max de [(x)[est ralis pour x
0
x x
1
c) Montrer que max
x0xx1
[(x)[
n!h
n+1
4
d) En dduire que
[f(x) P
n
(x)[
M
n+1
4(n + 1)
h
n+1
3) On souhaite crire une table de valeurs de f(x) =
_
x
0
e
t
2
/2
dt pour une sub-
division de pas h de lintervalle [0, 1]. Comment doit-on choisir h pour que linter-
polation de Lagrange 3 points donne une approximation de f 10
6
prs ?
4) Soit arccos la dtermination de la fonction inverse de cos dnie par =
arccos x x [0, ] et x = cos
a) On pose Q
n
(x) = cos(narccos x). Montrer que les fonctions Q
n
sont orthogo-
nales sur lintervalle [1, 1] relativement au poids w(x) =

1 x
2
b) Montrer que Q
n
, Q
n
) =

2
si n 1 et que Q
0
, Q
0
) =
c) Montrer que Q
n
est un polynme de degr n vriant Q
n+1
(x) = 2xQ
n
(x)
Q
n1
(x) (polynmes de Tchebychev)
5) Soit Q
n
le n
ime
polynme de Tchebychev
a) Montrer que Q
n
a des zros simples aux n points
x
k
= cos
(2k 1)
2n
k = 1 n
b) Montrer que Q
n
atteint ses extrema sur lintervalle [1, 1] aux n + 1 points
y
k
= cos
k
n
k = 0 n pour lesquels il prend alternativement les valeurs 1 et -1.
c) On considre Q
n
=
1
2
n1
Q
n
(le coecient de plus haut degr de Q
n
est 1).
Montrer que pour tout polynme P de degr n, de coecient de plus haut degr
ANALYSE NUMRIQUE 27
gal 1, on a
1
2
n1
= max
1x1

Q
n
(x)

max
1x1
[P(x)[
d) On rappelle que
[f(x) P(x)[
M
n+1
(n + 1)!

i=0
(x x
i
)

o P dsigne le polynme dinterpolation de f relativement la subdivision (x


i
).
Comment choisir les (x
i
) pour que lerreur dinterpolation soit la plus petite pos-
sible ?
7.1.2. Travaux pratiques. Le but de ce TP est de mettre en vidence certains ph-
nomnes lis linterpolation des fonctions. Pour les calculs, on saidera du logiciel
Maple. Le compte-rendu (un par binme) est remettre la n de la seconde sance
de 1h30. La qualit de la prsentation et la prcision de la rdaction (plus que la
longueur du compte-rendu) auront un poids important dans la notation.
Considrons sur lintervalle [1, 1] les fonctions suivantes :
f
1
: x sin(2x)
f
2
: x
1
1
10
+x
2
f
3
: x
_
1 si x < 0
+1 si x 0
Un entier N > 0 tant donn, on considre galement la subdivision rgulire
x
i
= 1 +
2i
N
0 i N
1) a) Calculer, avec une prcision de 5 chires signicatifs, le polynme dinter-
polation P de f
1
en utilisant la matrice de Vandermonde et N = 20. Que constate-
t-on ?
On pourra saider des commandes Maple suivantes, en les commentant.
> ? intro
> restart :
> with(linalg) :
> ? linalg
> ? Digits
> Digits :=5 ;
> N :=20 ;
> A :=matrix(N+1,N+1,(i,j)- > x[i-1]^(j-1)) ;
> x :=array(0..N,[seq(-1.+2.*i/N,i=0..N)]) ;
> A :=map(eval,A) ;
> f :=x- > sin(2*Pi*x) ;
> y :=[seq(evalf(f(x[i-1])),i=1..N+1)] ;
> c :=evalm(inverse(A)&*y) ;
> P :=sum(c[i]*t^(i-1),i=1..N+1) ;
> ? plot
> plot({P,f(t)},t=-1..1,-2..2) ;
b) Refaire le mme calcul avec plus de prcision. Conclusion?
2) En utilisant la commande interp de Maple, calculer le polynme dinterpo-
lation de f
1
, f
2
et f
3
pour N = 5, 10 et 20. Conclusion ?
28 P. HELLUY
Indication :
> restart ;N :=10 ;
> ? seq
> x :=[seq(-1.+2.*i/N,i=0..N)] ;
> f :=x- > sin(2*evalf(Pi)*x) ;
> y :=[seq(f(-1.+2.*i/N),i=0..N)] ;
> ? interp
> P :=interp(x,y,t) ;
> plot({P,f(t)},t=-1..1) ;
3) Refaire les calculs prcdents en utilisant la subdivision de Tchebychev
x
i
= cos(i/N) 0 i N
4) Calculer les splines minimales dinterpolation de f
1
, f
2
et f
3
pour une subdi-
vision rgulire et pour N = 5, 10 et 20. On pourra sinspirer, en les commentant,
des instructions suivantes :
> restart ;
> N :=10 ;
> ?spline
> x :=[seq(-1.+2.*i/N,i=0..N)] ;
> f :=x- > 1./(.1+x^2) ;
> y :=[seq(f(-1.+2.*i/N),i=0..N)] ;
> readlib(spline) ;
> P :=spline(x,y,t) ;
> plot({P,f(t)},t=-1..1) ;
Vrier, pour N = 5 que la solution donne par Maple est correcte (calculer
les drives secondes aux points dinterpolation et comparer avec les formules du
cours).

7.2. TD TP n

2.
7.2.1. Exercices. 1) Soient f C
n+1
([a, b]), a x
0
< x
1
< x
n
b, P
n
le
polynme dinterpolation de f aux points (x
i
). On se propose de montrer
f(x) P
n
(x) =
(x x
0
) (x x
n
)
(n + 1)!
f
(n+1)
() avec a b
a) Soit g : [a, b] R tel que g

existe. Montrer que si g a (n + 2) zros distincts


alors g

a au moins (n + 1) zros distincts.


b) En considrant W(t) = f(t) P
n
(t) (t x
0
) (t x
n
)K(x) o K est tel
que W(x) = 0 dmontrer le rsultat cherch.
2) On a donc
[f(x) P
n
(x)[
M
n+1
(n + 1)!

i=0
(x x
i
)

On cherche majorer [

n
i=0
(x x
i
)[ dans le cas dune subdivision rgulire de pas
h. On pose (x) =

n
i=0
(x x
i
), h = 1 et x
0
= 0 (pour simplier).
a) Montrer que (x + 1) = (x)
x+1
xn
b) En dduire que le max de [(x)[est ralis pour x
0
x x
1
c) Montrer que max
x0xx1
[(x)[
n!h
n+1
4
d) En dduire que
[f(x) P
n
(x)[
M
n+1
4(n + 1)
h
n+1
ANALYSE NUMRIQUE 29
3) On souhaite crire une table de valeurs de f(x) =
_
x
0
e
t
2
/2
dt pour une sub-
division de pas h de lintervalle [0, 1]. Comment doit-on choisir h pour que linter-
polation de Lagrange 3 points donne une approximation de f 10
6
prs ?
4) Soit arccos la dtermination de la fonction inverse de cos dnie par =
arccos x x [0, ] et x = cos
a) On pose Q
n
(x) = cos(narccos x). Montrer que les fonctions Q
n
sont orthogo-
nales sur lintervalle [1, 1] relativement au poids w(x) =

1 x
2
b) Montrer que Q
n
, Q
n
) =

2
si n 1 et que Q
0
, Q
0
) =
c) Montrer que Q
n
est un polynme de degr n vriant Q
n+1
(x) = 2xQ
n
(x)
Q
n1
(x) (polynmes de Tchebychev)
5) Soit Q
n
le n
ime
polynme de Tchebychev
a) Montrer que Q
n
a des zros simples aux n points
x
k
= cos
(2k 1)
2n
k = 1 n
b) Montrer que Q
n
atteint ses extrema sur lintervalle [1, 1] aux n + 1 points
y
k
= cos
k
n
k = 0 n pour lesquels il prend alternativement les valeurs 1 et -1.
c) On considre Q
n
=
1
2
n1
Q
n
(le coecient de plus haut degr de Q
n
est 1).
Montrer que pour tout polynme P de degr n, de coecient de plus haut degr
gal 1, on a
1
2
n1
= max
1x1

Q
n
(x)

max
1x1
[P(x)[
d) On rappelle que
[f(x) P(x)[
M
n+1
(n + 1)!

i=0
(x x
i
)

o P dsigne le polynme dinterpolation de f relativement la subdivision (x


i
).
Comment choisir les (x
i
) pour que lerreur dinterpolation soit la plus petite pos-
sible ?
7.2.2. Travaux pratiques. Le but de ce TP est de mettre en vidence certains ph-
nomnes lis linterpolation des fonctions. Pour les calculs, on saidera du logiciel
Maple. Le compte-rendu (un par binme) est remettre la n de la seconde sance
de 1h30. La qualit de la prsentation et la prcision de la rdaction (plus que la
longueur du compte-rendu) auront un poids important dans la notation.
Considrons sur lintervalle [1, 1] les fonctions suivantes :
f
1
: x sin(2x)
f
2
: x
1
1
10
+x
2
f
3
: x
_
1 si x < 0
+1 si x 0
Un entier N > 0 tant donn, on considre galement la subdivision rgulire
x
i
= 1 +
2i
N
0 i N
1) a) Calculer, avec une prcision de 5 chires signicatifs, le polynme dinter-
polation P de f
1
en utilisant la matrice de Vandermonde et N = 20. Que constate-
t-on ?
On pourra saider des commandes Maple suivantes, en les commentant.
> ? intro
> restart :
30 P. HELLUY
> with(linalg) :
> ? linalg
> ? Digits
> Digits :=5 ;
> N :=20 ;
> A :=matrix(N+1,N+1,(i,j)- > x[i-1]^(j-1)) ;
> x :=array(0..N,[seq(-1.+2.*i/N,i=0..N)]) ;
> A :=map(eval,A) ;
> f :=x- > sin(2*Pi*x) ;
> y :=[seq(evalf(f(x[i-1])),i=1..N+1)] ;
> c :=evalm(inverse(A)&*y) ;
> P :=sum(c[i]*t^(i-1),i=1..N+1) ;
> ? plot
> plot({P,f(t)},t=-1..1,-2..2) ;
b) Refaire le mme calcul avec plus de prcision. Conclusion?
2) En utilisant la commande interp de Maple, calculer le polynme dinterpo-
lation de f
1
, f
2
et f
3
pour N = 5, 10 et 20. Conclusion ?
Indication :
> restart ;N :=10 ;
> ? seq
> x :=[seq(-1.+2.*i/N,i=0..N)] ;
> f :=x- > sin(2*evalf(Pi)*x) ;
> y :=[seq(f(-1.+2.*i/N),i=0..N)] ;
> ? interp
> P :=interp(x,y,t) ;
> plot({P,f(t)},t=-1..1) ;
3) Refaire les calculs prcdents en utilisant la subdivision de Tchebychev
x
i
= cos(i/N) 0 i N
4) Calculer les splines minimales dinterpolation de f
1
, f
2
et f
3
pour une subdi-
vision rgulire et pour N = 5, 10 et 20. On pourra sinspirer, en les commentant,
des instructions suivantes :
> restart ;
> N :=10 ;
> ?spline
> x :=[seq(-1.+2.*i/N,i=0..N)] ;
> f :=x- > 1./(.1+x^2) ;
> y :=[seq(f(-1.+2.*i/N),i=0..N)] ;
> readlib(spline) ;
> P :=spline(x,y,t) ;
> plot({P,f(t)},t=-1..1) ;
Vrier, pour N = 5 que la solution donne par Maple est correcte (calculer
les drives secondes aux points dinterpolation et comparer avec les formules du
cours).

7.3. TD TP n

3.
7.3.1. Exercices.
ANALYSE NUMRIQUE 31
Rsolution itrative des quations non linaires. 1) Montrer que lquation f(x) =
x
3
2 possde une solution unique et quon peut obtenir celle-ci en utilisant
la mthode de Newton partir de x
0
= 1. Donner une minoration du nombre
ditrations eectuer pour obtenir une prcision = 10
10
2) Soit la fonction f(x) = cos x xe
x
avec 0 x

2
a) Montrer que cette fonction a une et une seule racine l dans [0,

2
]
b) Expliciter la mthode de Newton. Donner une valeur de x
0
assurant la conver-
gence vers l.
c) Soit la mthode suivante
x
0
[a, b]
x
n+1
= cos x
n
e
xn
= g(x
n
)
Montrer que lon peut choisir un intervalle [a, b] [0,

2
] telle que la mthode
converge vers l (montrer que [x
n
l[ L
n
[x
0
l[. Que vaut L?)
d) Montrer que lon peut prendre [a, b] = [0,

2
]
e) Calculer un nombre ditrations susant pour obtenir une prcision de 10
6
si [a, b] = [0.45,

2
]
Rsolution des sytmes linaires. 1) On considre le problme : trouver u C
2
[0, 1]
solution de
u

(x) +c
2
(x)u(x) = f(x) (9)
u(0) = u(1) = 0
c et f sont des fonctions continues sur [0, 1] . N N

tant donn, on pose h =


1
N
et x
i
= ih pour 0 i N. Montrer que
u

(x
i
) =
u(x
i+1
) +u(x
i1
) 2u(x
i
)
h
2
+o(h)
2) On remplace (9) par un problme plus simple : linconnue devient un vecteur
(u
i
)
0iN
(o a priori, u
i
u(x
i
)). Proposer un systme linaire que pourrait
vrier les (u
i
)
0iN
.
3) Une matrice A est dite tridiagonale si elle est de la forme
A =
_
_
_
_
_
_
d
1
u
1
0
l
1
.
.
.
.
.
.
.
.
.
.
.
. u
n1
0 l
n1
d
n
_
_
_
_
_
_
Proposer un algorithme (adapt de lalgorithme gnral) pour calculer la dcompo-
sition LU de A (on supposera que les pivots ne sont jamais nuls).
4) On pose f(x) = sin(x), et c(x) = 0. Calculer la solution de (9) dans ce cas.
5) Calculer une base orthonormale de la matrice
B =
_
_
_
_
_
_
2 1 0
1
.
.
.
.
.
.
.
.
.
.
.
. 1
0 1 2
_
_
_
_
_
_
(on pourra essayer e
i
= sin(i) o est un nombre bien choisi).
6) Rsoudre le systme linaire de la question 2 pour f(x) = sin(x), et c(x) = 0.
32 P. HELLUY
7) On pose i = E(x/h) x x (E(x) = partie entire de x). Soit (u
i
)
0iN
trouv la question 6 et u(x) la solution de la question 4. Montrer que u
i
u(x)
quand h tend vers 0.
7.3.2. TP : rsolution itrative des quations non linaires. Le but de ce TP est de
dterminer diverses mthodes pour rsoudre :
f(x) = 0 avec f(x) = tan(x) 1 +x sur lintervalle [0, 1]
Le compte-rendu ne doit pas dpasser une copie double, courbes comprises.
1) Vrier dabord graphiquement que f(x) = 0 admet une unique racine x sur
]0, 1[. Donnez un encadrement de x 10
1
prs.
Indications :
f :=tan(x)-1+x ;plot(f,x=0..1) ;
2) Mthode du point xe
On pose :
g

(x) =
f(x) +x

et on considre la mthode :
x
0
[0, 1]
x
n+1
= g

(x
n
)
Tracer g

(x) sur [0, 1] pour = 3. Montrer que x


n
x
Indications :
g :=(f+alpha*x)/alpha ;
alpha :=-3 ;
plot(g,x=0..1) ;
?diff ;
3) Dans cette question, x
0
= 0
On dsire tudier lordre de convergence de la mthode, cest dire dterminer
tel que :
[x
n+1
x[
[x
n
x[

avec 0 < < +


Quelle mthode proposez-vous ? Quelles sont les dicults de mise en oeuvre, com-
ment sen aranchir grce Maple ? Comparer les valeurs thoriques de et avec
les valeurs numriques.
Indications :
xn :=0 ;N :=20 ;Digits :=100 ;
graf :=[] ;
xb :=fsolve(f=0,x=0..1) ;
for i to N do
xnp1 :=evalf(subs(x=xn,g)) ;
graf :=[op(graf),[ln(abs(xn-xb)),ln(abs(xnp1-xb))]] :
xn :=xnp1 :od :
plot(graf) ;
(graf[N][2]-graf[N-1][2])/(graf[N][1]-graf[N-1][1]) ;
4) Mthode de Newton
Raliser la mme tude pour la mthode de Newton :
x
0
= 0
x
n+1
= x
n

f(x
n
)
f

(x
n
)
ANALYSE NUMRIQUE 33
5) Mthode de la scante
Mme tude pour la mthode de la scante :
x
0
= 0, x
1
= 1
x
n+1
= x
n
f(x
n
)
x
n
x
n1
f(x
n
) f(x
n1
)
Vrier que =
1+

5
2

7.4. TD TP n

4.
7.4.1. Exercices : Rsolution itrative des quations linaires. 1)
a) Pour une matrice quelconque A montrer que (A) |A| pour toute norme
matricielle. Donner lexpression de |A|

b) On suppose A symtrique dnie positive. Montrer que (A) = |A|


2
2) Soit
A =
_
_
1 a a
a 1 a
a a 1
_
_
a) Pour quelles valeurs de a A est-elle dnie positive ?
b) crire la matrice J de litration de Jacobi
c) Pour quelles valeurs de a la mthode de Jacobi converge-t-elle ?
d) crire la matrice G de litration de Gauss-Seidel
e) Calculer (G). Pour quelles valeurs de a cette mthode converge-t-elle plus
vite que celle de Jacobi ?
3) Soit A une matrice dcompose en A = D E F
A =
_
_
_
_
.
.
. E
D
F
.
.
.
_
_
_
_
pour rsoudre Ax = b on propose la mthode
_
D

E
_
x
(k+1)
=
_
1

D +F
_
x
(k)
+b R

a) Vrier que si la mthode converge, elle converge vers une solution de Ax = b


b) Donner la matrice ditration L

de cette mthode
c) Calculer det(L

)
d) En dduire que (L

) [1 [. Conclusion ?

7.4.2. TP : quelques algorithmes dalgbre linaire. Le but de ce TP est de tester


quelques mthodes numriques de calcul sur les systmes linaires.
Le compte-rendu ne doit pas dpasser une copie double, courbes comprises.
Dans la suite, on considre la matrice de taille N 1 :
B =
_

_
2 1 0
1
.
.
.
.
.
.
.
.
.
.
.
. 1
0 1 2
_

_
34 P. HELLUY
on rappelle que les vecteurs propres e(k) et les valeurs propres (k) sont donns
par
e(k)
i
= sin(
ik
N
) 1 i N 1 1 k N 1
(k) = 4 sin
2
(
k
2N
)
1) En vous aidant des instructions suivantes, vriez lintrt de la mthode LU
pour les matrices tridiagonales. Pour cela, comparer, en fonction de N, le temps de
calcul de rsolution dun systme linaire plein ou tridiagonal.
restart :with(linalg) :N :=40 ;
A :=evalm(1e-6*randmatrix(N-1,N-1)) :
for i to N-1 do A[i,i] :=2. :od :
for i to N-2 do A[i,i+1] :=-1. :A[i+1,i] :=-1. :od :
# utiliser la ligne suivante la place des 3 prcdentes :
#A :=band([-1.,2.,-1.],N-1) ;
s :=randvector(N-1) ;
# calcul du temps. Ne pas oublier de faire restart entre chaque calcul ! ! !
tt :=time() :linsolve(A,s) :time()-tt ;
2) Programmer dans Maple les mthodes de Jacobi et de Gauss-Seidel. Comparer
sur quelques exemples leurs vitesses de convergence (compter le nombre ditrations
ncessaires pour atteindre une prcision donne).
3) Vrier que lalgorithme suivant permet de calculer la valeur propre de plus
grand module de B. Justier votre rponse. Comment calculer la valeur propre de
plus petit module ?
> restart :with(linalg) :N :=20 ;
> A :=band([-1.,2.,-1.],N-1) ;
> x :=evalf(randvector(N-1)) ;
> iter :=30 ;
> for i to iter do
> y :=evalm(A&*x) :x :=evalm(1./norm(y,2)*y) :od :
> seq(y[i]/x[i],i=1..N-1) ;
> k :=N-1 :lambda :=evalf(4.*sin(k*Pi/2/N)^2) ;
> s :=vector(N-1,[seq(evalf(sin(i*k*Pi/N)),i=1..N-1)]) ;
> s :=evalm(1./norm(s,2)*s) ;
> op(x) ;
4) Expliquer quoi servent les lignes suivantes.
> k :=N/2-2 ;
> lambda :=evalf(4.*sin(k*Pi/2/N)^2)+1e-5 ;
> x :=evalf(randvector(N-1)) ;iter :=30 ;Id :=array(1..N-1,1..N-1,identity) ;
> for i to iter do
> y :=linsolve(evalm(A-lambda*Id),x) :x :=evalm(1./norm(y,2)*y) :od :
> seq(y[i]/x[i],i=1..N-1) ;
> s :=vector(N-1,[seq(evalf(sin(i*k*Pi/N)),i=1..N-1)]) ;
> s :=evalm(1./norm(s,2)*s) ;
> op(x) ;
> y :=evalm(A&*x) :
> seq(y[i]/x[i],i=1..N-1) ;

ANALYSE NUMRIQUE 35
8. Examen danalyse numrique n1
8.1. Enonc.
Exercice 1. On cherche une mthode dintgration numrique de la forme
(10)
_
1
0
f(t)dt f(0) +f

()
o est un point de lintervalle ]0, 1[
1) On suppose que est donn. Dterminer et pour que la mthode soit
exacte pour des polynmes de degr 1.
2) Comment choisir pour que la mthode soit exacte pour des polynmes de
degr 2 ?
3) Que devient la formule (10) si lintervalle [0, 1] est remplac par un intervalle
[a, b] quelconque ? (utiliser le changement de variable t = (b a)t

+a, t

[0, 1]).
4) Dcrire la mthode composite associe (10) pour calculer
_
B
A
f(t)dt (on se
limitera au cas dune subdivision rgulire de lintervalle [A, B] de pas h =
BA
N
).
Exercice 2. Soient les polynmes suivants
G
0
(x) = (2x + 1)(x 1)
2
G
1
(x) = x(x 1)
2
D
0
(x) = x
2
(3 2x)
D
1
(x) = x
2
(x 1)
on vrie facilement quils constituent une base de lensemble des polynmes de
degr 3 et que
G
0
(0) = 1 G
0
(1) = 0 G

0
(0) = 0 G

0
(1) = 0
G
1
(0) = 0 G
1
(1) = 0 G

1
(0) = 1 G

1
(1) = 0
D
0
(0) = 0 D
0
(1) = 1 D

0
(0) = 0 D

0
(1) = 0
D
1
(0) = 0 D
1
(1) = 0 D

1
(0) = 0 D

1
(1) = 1
(la dmonstration de ces rsultats nest pas demande).
1) Soit f une fonction C
1
sur [0, 1]. Dterminer lunique polynme P de degr
3 tel que
f(0) = P(0) f

(0) = P

(0)
f(1) = P(1) f

(1) = P

(1)
2) Soit f une fonction C
1
sur un intervalle [a, b] quelconque. Dterminer lunique
polynme P de degr 3 tel que
f(a) = P(a) f

(a) = P

(a)
f(b) = P(b) f

(b) = P

(b)
3) Soit f une fonction C
1
sur un intervalle [A, B] quelconque, et soit A = x
0
<
< x
N
= B une subdivision de [A, B]. Dterminer lunique fonction F polyn-
miale de degr 3 par morceaux, de classe C
1
sur [A, B] telle que
f(x
i
) = F(x
i
) f

(x
i
) = F

(x
i
) 0 i N
4) A-t-on convergence de F vers f quand le pas de la subdivision tend vers 0 ?
Exercice 3. Soit Q le polynme
Q(t) = t
2
St
2
+P
on suppose que Q admet 2 racines relles x
0
,= y
0
.
1) Montrer que trouver x
0
et y
0
revient rsoudre
xy P = 0
(x +y) S = 0
36 P. HELLUY
La suite de lexercice a pour but de dcrire la mthode de Newton permettant de
rsoudre ce systme non linaire de deux quations deux inconnues
2) Comment scrit la mthode de Newton pour rsoudre F(x, y) = 0 quand F
est une application de R
2
R
2
?
3) Dsormais F est lapplication de R
2
R
2
dnie par
F(x, y) =
_
xy P
(x +y) S
_
calculer J(x, y) la matrice jacobienne de F(x, y).
4) Vrier que la mthode de Newton pour rsoudre F(x, y) = (0, 0) scrit ici
(11)
_
x
n+1
y
n+1
_
=
_
x
n
y
n
_

_
Q(xn)
xnyn
Q(yn)
ynxn
_
5) Dcrire la mise en oeuvre de lalgorithme (11) pour trouver les racines dun
polynme de degr 2. Pouvez-vous gnraliser des polynmes de degr > 2 ?
Quels sont les avantages de cette mthode compare dautres mthodes ? Que se
passe-t-il si Q a des racines multiples ou complexes ?
Exercice 4. 1) Soit y une fonction de classe C

sur R. On souhaite approcher y

par une formule de la forme


(12) y

(t) y(t) +y(t h) +y(t 2h)


Grce un dveloppement de Taylor au voisinage de h = 0, dterminer (, , ) de
faon que la mthode soit la plus prcise possible.
2) En utilisant la formule (12), proposer une mthode pour rsoudre lquation
direntielle
y

(t) = f(y(t)) t 0
y(0) = y
0
par une formule de la forme
H(y
n+1,
y
n
, y
n1
, h) = 0
3) Comment mettre en oeuvre une telle mthode ? Comment calculer y
1
?

8.2. Corrig.
Exercice 1. 1) La formule tant exacte pour x 1 et x x, on trouve = 1 et
= 1/2
2) La formule tant aussi exacte pour x x
2
, on trouve = 1/3
3) On a
_
b
a
f(t)dt = (b a)
_
1
0
f((b a)t

+a)dt

, do
_
b
a
f(t)dt (b a)f(a) +
(b a)
2
2
f

(
2
3
a +
1
3
b)
4)
_
B
A
f(t)dt

N1
i=0
_
A+(i+1)h
A+ih
f(t)dt =

N1
i=0
hf(A+ih) +
h
2
2
f

(A+(i +
1
3
)h)
Exercice 2. 1) P est donn par P = f(0)G
0
+f

(0)G
1
+f(1)D
0
+f

(1)D
1
2) g(t

) = f((b a)t

+a) est dnie sur [0, 1]. On pose Q(t

) = f(a)G
0
(t

) +(b
a)f

(a)G
1
(t

) +f(b)D
0
(t

) + (b a)f

(b)D
1
(t

) et donc
P(t) = Q(
t a
b a
)
= f(a)G
0
(
t a
b a
) + (b a)f

(a)G
1
(
t a
b a
) +f(b)D
0
(
t a
b a
) + (b a)f

(b)D
1
(
t a
b a
)
3) Sur lintervalle [x
i1
, x
i
], F est donne par la formule de la question 2) avec
a = x
i1
et b = x
i
ANALYSE NUMRIQUE 37
4) Il y a convergence de F vers f quand le pas de la subdivision tend vers 0 car
le degr d des polynmes dinterpolation est x (d 3).
Exercice 3. 1) Q(t) = (t x
0
)(t y
0
) = t
2
(x
0
+y
0
)t
2
+x
0
y
0
donc
x
0
y
0
P = 0
(x
0
+y
0
) S = 0
2) Si F(x, y) =
_
F
1
(x, y)
F
2
(x, y)
_
, alors F

(x, y) =
_
F1(x,y)
x
F1(x,y)
y
F2(x,y)
x
F2(x,y)
y
_
et la
mthode de Newton scrit
_
x
n+1
y
n+1
_
=
_
x
n
y
n
_
F

(x
n
, y
n
)
1
F(x
n
, y
n
)
3) J(x, y) =
_
y x
1 1
_
4) J(x, y)
1
=
1
yx
_
1 x
1 y
_
, par consquent
_
x
n+1
y
n+1
_
=
_
x
n
y
n
_

1
y
n
x
n
_
1 x
n
1 y
n
__
x
n
y
n
P
x
n
+y
n
S
_
_
x
n+1
y
n+1
_
=
_
x
n
y
n
_

_
Q(xn)
xnyn
Q(yn)
ynxn
_
5) Lalgorithme se gnralise sans dicult pour des polynmes de degr d plus
grand. Ainsi, pour d = 3, on trouve
_
_
x
n+1
y
n+1
z
n+1
_
_
=
_
_
x
n
y
n
z
n
_
_

_
_
_
Q(xn)
(xnyn)(xnyn)
Q(yn)
(ynxn)(ynzn)
Q(zn)
(znxn)(znyn)
_
_
_
Lalgorithme nest pas trs intressant pour d = 2. En revanche, pour d 3, il
est trs utile : il converge en gnral de manire quadratique, indpendamment de
linitialisation, et permet dobtenir toutes les racines en mme temps. Pour valuer
Q(t), il est conseill dutiliser lalgorithme de Hrner. Si Q a des racines multiples,
la convergence de la mthode de Newton nest plus quadratique (J(x
0
, y
0
) nest
pas inversible). Si Q a des racines complexes, la mthode est encore utilisable,
condition de linitialiser avec un vecteur complexe.
Exercice 4. 1) Un dveloppement de Taylor donne
y(t) +y(t h) +y(t 2h)
= ( + +)y(t) + ( 2)hy

(t) + (

2
+ 2)h
2
y

(t) +O(h
3
)
il faut donc prendre
+ + = 0
2 =
1
h

2
+ 2 = 0
soit
=
3
2h
=
2
h
=
1
2h
38 P. HELLUY
2) Daprs ce qui prcde, y

(t) =
3y(t)4y(th)+y(t2h)
2h
+O(h
2
). Si t
n
= nh et si
on cherche y
n
y(t
n
), on peut choisir de rsoudre
3y
n+1
4y
n
+y
n1
2h
= f(y
n+1
)
soit
H(y
n+1,
y
n
, y
n1
, h) = 3y
n+1
2hf(y
n+1
) 4y
n
+y
n1
= 0
3) Pour mettre en oeuvre cette mthode implicite deux pas, il faut rsoudre
chaque pas de temps lquation dinconnue y
n+1
(on peut utiliser la mthode de
Newton). De plus, pour amorcer lalgorithme, y
1
sera valu laide dune formule
explicite un pas du type y
1
= y
0
+h(y
0
, h).

9. Examen danalyse numrique n2


9.1. Enonc.
Exercice 1 : tude de la mthode des rectangles composite
. 1) Soit f une application de classe C
2
sur lintervalle [0, 1]. On rappelle quil existe
alors un t
0
[0, 1] (dpendant de f) tel que
_
1
0
f(t)dt = f(
1
2
) +
1
24
f

(t
0
)
Dduire de cette proprit que si g est une application de classe C
2
sur lintervalle
[a, b] alors on peut trouver x
0
[a, b] tel que
_
b
a
g(x)dx = (b a)g(
a +b
2
) +
(b a)
3
24
g

(x
0
)
(faire le changement de variable x = t(b a) +a)
2) On se donne maintenant une application f de classe C
2
sur un intervalle [a, b].
On pose I(f) =
_
b
a
f(x)dx. Soit J
N
(f) lapproximation de I(f) par la mthode des
rectangles composite N points :
J
N
(f) =
b a
N
N

i=1
f(
i 1/2
N
(b a) +a)
montrer quil existe des points x
i
[(b a)
i1
N
+a, (b a)
i
N
+a] (1 i N) tels
que
_
b
a
f(x)dx = J
N
(f) +
(b a)
3
24N
2

1
N
N

i=1
f

(x
i
)
3) En dduire quil existe c [a, b] tel que
_
b
a
f(x)dx = J
N
(f) +
(b a)
3
24N
2
f

(c)
4) Comment choisir N pour tre sr que J
N
(f) soit une approximation 10
6
prs de I(f) si f(x) = exp(x) et [a, b] = [0, 2] ?
5) Que se passe-t-il selon vous si lon applique la mme mthode dintgration
numrique f(x) = ln(x) sur lintervalle [0, 2] ?
ANALYSE NUMRIQUE 39
Exercice 2 : mthode de Jacobi pour une matrice 3x3
. 1) On considre la matrice
A =
_
_
3 1 0
1 3 1
0 1 3
_
_
On se donne galement un vecteur b de R
3
. On note x lunique solution du systme
Ax = b. Montrer que la mthode de Jacobi pour rsoudre le systme linaire Ax = b
est ici convergente.
2) Soit x
n
le n
ime
itr de la mthode de Jacobi en partant de x
0
= 0. Dter-
miner la matrice ditration M de la mthode de Jacobi (cest la matrice qui vrie
x
n+1
x = M(x
n
x)).
3) Calculer les valeurs propres de A. En dduire les valeurs propres de M. Dter-
miner s le module de la plus petite valeur propre en module de M, et S le module
de la plus grande valeur propre en module de M. (Vrier que S < 1 !)
4) Montrer que [x[
1
s
[b[ o [u[ dsigne la norme euclidienne usuelle du vecteur
u dans R
3
5) Montrer que [x
n
x[
S
n
s
[b[
Exercice 3 : Mthode deux pas pour rsoudre une quation direntielle
. 1) On considre la mthode dintgration numrique suivante sur lintervalle [0, 1] :
_
1
0
y(x)dx y(0) +y(
1
2
)
Dterminer et pour que cette mthode soit exacte pour des polynme de degr
le plus lev possible.
2) Que devient cette mthode sur un intervalle [a, b] quelconque ?
3) Soit T un rel > 0, f une application de R
+
R R de classe C
1
et soit y
la solution de lquation direntielle
y

(t) = f(t, y(t)) pour t > 0


y(0) = y
0
soit h un rel > 0. Montrer que
y(2h) = y(0) +
_
2h
0
f(t, y(t))dt
4) Dduire des questions prcdentes une mthode numrique permettant de
calculer une approximation y
n
de y(nh) de la forme
y
n+2
= G(y
n
, y
n+1
)
5) Comment proposez-vous de calculer y
1
?

Anda mungkin juga menyukai