Vous êtes sur la page 1sur 40

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/267826866

Control and Cancellation Singularities of


Bilaplacian in a Cracked Domains

Article April 2012


DOI: 10.5539/jmr.v4n4p35

CITATIONS READS

0 79

4 authors, including:

Gilbert Bayili Cheikh Seck


University of Ouagadougou Gaston Berger University, Saint-Louis
7 PUBLICATIONS 10 CITATIONS 2 PUBLICATIONS 2 CITATIONS

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Cheikh Seck on 07 April 2014.

The user has requested enhancement of the downloaded file.


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 fixe 17
4.3. Mthode de Newton 19
4.4. Exercices 19
5. Rsolution numrique des quations diffrentielles 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 defficacit il fau-
dra trouver des algorithmes permettant dviter au maximum le stockage des zros
afin 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
fini doprations. Il existe aussi des mthodes itratives qui consistent construire
une suite de vecteurs xn 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

2 0 0 1
0 2 1 0
A= 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 afin dobtenir un stockage plus utile. Pour simplifier lexpos, nous supposerons
(quitte stocker quelques zros supplmentaires) que les valeurs non nulles de A
sont rparties de manire symtrique (a(i, j) 6= 0 a(j, i) 6= 0). A nest pas nces-
sairement symtrique.

1.1.2. Profil dune matrice.


Dfinition 1. On appelle profil de A le tableau prof(j)1in dfini par
Ej = {i, 1 i j, a(i, j) 6= 0}
prof(j) = j max Ej
On dit quun couple (i, j) est dans le profil de A si
j prof(j) i j ou i prof(i) j i
ANALYSE NUMRIQUE 3

Remarque : sur la colonne j, Ej contient en fait les indices de lignes i au dessus


de la diagonale, pour lesquels a(i, j) 6= 0. j prof(j) + 1 est alors le plus petit de
ces indices.
Exemple : le profil est ici
profil = [0, 0, 1, 3]

1.1.3. Diminution du profil dune matrice, algorithme de Cuthill-Mac Kee. Nous


verrons par la suite quil est intressant que la matrice A ait un profil le plus petit
possible. Lalgorithme de Cuthill-Mac Kee consiste renumroter les lignes et les
colonnes de A afin de diminuer son profil, 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) 6= 0 (rappelons dailleurs que par hypothse a(i, i) 6= 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= max1in 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

1 4 0
2 3 0
listvois =
3 2 4

4 1 3
Ces tableaux permettent dailleurs de calculer le profil 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
i0 = inum(1). Ensuite, dans le tableau inum on ajoute les voisins de i0 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 fin, 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 i0 := 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 profil est importante, il est prfrable de remplacer la matrice A par
la matrice A0 dfinie par :
a0inum(i),inum(j) = ai,j

Exemple : A0 est ici



2 1 0 0
1 2 1 0
A0 =


0 1 2 1
0 0 1 2
(dans la suite des exemples, nous continuons travailler avec A et non avec A0 )
Nous sommes maintenant en mesure de construire un nouveau stockage de A
appel stockage profil.

1.1.4. Stockage profil 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) 1in
On dcide de ranger dans asup les valeurs de la partie suprieure de A qui sont
dans le profil, colonne aprs colonne, zros compris. Le principe de stockage est le
mme pour ainf, en travaillant ligne par ligne. En notant N N le nombre de valeurs
stockes dans ainf ou asup, on a donc
n
X
NN = prof(i)
i=1

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 enfin 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 + LT a le mme profil que A.
U est une matrice triangulaire suprieure, telle que U + U T a le mme profil
que A.
La rsolution de Ax = b est alors ramene aux rsolutions successives des sys-
tmes chelonns Ly = b et U x = y.
Nous allons procder par identification :

1 si i = j
0 si j < i


0 si i < j

l(i, j) = ui,j = u(i, j) si j prof(j) i j
l(i, j) si i prof(i) j < i
0 si 1 i < j prof(j)


0 si 1 j < i prof(i)

nous voulons donc que


n
X
a(i, j) = l(i, k) u(k, j) 1in
k=1
Pb
pour des (i, j) dans le profil de A, on a donc (par convention, k=a = 0 si a > b) :
n
X
a(i, j) = l(i, k) u(k, j)
k=1
min(i,j)
X
= l(i, k) u(k, j)
k=max(iprof(i),jprof(j))

donc si j < i alors


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

et si i j alors
i
X
a(i, j) = l(i, k) u(k, j)
k=max(iprof(i),jprof(j))

et nous en dduisons que


u(1, j) = a(1, j) 1 j 1 + prof(j)
puis, pour i = 2, 3, , n

j1
1 X
l(i, j) = a(i, j) l(i, k) u(k, j)
u(j, j)
k=max(iprof(i),jprof(j))

pour i prof(i) j < i


i1
X
u(i, j) = a(i, j) l(i, k) u(k, j) pour i j i + prof(j)
k=max(iprof(i),jprof(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 final 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

2 0 0 1
0 2 1 0
A =
0 1 2 1

1 0 1 2

2 0 0 1
0 2 1 0
U =
0 0 3/2 1

0 0 0 5/6

1 0 0 0
0 1 0 0
L =
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 U x = 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 diffrents
de la solution exacte. Il faut donc modifier 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
u00 (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
u00 (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
RB
I(f ) = A f (t)dt o f est une fonction continue sur un intervalle [A, B] avec A < B.
En effet, 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
XN
J(f ) = i f (xi )
i=0
o les points xi sont dans lintervalle [a, b]. Les xi sont appels les points dint-
gration et les coefficients 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 xi sont imposs
avec
A x0 < < xN B
Dans ce cas, il est possible de trouver un unique jeu de i tel que I(f ) soit exac-
tement J(f ). En effet, par linarit de I et J, il suffit que I(f ) = J(f ) quand
ANALYSE NUMRIQUE 9

f = x xi pour 0 i N . Les poids dintgration sont alors solutions du


systme linaire

BA

1 1 1 0
B 2 A2
x0 x1 xN 1

2

.. ..

.. = .. A = S
. . . .


xN xN xN N B N +1 AN +1
0 1 N N +1

qui admet une solution et une seule car


Y
det A = (1)E(N/2)+N (xi xj ) 6= 0
i<j

Exemples :
A+B
N = 0, x0 = 2 , on trouve 0 = B A, soit

A+B
(1) J(f ) = (B A) f ( )
2

cest la mthode des rectangles. On constate que la mthode est encore exacte
pour des polynmes de degr 1.
N = 1, x0 = A, x1 = B, on trouve 0 = 1 = BA 2 , soit

f (A) + f (B)
(2) J(f ) = (B A)
2

cest la mthode des trapzes.


2(BA)
N = 2, x0 = A, x1 = A+B 2 , x2 = B, on trouve 0 = 2 =
BA
6 , 1 = 3 ,
soit
 
(B A) A+B
(3) J(f ) = f (A) + f (B) + 4f ( )
6 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 fin, 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

(b a)3 00
E(f ) = f (c)
24
Dmonstration : commenons par crire la formule de Taylor avec reste intgral
Z x
f (x) = f (A) + (x A)f 0 (A) + (x t)f 00 (t)dt
A
10 P. HELLUY

La formule des rectangles tant exacte pour des fonctions affines, on a (H est la
fonction de Heaviside)
Z x
E(f ) = E(x (x t)f 00 (t)dt)
A
Z B Z B Z B
A+B
= (B A) max(0, t)f 00 (t)dt + max(0, x t)f 00 (t)dt
A 2 x=A t=A
!
Z B Z B
A+B
= max(0, t) max(0, x t)dx f 00 (t)dt
t=A x=A 2
Z B 
(B t)2

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

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

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

P +2
|E(f )| |K(P )| |(B A)| sup f (P +1) (c)

c[A,B]

malheureusement, nous ne pouvons pas en dduire


P +2 que |E(f )| 0 quand P
car rien ne dit que |K(P )| |(B A)| supc[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
N
X
J(f ) = i f (i )
i=0
o 0 0 < < N 1 sont les points dintgration et les i les poids dintgra-
tion. Considrons maintenant un polynme Q de degr N dfini sur un intervalle
[a, b] un changement de variables donne :
Z b Z 1 XN
(4) Q(t)dt = (b a) Q((b a) + a)d = (b a) i Q((b a)i + a)
a 0 i=0
Une mthode dintgration composite consiste alors considrer une subdivision
de lintervalle [A, B]
A x0 < < xM B
ANALYSE NUMRIQUE 11

et appliquer la formule (4) sur chaque intervalle [a, b] = [xi , xi+1 ] , 0 i M 1.


Nous approcherons donc I(f ) par
M
X N
X
H(f ) = (xk xk1 ) i f ((xk xk1 )i + xk1 )
k=1 i=0
BA
Dans le cas dune subdivision rgulire, xk = a + kh avec h = M et
M X
X N
H(f ) = h i f ((k 1 + i )h)
k=1 i=0
en appliquant le thorme (2) chaque intervalle [a, b] = [xi , xi+1 ], on obtient, dans
le cas de la subdivision rgulire :
Thorme 3.

|H(f ) I(f )| |K(P )| (B A) sup f (P +1) (c) hP +1

c[A,B]

Cette fois-ci lerreur tend bien vers 0 quand h 0 (cest dire quand M )
P fix.
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.
Dfinition 2. On dit que la mthode est dordre L pour la fonction f ssi C 6= 0,
|H(f ) I(f )| ChL 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 : R1
On considre f (x) = ex , et on calcule 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. R
1
On considre f (x) = ex , et on calcule 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. R
1
On considre f (x) = ln x, et on calcule 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
N
X
J(f ) = i f (i )
i=0

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
Z 1
hP, Qi = P (t)Q(t)dt
0

En orthonormalisant la suite de polynmes n xn , par le procd de Gramm-


Schmidt, on obtient

L0 (x) = 1

 
1
L1 (x) = 2 3 x
2

 
12
L2 (x) = 6 5 x x +
6

 
3 3 2 3 1
L3 (x) = 20 7 x x + x
2 5 20
 
4 3 9 2 2 1
L4 (x) = 210 x 2 x + x x +
7 7 70
..
.

nous admettrons que Lk admet k zros distincts dans ]0, 1[. Nous allons alors mon-
trer

Thorme 4. Si les i sont les zros de LN +1 alors la mthode


N
X
J(f ) = i f (i )
i=0

est exacte pour des polynmes de degr 2N + 1.

Dmonstration : soit P un polynme de degr 2N +1. La division euclidienne


de P par LN +1 donne
P = qLN +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 Lk , et parce que les i sont racines de LN +1 :
Z 1 Z 1 Z 1 Z 1
P (t)dt = q(t)LN +1 (t)dt + r(t)dt = r(t)dt
0 0 0 0
N
X N
X N
X
= i r(i ) = i (qLN +1 + r)(i ) = i P (i )
i=0 i=0 i=0

Exemples :
N = 1 0 = 21 63 , 1 = 12 + 63 . La mthode est dordre 4 pour une
fonction rgulire.
N = 2 0 = 21 1510 , 1 = 12 , 2 = 12 + 1510 . 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 = x0 < < xN = b
le problme de linterpolation est alors de dterminer un polynme P de degr
N tel que
i = 0 N, P (xi ) = f (xi )
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) = a0 + a1 x + + aN xN , les coefficients de P sont
solutions de
1 x0 xN

0 a0 f (x0 )
1 x1 xN 1 a1
f (x1 )
.. =

.. .. ..
. . . .
1 xN xN
N aN f (xN )
la matrice de ce systme linaire est une matrice de Vandermonde de dterminant
6= 0 car les points xi sont distincts.
Thorme 6. Soit f : [a, b] R de classe C N +1 . Soit PN le polynme dinterpo-
lation associ f relatif la subdivision a = x0 < < xN = b alors c [a, b]
f (N +1) (c)
f (x) PN (x) = (x x0 ) (x xN )
(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 linfini ! Il est prfrable de fixer 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 linfini. 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.
1
Exemple : linterpolation PN de x 1+x 2 sur lintervalle [1, 1] pour la sub-
2i
division xi = 1 + N , i = 0 N ne converge pas vers f quand M tend vers linfini
(on observe des oscillations de PN de plus en plus importantes. Ce comportement
de PN est appel phnomne de Runge).
14 P. HELLUY

Mais il existe une autre difficult que nous allons aborder sur un exemple
Exemple : soit f (x) = x sur [0, 1]. Soit la subdivision xi = Ni , i = 0 N . La
rsolution de
1 x0 xN

0 a0 f (x0 )
1 x1 xN 1 a1
f (x1 )
.. .. =

.. ..
. . . .
1 xN xN
N aN f (xN )
conduit bien sr (a0 , a1 , , aN ) = (0, 1, 0, , 0). Or si lon tente de rsoudre
ce systme avec N = 20, numriquement pour une prcision de 10 chiffres, 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 coefficients 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, dfini par
cond(A) = kAk A1

o kk est une norme matricielle quelconque. On a toujours cond(A) 1, et plus


ce nombre est grand plus la rsolution du systme est difficile. Dans notre exemple
cond(A) = 356551625901350880. Par ailleurs, cond(A) = 1 ssi A est une matrice
orthogonale (A1 = AT ). 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.


Dfinition 3. Soit a = x0 < < xN = b une subdivision de lintervalle [a, b].
On appelle ime polynme de Lagrange associ la subdivision et on note Li le
polynme
Q
j6=i (x xj )
Li (x) = Q
j6=i (xi xj )

Li est un polynme de degr N , (L0 , , LN ) constitue une base de lensemble des


polynmes de degr N , de plus

1 si j = i
Li (xj ) =
0 si j 6= i
Thorme 7. Soit f : [a, b] R. Soit PN le polynme dinterpolation associ f
relatif la subdivision a = x0 < < xN = b. PN est alors donn par
N
X
PN = f (xk )Lk
k=0

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 modification de linterpolation de Lagrange


qui permet dviter ces dsavantages.
Soit a x0 < < xN b une subdivision de lintervalle [a, b], et f : [a, b] R,
une fonction. Nous noterons f (xi ) = yi .
Dfinition 4. Une fonction dfinie sur [a, b] est appele une spline dinterpolation
de f relative la subdivision xi ssi
0
est de classe C 1 sur [a, b] (donc 0 (x+
i ) = (xi1 ) pour i = 1 N 1)
est de classe C sur [xi , xi+1 ] , i = 0 N 1 ( 00 nest pas forcment

continue sur [a, b])


(xi ) = yi
Remarque : spline signifie latte en Anglais. Une latte de bois souple tait effec-
tivement utilise par les dessinateurs industriels pour tracer des courbes drivables
passant par des points donns.
Il existe bien sr une infinit 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
Z b
00 (t)2 dt est minimale
a
Rb
En termes physiques, la quantit a 00 (t)2 dt est dailleurs lnergie de flexion de la
latte. Nous allons donc calculer la position effective dune latte flexible qui passe
par les points (xi , f (xi )).

3.3.2. Caractrisation.
Thorme 8. Il existe une unique spline dinterpolation dont lnergie est mini-
male. Cette spline vrifie :
la restriction de [xi , xi+1 ] est un polynme de degr 3 pour i = 0 N 1
(x0 ) = y0 , (xN ) = yN

(x+ i ) = (xi ) = yi pour i = 1 N 1
0 + 0
(xi ) = (xi ) pour i = 1 N 1
00 (x0 ) = 00 (xN ) = 0
00
00 (x+i ) = (xi ) pour i = 1 N 1

Ide de la dmonstration : Soit C lensemble des splines dinterpolation de f


relativement xi
C = , C 1 [a, b] C [xi , xi+1 ] , i = 0 N 1, (xi ) = yi


C est un ensemble convexe. Soit V lespace vectoriel


V = , C 1 [a, b] C [xi , xi+1 ] , i = 0 N 1, (xi ) = 0


Rb
On a C + tV C pour tout rel t. Soit E() = a 00 (t)2 dt. Pour tout dans V ,
et tout rel t, on a
E() E( + t)
par consquent,

d
E( + t) =0
dt t=0
ce qui se traduit (aprs calculs) par
Z b
V, 00 (t)00 (t) = 0
a
16 P. HELLUY

On considre alors une fonction support dans ]xi , xi+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 [xi , xi+1 ]
Z b
(4) (t)(t) = 0
a

et ceci tant vrai pour toute fonction support dans ]xi , xi+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


Enfin, pour C, on a (en convenant de prolonger par 0 en dehors de [a, b])

Z b Z b N
X
00 (t)00 (t) 000 (t)0 (t) + 0 (xi ) 00 (x 00 +

= i ) (xi )
a a i=0
Z b N
X
(4) (t)(t) + 0 (xi ) 00 (x 00 +

= i ) (xi )
a i=0
N
X
000
(xi ) 000 (x+

+ i ) (xi )
i=0
N
X
0 (xi ) 00 (x 00 +

= i ) (xi ) = 0
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


Mi = 00 (xi ). En particulier, M0 = MN = 0. Sur lintervalle [xi , xi+1 ], est alors
donn par

(xi+1 x) (x xi ) (x 2 xi+1 + xi )
(x) = 1/6 Mi
xi+1 xi
(xi+1 x) (x xi ) (x 2 xi + xi+1 )
1/6 Mi+1
xi+1 xi
yi+1 yi yi xi+1 xi yi+1
+ x+
xi+1 xi xi+1 xi

de plus

yi+1 yi
0 (xi ) = 1/3 Mi (xi+1 xi ) 1/6 Mi+1 (xi+1 xi ) +
xi+1 xi
yi+1 yi
0 (xi+1 ) = 1/6 Mi (xi+1 xi ) + 1/3 Mi+1 (xi+1 xi ) +
xi+1 xi

le raccord des drives au point xi implique donc

1/6 Mi+1 (xi+1 xi ) + 1/6 Mi1 (xi xi1 ) + 1/3 Mi (xi+1 xi1 )
yi+1 yi yi yi1
=
xi+1 xi xi xi1
ANALYSE NUMRIQUE 17

ba
Pour simplifier, considrons une subdivision rgulire (xi+1 xi = h = N ), les
Mi sont alors solutions de

2/3 1/6 0 M1
y2 2y1 +y0
h2
1/6 2/3 1/6 .. ..
. .

.. ..

1/6 . . 0
=


.. ..

. . 1/6
yN 2yN 1 +yN 2
0 1/6 2/3 MN 1 h2

il suffit donc de rsoudre un systme tridiagonal.




4. Rsolution numrique des quations non-linaires


4.1. Introduction. Soit f : ferm Rp Rp . 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 xn convergente (le plus rapidement possible)
vers x. Nous envisagerons le cas o cette suite est de la forme
x0
xn+1 = g(xn )
o g est une application de dans continue.

4.2. Le thorme du point fixe. Tout le monde a dj entendu parler de


Thorme 9. Soit g une application dfinie sur ferm, qui vrifie
(1) g() (cette condition est indispensable pour que la suite xn soit dfi-
nie !)
(2) g est KLipschitzienne sur avec K < 1, cest dire
K, 0 < K < 1, (x, y) , kg(x) g(y)k K kx yk
Alors lquation g(x) = x admet une solution et une seule dans . De plus pour
toute suite de la forme
x0
xn+1 = g(xn )
on a limn xn = x.
Dmonstration :
(1) unicit : soient x1 et x2 , deux solutions. On a :
kx1 x2 k K kx1 x2 k
et K < 1 x1 = x2
(2) existence : soit la suite
x0
xn+1 = g(xn )
Puisque f est KLipschitzienne, on a
kxn+1 xn k K kxn xn1 k
18 P. HELLUY

donc
(5) kxn+1 xn k K n kx1 x0 k
Calculons maintenant, pour p > n
p
X
xk xk1 = xp xn
k=n+1

par (5), on obtient


p
X
X
kxp xn k K k1 kx1 x0 k K n kx1 x0 k Kk
k=n+1 k=0
Kn
= kx1 x0 k 0 quand (n, p)
1K
la suite (xn ) 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 fixe.
Il est important de disposer de critre pratique assurant quune fonction g est
KLipschitzienne, avec K < 1.
Thorme 10. Si kg 0 (x)k 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
Z 1
g(y) g(x) = g 0 (x + t(x y))(x y)
0
donc
Z 1
kg(y) g(x)k kg 0 (x + t(x y))(x y)k dt
0
Z 1
kg 0 (x + t(x y))k k(x y)k dt
0
K k(x y)k

En gnral, la mthode du point fixe, quand elle converge, est une mthode
dordre 1. Cest dire que, en gros, chaque itration lerreur est multiplie par
un coefficient plus petit que un. Voici un nonc plus prcis
Thorme 11. Supposons que la mthode du point fixe converge et que g est de
classe C 2 , alors
2
xn+1 x = g 0 (x)(xn x) + O(kxn xk )
en particulier, en dimension un despace, si xn 6= x,
xn+1 x
g 0 (x)
xn x
et donc, |g 0 (x)| 1.
Nous sommes conduits la dfinition suivante
Dfinition 5. Une mthode du point fixe est dordre k ssi
xn+1 x
k
l avec 0 < |l| < +
(xn x)
ANALYSE NUMRIQUE 19

4.3. Mthode de Newton. La mthode de Newton est un cas particulier de la


mthode du point fixe. Quand elle converge, elle est en gnral dordre 2, do son
intrt. Lide est la suivante :
Supposons que lon connaisse ltape n une approximation xn de la solution x.
Posons
xn+1 = xn + dxn
Nous allons chercher un accroissement dxn qui amliore la prcision de lapproxi-
mation. Un dveloppement de Taylor donne
2
f (xn + dxn ) = f (xn ) + f 0 (xn )dxn + O(kdxn k )
On souhaite bien sr que f (xn + dxn ) soit le plus proche possible de zro. En
ngligeant les termes du second ordre, il est donc logique de rsoudre
f (xn ) + f 0 (xn )dxn = 0
soit
xn+1 = xn f 0 (xn )1 f (xn )
Bien sr, la suite (xn ) nest pas toujours dfinie. Il faut, en particulier, que f 0 (xn )
soit une matrice inversible et que xn+1 . Pour tudier cette suite, on peut par
exemple essayer dappliquer le thorme du point fixe la fonction g : x g(x) =
x f 0 (x)1 f (x).
Vrifions, 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 0 (x)| m > 0 et |f 00 (x)| M sur [a, b]
x0 [x , x + ] avec < 2m M
alors la mthode de Newton converge et
 2n 1
2n M
|xn x| |x0 x|
2m
Dmonstration : la suite xn est dfinie par
xn+1 x = xn x f 0 (xn )1 (f (xn ) f (x))
par ailleurs,
2
(xn x) 00
f (xn ) f (x) = (xn x) f 0 (xn ) + f () avec ]xn , x[
2
donc
2 f 00 ()
xn+1 x = (xn x)
2f 0 (xn )
et
M 2
|xn+1 x| |xn x|
2m
ce qui prouve lexistence de la suite et sa convergence. On a aussi
xn+1 x f 00 (x)
2
(xn x) 2f 0 (x)
00
Si f (x) 6= 0, la mthode est dordre 2.
4.4. Exercices. 1) Montrer que lquation f (x) = x3 2 possde une solution
unique et quon peut obtenir celle-ci en utilisant la mthode de Newton partir
de x0 = 1. Donner une minoration du nombre ditrations effectuer pour obtenir
une prcision = 1010

20 P. HELLUY

5. Rsolution numrique des quations diffrentielles


5.1. Rappels. Soient P un entier 1, T un rel > 0, un lment de RP et f
une application continue de [0, T ] RP valeurs dans RP . On cherche une solution
y : [0, T ] RP lquation diffrentielle
y 0 (t) = f (t, y(t)) t [0, T ]
(6) y(0) =
Pour simplifier lexpos, nous poserons P = 1. Mais les rsultats et mthodes dcrits
dans le cas scalaire stendent sans difficult 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 ) [0, T ] RP RP , |f (t, y) f (t, y 0 )| K |y y 0 |
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 effet, considrons lexemple suivant
p
y0 = |y|
y(0) = 0
2
il est clair que y(t) = 0 et y(t) = t4 sont solutions. Il est difficile 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 tn = 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 (yn )0nN
tel que yn ' y(tn ) o y est la solution exacte de (6).
Puisque
y(tn+1 ) y(tn )
= y 0 (tn ) + (t) avec lim (t) = 0
t t0
= f (tn , y(tn )) + (t)
il est naturel de rsoudre
yn+1 yn
= f (tn , yn ) 1nN
t
y0 =
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 ( 6= 0)
y0 = y
y(0) = 1
dont la solution est y(t) = et . La mthode dEuler explicite donne yn = (1
t)n . En posant t = nt, et en faisant t 0, on obtient
t
yn = (1 t) t et = 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 yn quand n . Or
ceci nest vrai que si |1 t| < 1 soit
2
t <

Cette condition (dite de stabilit) doit donc tre vrifie par t pour que la solution
discrte yn ressemble la solution y. Elle est contraignante si est trs grand en
valeur absolue.
5.3. Mthode dEuler implicite.
Principe. Puisque
y(tn+1 ) y(tn )
= y 0 (tn+1 ) + (t) avec lim (t) = 0
t t0
= f (tn+1 , y(tn+1 )) + (t)
il est galement naturel de rsoudre
yn+1 yn
= f (tn+1 , yn+1 ) 1nN
t
y0 =
Le vecteur y peut se calculer par rcurrence de proche en proche, condition de
savoir rsoudre chaque tape une quation en yn+1 . On dit quon utilise une
mthode ou un schma de rsolution implicite.
Exemple. Soit lquation ( 6= 0)
y0 = y
y(0) = 1
t
dont la solution est y(t) = e . La mthode dEuler implicite donne yn = (1 +
t)n . En posant t = nt, et en faisant t 0, on obtient
t
(7) yn = (1 + t) t et = 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 yn quand n indpendamment de t. Le schma dEuler
implicite est dit inconditionnellement stable.
La mthode implicite est plus difficile 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
yn+1 = yn + t (tn , yn , t)
(8) y0 =
La mthode dEuler explicite entre dans ce cadre, avec (tn , yn , t) = f (tn , yn ).
5.4.1. Ordre dune mthode.
Dfinition 6. Soit y la solution de (6). La mthode (8) sera dite consistante
lordre l ssi
y(t + t) y(t)
(t, y(t), t) = O(tl )

sup
t[0,T ] t
nous admettrons quil suffit de vrifier que

y(t + t) y(t)
(t, y(t), t) = O(tl )

t [0, T ]
t
22 P. HELLUY

Il est facile de vrifier que la mthode dEuler explicite est dordre 1

5.4.2. Stabilit. Nous allons dfinir une autre notion de stabilit, ne pas confondre
avec celle introduite en (7).
Dfinition 7. La mthode (8) est stable ssi il existe deux constantes A et B > 0
telles que si yn , zn , n sont solutions de
yn+1 = yn + t (tn , yn , t)
y0 =
zn+1 = zn + t ( (tn , zn , t) + n )
z0 =
alors, pour tout n N
|yn zn | A | | + B max |i |
0iN

Le rsultat principal de stabilit est le suivant


Thorme 14. Si est lipschitzienne par rapport y alors la mthode est stable.
dmonstration : soient
yn+1 = yn + t (tn , yn , t)
y0 =
zn+1 = zn + t ( (tn , zn , t) + n )
z0 =
on a
|yn+1 zn+1 | |yn zn | + t |n | + t |(tn , yn , t) (tn , zn , t)|
(1 + Lt) |yn zn | + t |n |
il est alors facile de montrer (par rcurrence) que
(1 + Lt)n 1
|yn zn | (1 + Lt)n |y0 z0 | + max |p |
L pn

par ailleurs, si k > 0


1 + k ek
donc
(1 + Lt)n eLnt eLT car 0 nt N t = T
on obtient alors
eLT 1
|yn zn | eLT |y0 z0 | + max |p |
L pn

et la mthode est stable.

5.4.3. Convergence.
Dfinition 8. Une mthode est convergente lordre l ssi
lim max |yi y(ti )| = O(tl )
N 0iN

Thorme 15. Une mthode stable et consistante est convergente


ANALYSE NUMRIQUE 23

Dmonstration : la mthode tant consistante, on a

y(tn+1 ) = y(tn ) + t((tn , y(tn ), t) + n )

avec
max |n | = O(tl )
n

et
yn+1 = yn + t(tn , yn , t)
la stabilit implique alors
|yn y(tn )| O(tl )
do la convergence.

5.4.4. Exemples.
Mthode dEuler amliore. Cette mthode scrit
h h
(t, y, h) = f (t + , y + f (t, y))
2 2
elle est stable et consistante lordre 2.
Mthode de Runge-Kutta dordre 4. Cette mthode scrit
1
(t, y, h) = (k1 + 2k2 + 2k3 + k4 )
6
avec

k1 = f (t, y)
h h
k2 = f (t + , y + k1 )
2 2
h h
k3 = f (t + , y + k2 )
2 2
k4 = f (t + h, y + hk3 )

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 efficaces 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.
Dfinition 9. La matrice A = (aij )1iN 1jN est dite diagonale strictement
dominante ssi X
i |aii | > |aik |
k6=i

Lalgorithme de Jacobi scrit alors, un vecteur x(0) tant donn



(n+1) 1 X (n)
xi = bi aik xk
aii
k6=i

Il scrit aussi  
x(n+1) = D1 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
i1 N
!
(n+1) 1 X (n+1)
X (n)
xi = bi aik xk aik xk i = 1, 2, , N
aii
k=1 k=i+1

Il scrit aussi  
x(n+1) = (D + L)1 b U x(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
(n+1) 1 X 
(n)

xi xi = aik xk xk
aii
k6=i

donc

(n+1)
1 X
(n)

max xi xi |aik | max xk xk

i aii k
k6=i

(n)
K max xk xk avec 0 K < 1

k
ANALYSE NUMRIQUE 25

car A est diagonale strictement dominante. De plus maxi |yi | = kyk est une
norme sur RN . On a ainsi montr que

(n+1)
x K x(n) x

x

ce qui prouve la convergence.


Remarque : en pratique la stricte dominance nest pas indispensable. Lingalit
large suffit pour la plupart des matrices inversibles.

6.3. Mthodes de gradient. Si A est une matrice symtrique dfinie positive, il


existe une mthode simple programmer et trs efficace : 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 dfinie
positive N N . On considre x lunique solution du systme linaire Ax = b
1) Montrer que rsoudre Ax = b revient trouver le minimum de
1
J(x) = hAx, xi hb, xi
2
(h., .i dsigne le produit scalaire usuel sur RN )
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
(k) (k)
e =x x : erreur ltape k
E(x) = hA(x x), x xi
vrifier que
E(x) = hr, ei = r, A1 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) coefficient de descente. Justifier cette
terminologie.
a) Montrer que le coefficient optimal de descente pour la direction p(k) est donn
par

(k) (k)
(k) r ,p
=
(k) (k)
Ap , p

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

(k) (k) 2
(k) r ,p
=
(k) (k)
1 (k) (k)
Ap , p A r ,r

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) afin que (k) soit le plus grand possible (montrer que
hAp(k) ,r(k) i
(k) = Ap(k) ,p(k1) ).
h i
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 x0 < x1 < xn b, Pn le


polynme dinterpolation de f aux points (xi ). On se propose de montrer
(x x0 ) (x xn ) (n+1)
f (x) Pn (x) = f () avec a b
(n + 1)!
a) Soit g : [a, b] R tel que g 0 existe. Montrer que si g a (n + 2) zros distincts
alors g 0 a au moins (n + 1) zros distincts.
b) En considrant W (t) = f (t) Pn (t) (t x0 ) (t xn )K(x) o K est tel
que W (x) = 0 dmontrer le rsultat cherch.
2) On a donc
n
Mn+1 Y
|f (x) Pn (x)| (x xi )

(n + 1)! i=0
Qn
On cherche majorer Qn| i=0 (x xi )| dans le cas dune subdivision rgulire de pas
h. On pose (x) = i=0 (x xi ), h = 1 et x0 = 0 (pour simplifier).
x+1
a) Montrer que (x + 1) = (x) xn
b) En dduire que le max de |(x)|est ralis pour x0 x x1
n+1
c) Montrer que maxx0 xx1 |(x)| n!h4
d) En dduire que
Mn+1 n+1
|f (x) Pn (x)| h
4(n + 1)
Rx 2
3) On souhaite crire une table de valeurs de f (x) = 0 et /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 106 prs ?
4) Soit arccos la dtermination de la fonction inverse de cos dfinie par =
arccos x x [0, ] et x = cos
a) On pose Qn (x) = cos(n arccos x). Montrer que les fonctions Qn sont orthogo-
nales sur lintervalle [1, 1] relativement au poids w(x) = 1 x2
b) Montrer que hQn , Qn i = 2 si n 1 et que hQ0 , Q0 i =
c) Montrer que Qn est un polynme de degr n vrifiant Qn+1 (x) = 2xQn (x)
Qn1 (x) (polynmes de Tchebychev)
5) Soit Qn le nime polynme de Tchebychev
a) Montrer que Qn a des zros simples aux n points
(2k 1)
xk = cos k = 1n
2n
b) Montrer que Qn atteint ses extrema sur lintervalle [1, 1] aux n + 1 points
yk = cos k
n k = 0 n pour lesquels il prend alternativement les valeurs 1 et -1.
1
c) On considre Qn = 2n1 Qn (le coefficient de plus haut degr de Qn est 1).
Montrer que pour tout polynme P de degr n, de coefficient de plus haut degr
ANALYSE NUMRIQUE 27

gal 1, on a
1
= max Qn (x) max |P (x)|
2n1 1x1 1x1
d) On rappelle que

n
Mn+1 Y
|f (x) P (x)| (x xi )

(n + 1)! i=0
o P dsigne le polynme dinterpolation de f relativement la subdivision (xi ).
Comment choisir les (xi ) 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 fin 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 :


f1 : x sin(2x)
1
f2 : x 1
10 + x2

1 si x < 0
f3 : x
+1 si x 0
Un entier N > 0 tant donn, on considre galement la subdivision rgulire
2i
xi = 1 + 0iN
N

1) a) Calculer, avec une prcision de 5 chiffres significatifs, le polynme dinter-


polation P de f1 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 f1 , f2 et f3 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


xi = cos(i/N ) 0iN
4) Calculer les splines minimales dinterpolation de f1 , f2 et f3 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) ;
Vrifier, 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 x0 < x1 < xn b, Pn le


polynme dinterpolation de f aux points (xi ). On se propose de montrer
(x x0 ) (x xn ) (n+1)
f (x) Pn (x) = f () avec a b
(n + 1)!
a) Soit g : [a, b] R tel que g 0 existe. Montrer que si g a (n + 2) zros distincts
alors g 0 a au moins (n + 1) zros distincts.
b) En considrant W (t) = f (t) Pn (t) (t x0 ) (t xn )K(x) o K est tel
que W (x) = 0 dmontrer le rsultat cherch.
2) On a donc
n
Mn+1 Y
|f (x) Pn (x)| (x xi )

(n + 1)! i=0
Qn
On cherche majorer Qn| i=0 (x xi )| dans le cas dune subdivision rgulire de pas
h. On pose (x) = i=0 (x xi ), h = 1 et x0 = 0 (pour simplifier).
x+1
a) Montrer que (x + 1) = (x) xn
b) En dduire que le max de |(x)|est ralis pour x0 x x1
n+1
c) Montrer que maxx0 xx1 |(x)| n!h4
d) En dduire que
Mn+1 n+1
|f (x) Pn (x)| h
4(n + 1)
ANALYSE NUMRIQUE 29

Rx 2
3) On souhaite crire une table de valeurs de f (x) = 0 et /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 106 prs ?
4) Soit arccos la dtermination de la fonction inverse de cos dfinie par =
arccos x x [0, ] et x = cos
a) On pose Qn (x) = cos(n arccos x). Montrer que les fonctions
Qn sont orthogo-
nales sur lintervalle [1, 1] relativement au poids w(x) = 1 x2
b) Montrer que hQn , Qn i = 2 si n 1 et que hQ0 , Q0 i =
c) Montrer que Qn est un polynme de degr n vrifiant Qn+1 (x) = 2xQn (x)
Qn1 (x) (polynmes de Tchebychev)
5) Soit Qn le nime polynme de Tchebychev
a) Montrer que Qn a des zros simples aux n points
(2k 1)
xk = cos k = 1n
2n
b) Montrer que Qn atteint ses extrema sur lintervalle [1, 1] aux n + 1 points
yk = cos k
n k = 0 n pour lesquels il prend alternativement les valeurs 1 et -1.
1
c) On considre Qn = 2n1 Qn (le coefficient de plus haut degr de Qn est 1).
Montrer que pour tout polynme P de degr n, de coefficient de plus haut degr
gal 1, on a
1
= max Qn (x) max |P (x)|
2n1 1x1 1x1
d) On rappelle que
n
Mn+1 Y
|f (x) P (x)| (x xi )

(n + 1)!
i=0

o P dsigne le polynme dinterpolation de f relativement la subdivision (xi ).
Comment choisir les (xi ) 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 fin 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 :


f1 : x sin(2x)
1
f2 : x 1 2
10 + x

1 si x < 0
f3 : x
+1 si x 0
Un entier N > 0 tant donn, on considre galement la subdivision rgulire
2i
xi = 1 + 0iN
N

1) a) Calculer, avec une prcision de 5 chiffres significatifs, le polynme dinter-


polation P de f1 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 f1 , f2 et f3 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


xi = cos(i/N ) 0iN
4) Calculer les splines minimales dinterpolation de f1 , f2 et f3 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) ;
Vrifier, 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) =
x3 2 possde une solution unique et quon peut obtenir celle-ci en utilisant
la mthode de Newton partir de x0 = 1. Donner une minoration du nombre
ditrations effectuer pour obtenir une prcision = 1010

2) Soit la fonction f (x) = cos x xex 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 x0 assurant la conver-
gence vers l.
c) Soit la mthode suivante
x0 [a, b]
xn+1 = cos xn exn = g(xn )
Montrer que lon peut choisir un intervalle [a, b] [0, 2 ] telle que la mthode
converge vers l (montrer que |xn l| Ln |x0 l|. Que vaut L ?)
d) Montrer que lon peut prendre [a, b] = [0, 2 ]
e) Calculer un nombre ditrations suffisant pour obtenir une prcision de 106
si [a, b] = [0.45, 2 ]
Rsolution des sytmes linaires. 1) On considre le problme : trouver u C 2 [0, 1]
solution de
(9) u00 (x) + c2 (x)u(x) = f (x)
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 xi = ih pour 0 i N . Montrer que
u(xi+1 ) + u(xi1 ) 2u(xi )
u00 (xi ) = + o(h)
h2

2) On remplace (9) par un problme plus simple : linconnue devient un vecteur


(ui )0iN (o a priori, ui u(xi )). Proposer un systme linaire que pourrait
vrifier les (ui )0iN .
3) Une matrice A est dite tridiagonale si elle est de la forme

d1 u1 0

l1 . .. . ..

A=
.. ..
. . un1
0 ln1 dn
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

2 1 0
1 . . . ..

.
B=
.. ..
. . 1
0 1 2
(on pourra essayer ei = 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 fix (E(x) = partie entire de x). Soit (ui )0iN
trouv la question 6 et u(x) la solution de la question 4. Montrer que ui 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) Vrifier dabord graphiquement que f (x) = 0 admet une unique racine x sur
]0, 1[. Donnez un encadrement de x 101 prs.
Indications :
f :=tan(x)-1+x ;plot(f,x=0..1) ;
2) Mthode du point fixe
On pose :
f (x) + x
g (x) =

et on considre la mthode :
x0 [0, 1]
xn+1 = g (xn )
Tracer g (x) sur [0, 1] pour = 3. Montrer que xn x
Indications :
g :=(f+alpha*x)/alpha ;
alpha :=-3 ;
plot(g,x=0..1) ;
?diff ;
3) Dans cette question, x0 = 0
On dsire tudier lordre de convergence de la mthode, cest dire dterminer
tel que :
|xn+1 x|
avec 0 < < +
|xn x|
Quelle mthode proposez-vous ? Quelles sont les difficults de mise en oeuvre, com-
ment sen affranchir 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 :
x0 = 0
f (xn )
xn+1 = xn
f 0 (xn )
ANALYSE NUMRIQUE 33

5) Mthode de la scante
Mme tude pour la mthode de la scante :
x0 = 0, x1 = 1
xn xn1
xn+1 = xn f (xn )
f (xn ) f (xn1 )

1+ 5
Vrifier que = 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) kAk pour toute norme
matricielle. Donner lexpression de kAk
b) On suppose A symtrique dfinie positive. Montrer que (A) = kAk2
2) Soit

1 a a
A= a 1 a
a a 1
a) Pour quelles valeurs de a A est-elle dfinie 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

..
. E
A= D

..
F .
pour rsoudre Ax = b on propose la mthode
   
D 1
E x (k+1)
= D + F x(k) + b R

a) Vrifier 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 :

2 1 0
1 . . . ..

.
B=
.. ..
. . 1
0 1 2
34 P. HELLUY

on rappelle que les vecteurs propres e(k) et les valeurs propres (k) sont donns
par
ik
e(k)i = sin( ) 1iN 1 1k N 1
N
k
(k) = 4 sin2 ( )
2N
1) En vous aidant des instructions suivantes, vrifiez 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) Vrifier que lalgorithme suivant permet de calculer la valeur propre de plus
grand module de B. Justifier 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
Z 1
(10) f (t)dt ' f (0) + f 0 ()
0
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)t0 + a, t0 [0, 1]).
RB
4) Dcrire la mthode composite associe (10) pour calculer 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
G0 (x) = (2x + 1)(x 1)2
G1 (x) = x(x 1)2
D0 (x) = x2 (3 2x)
D1 (x) = x2 (x 1)
on vrifie facilement quils constituent une base de lensemble des polynmes de
degr 3 et que
G0 (0) = 1 G0 (1) = 0 G00 (0) = 0 G00 (1) = 0
G1 (0) = 0 G1 (1) = 0 G01 (0) = 1 G01 (1) = 0
D0 (0) = 0 D0 (1) = 1 D00 (0) = 0 D00 (1) = 0
D1 (0) = 0 D1 (1) = 0 D10 (0) = 0 D10 (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 (0) = P 0 (0)
f (1) = P (1) f 0 (1) = P 0 (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 0 (a) = P 0 (a)
f (b) = P (b) f 0 (b) = P 0 (b)
3) Soit f une fonction C 1 sur un intervalle [A, B] quelconque, et soit A = x0 <
< xN = 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 (xi ) = F (xi ) f 0 (xi ) = F 0 (xi ) 0iN
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) = t2 St2 + P
on suppose que Q admet 2 racines relles x0 6= y0 .
1) Montrer que trouver x0 et y0 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 R2 R2 ?
3) Dsormais F est lapplication de R2 R2 dfinie par
 
xy P
F (x, y) =
(x + y) S
calculer J(x, y) la matrice jacobienne de F (x, y).
4) Vrifier que la mthode de Newton pour rsoudre F (x, y) = (0, 0) scrit ici
    " Q(xn ) #
xn+1 xn n yn
(11) = xQ(y n)
yn+1 yn
yn xn

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 0
par une formule de la forme
(12) y 0 (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
diffrentielle
y 0 (t) = f (y(t)) t 0
y(0) = y0
par une formule de la forme
H(yn+1, yn , yn1 , h) = 0
3) Comment mettre en oeuvre une telle mthode ? Comment calculer y1 ?

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 x2 , on trouve = 1/3
Rb R1
3) On a a f (t)dt = (b a) 0 f ((b a)t0 + a)dt0 , do
Z b
(b a)2 0 2 1
f (t)dt ' (b a)f (a) + f ( a + b)
a 2 3 3
RB PN 1 R A+(i+1)h PN 1 2
4) A f (t)dt ' i=0 A+ih f (t)dt = i=0 hf (A + ih) + h2 f 0 (A + (i + 13 )h)
Exercice 2. 1) P est donn par P = f (0)G0 + f 0 (0)G1 + f (1)D0 + f 0 (1)D1
2) g(t0 ) = f ((b a)t0 + a) est dfinie sur [0, 1]. On pose Q(t0 ) = f (a)G0 (t0 ) + (b
a)f 0 (a)G1 (t0 ) + f (b)D0 (t0 ) + (b a)f 0 (b)D1 (t0 ) et donc
ta
P (t) = Q( )
ba
ta ta ta ta
= f (a)G0 ( ) + (b a)f 0 (a)G1 ( ) + f (b)D0 ( ) + (b a)f 0 (b)D1 ( )
ba ba ba ba
3) Sur lintervalle [xi1 , xi ], F est donne par la formule de la question 2) avec
a = xi1 et b = xi
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 fix (d 3).
Exercice 3. 1) Q(t) = (t x0 )(t y0 ) = t2 (x0 + y0 )t2 + x0 y0 donc
x0 y0 P = 0
(x0 + y0 ) S = 0
  F1 (x,y) F1 (x,y)
!
F1 (x, y)
2) Si F (x, y) = , alors F 0 (x, y) = x
F2 (x,y)
y
F2 (x,y) et la
F2 (x, y)
x y
mthode de Newton scrit
   
xn+1 xn
= F 0 (xn , yn )1 F (xn , yn )
yn+1 yn
 
y x
3) J(x, y) =
1 1 
1 1 1 x
4) J(x, y) = yx , par consquent
1 y
      
xn+1 xn 1 1 xn xn yn P
=
yn+1 yn yn xn 1 yn xn + yn S
    Q(xn )
!
xn+1 xn xn yn
= Q(yn )
yn+1 yn
yn xn

5) Lalgorithme se gnralise sans difficult pour des polynmes de degr d plus


grand. Ainsi, pour d = 3, on trouve
Q(xn )
xn+1 xn (xn yn )(xn yn )
yn+1 = yn Q(y )
(yn xn )(yn n zn )

zn+1 zn Q(zn )
(zn xn )(zn yn )

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(x0 , y0 ) 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 0 (t) + ( + 2)h2 y 00 (t) + O(h3 )
2
il faut donc prendre
++ = 0
1
2 =
h

+ 2 = 0
2
soit
3 2 1
= = =
2h h 2h
38 P. HELLUY

2) Daprs ce qui prcde, y 0 (t) = 3y(t)4y(th)+y(t2h)


2h + O(h2 ). Si tn = nh et si
on cherche yn ' y(tn ), on peut choisir de rsoudre
3yn+1 4yn + yn1
= f (yn+1 )
2h
soit
H(yn+1, yn , yn1 , h) = 3yn+1 2hf (yn+1 ) 4yn + yn1 = 0
3) Pour mettre en oeuvre cette mthode implicite deux pas, il faut rsoudre
chaque pas de temps lquation dinconnue yn+1 (on peut utiliser la mthode de
Newton). De plus, pour amorcer lalgorithme, y1 sera valu laide dune formule
explicite un pas du type y1 = y0 + h(y0 , 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 t0 [0, 1] (dpendant de f ) tel que
Z 1
1 1
f (t)dt = f ( ) + f 00 (t0 )
0 2 24
Dduire de cette proprit que si g est une application de classe C 2 sur lintervalle
[a, b] alors on peut trouver x0 [a, b] tel que
Z b
a+b (b a)3 00
g(x)dx = (b a)g( )+ g (x0 )
a 2 24
(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].


Rb
On pose I(f ) = a f (x)dx. Soit JN (f ) lapproximation de I(f ) par la mthode des
rectangles composite N points :
N
b a X i 1/2
JN (f ) = f( (b a) + a)
N i=1 N

montrer quil existe des points xi [(b a) i1 i


N + a, (b a) N + a] (1 i N ) tels
que
Z b N
(b a)3 1 X 00
f (x)dx = JN (f ) + f (xi )
a 24N 2 N i=1

3) En dduire quil existe c [a, b] tel que


Z b
(b a)3 00
f (x)dx = JN (f ) + f (c)
a 24N 2

4) Comment choisir N pour tre sr que JN (f ) soit une approximation 106


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

3 1 0
A = 1 3 1
0 1 3
On se donne galement un vecteur b de R3 . 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 xn le nime itr de la mthode de Jacobi en partant de x0 = 0. Dter-


miner la matrice ditration M de la mthode de Jacobi (cest la matrice qui vrifie
xn+1 x = M (xn 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. (Vrifier que S < 1 !)

1
4) Montrer que |x| s |b| o |u| dsigne la norme euclidienne usuelle du vecteur
u dans R3

Sn
5) Montrer que |xn x| s |b|

Exercice 3 : Mthode deux pas pour rsoudre une quation diffrentielle


. 1) On considre la mthode dintgration numrique suivante sur lintervalle [0, 1] :
Z 1
1
y(x)dx ' y(0) + y( )
0 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 diffrentielle
y 0 (t) = f (t, y(t)) pour t > 0
y(0) = y0
soit h un rel > 0. Montrer que
Z 2h
y(2h) = y(0) + f (t, y(t))dt
0

4) Dduire des questions prcdentes une mthode numrique permettant de


calculer une approximation yn de y(nh) de la forme
yn+2 = G(yn , yn+1 )

5) Comment proposez-vous de calculer y1 ?




View publication stats

Vous aimerez peut-être aussi