Vous êtes sur la page 1sur 10

Université de Provence, Année 2011/2012

Licence Mathématiques-Informatique,
parcours Mécanique-3ème année

T.D. de Calcul Scientifique

Corrigé des exercices de la feuille n˚ 4

Exercice 1 : normes usuelles de matrices et conditionnement d’un système linéaire.


Soit A une matrice n × n à coefficients réels. On rappelle la définition des normes matricielles,
subordonnées à des normes vectorielles :
||Ax||
||A|| = max = max ||Ax||.
n x∈R ,x6=0 ||x|| x∈Rn ,||x||=1

On rappelle que les 3 normes vectorielles usuelles sont


s
n n
||x||∞ = max |xi |,
1≤i≤n
||x||2 = ∑ x2i , ||x||1 = ∑ |xi |.
i=1 i=1

1a) Montrer que


n
||A||1 = max ∑ |ai j |.
j=1,···,n i=1
(1)

Corrigé : On majore d’abord ||Ax||1, à savoir


! !
n n n n n n n
||Ax||1 = ∑ | ∑ ai j x j | ≤ ∑ |x j | ∑ |ai j | ≤ max ∑ |ai j | ∑ |x j | = max ∑ |ai j | ||x||1.
i=1 j=1 j=1 i=1 j=1,···,n i=1 j=1 j=1,···,n i=1

D’où, pour tout x 6= 0 on aura


n
||Ax||1
≤ max ∑ |ai j |.
||x||1 j=1,···,n i=1

Or, par définition ||A||1 est le plus petit majorant du membre à gauche de l’expression ci-dessus,
d’où
n
||A||1 ≤ max ∑ |ai j |.
j=1,···,n i=1

Pour prouver l’inégalité inverse (et donc en définitive l’égalité) on cherche à trouver un vecteur
x tel que !
n
||Ax||1 = max ∑ |ai j |
j=1,···,n i=1
||x||1.

1
Soit donc j0 tel que
n n
max
j=1,···,n i=1
∑ |ai j | = ∑ |ai j0 |.
i=1
Prenons alors tel que ses coefficients = 0 si j 6= j0 et x′j0 = 1. Il est alors facile de voir que
x′ x′j
Ax′ = y avec y = (a1 j0 , a2 j0 , · · · , an j0 )T et donc pour ce vecteur x′ (de norme ||x′ ||1 = 1) on aura
!
n n
||Ax′ ||1 = ||y||1 = ∑ |ai j0 | = max ∑ |ai j | ||x′ ||1
i=1 j=1,···,n i=1

Or, par définition ||A||1 majore l’expression ||Ax||1/||x||1 quel que soit x, et donc
n
max ∑ |ai j | ≤ ||A||1.
j=1,···,n i=1

Des deux inégalités on déduit


n
||A||1 = max ∑ |ai j |
j=1,···,n i=1

1b) Montrer que


n
||A||∞ = max
i=1,···,n j=1
∑ |ai j |. (2)

Corrigé : On a les majorations


!
n n
||Ax||∞ = max ∑ ai j x j ≤ ∑ |ai j |

max ||x||∞

i=1,···,n j=1 i=1,···,n j=1

et ||A||∞ étant le plus petit majorant de ||Ax||∞/||x||∞ (x 6= 0) on aura


n
||A||∞ ≤ max
i=1,···,n
∑ |ai j |.
j=1

Soit maintenant i0 tel que


n n
max
i=1,···,n
∑ |ai j | = ∑ |ai0 j |
j=1 j=1

et prenons un vecteur x′ de coefficients


ai0 j
x′j = si ai0 j 6= 0 et x′j = 1 si ai0 j = 0.
|ai0 j |
Il est facile de voir que la i0 ème composante de Ax′ s’écrit ∑nj=1 |ai0 j | et étant donné que
||x′ ||∞ = 1 on aura
||Ax′ ||∞ n n

||x′ ||∞
≥ ∑ i0 j i=1,···,n ∑ |ai j |.
|a | = max
j=1 j=1

2
On en déduit par la définition de la norme que
n
||A||∞ ≥ max ∑ |ai j |
i=1,···,n j=1

et des deux inégalités on déduit que


n
||A||∞ = max ∑ |ai j |.
i=1,···,n j=1

1c) Le conditionnement d’une matrice A inversible est par définition la quantité (cf. cours)

cond(A) = ||A|| ||A−1 ||,

pour une des normes de matrices définies ci-dessus. Soit le système linéaire
 −4    
10 1 x1 1
= . (3)
1 1 x2 2

Opérer une étape de la procédure d’élimination de Gauss, sans permutation des lignes, pour
transformer le système en un système avec une matrice A tridiagonale supérieure. Déterminer
le conditionnement de cette matrice pour les deux normes matricielles (1) et (2) ci-dessus.

Corrigé : Une étape de la procédure de Gauss donne lieu à la matrice triangulaire supérieure
 −4 
10 1
U=
0 −9999

(en effet, on soustrait de la deuxième ligne la première multipliée par 104 ). Cette matrice est
aisée à inverser et  
−1 −1 −9999 −1
U = .
0, 9999 0 10−4
D’après le résultat ci-dessus, la norme ||A||1 d’une matrice A est obtenue en calculant pour
chaque colonne de A la somme des termes en valeur absolue et de retenir la somme la plus
grande. Faisant ce calcul pour les deux colonnes de U et U −1 , on trouve

||U ||1 = 104 , ||U −1||1 = 104 , d’où cond1 (U ) = ||U ||1||U −1||1 = 108 .

Le calcul de la norme ||A||∞ d’une matrice A est similaire, sauf que dans ce cas on opère la
somme ligne par ligne, d’après (2). Pour U et U −1 on trouve

104
||U ||∞ = 9999, ||U −1||∞ = , d’où cond∞ (U ) = ||U ||∞||U −1||∞ = 108 .
0, 9999
1d) On considère à nouveau le système (3) et on opère à nouveau une étape de l’algorithme de
Gauss, mais maintenant en permutant d’abord les deux lignes. Déterminer le conditionnement

3
de la matrice A qui en résulte et comparer avec le résultat I.3.

Corrigé : Si on permute d’abord les deux lignes de la matrice A de (3) on obtient


 
1 1
à =
10−4 1

et par conséquent, opérant une étape de l’algorithme de Gauss,


   
1 1 −1 1 0, 9999 −1
Ũ = dont l’inverse est Ũ =
0 0, 9999 0, 9999 0 1

Dans ce cas,
2
||Ũ||1 = 1, 9999 ||Ũ −1||1 = , d’où cond1 (Ũ) ≈ 4
0, 9999
et
1, 9999
||Ũ||∞ = 2, ||Ũ −1||∞ = , d’où cond∞ (Ũ) ≈ 4.
0, 9999
Si on compare ces résultats avec ceux obtenus dans la question I.3, on constate que le condi-
tionnement est considérablement plus grand lorsqu’on ne permute pas les lignes. Comme il est
démontré dans le cours, un conditionnement élevé d’une matrice d’un système linéaire risque
d’introduire une erreur non négligeable sur la solution, pour une erreur donnée sur le second
membre. En fait, pour l’exemple (3), en ne permutant pas les lignes, l’élément le plus petit 10−4
de la première colonne se trouve en position de pivot dans l’algorithme de Gauss, ce qui d’après
l’algorithme LU est à éviter.

1e) La solution exacte de (3), à 4 décimales près, est x1 = 1, 0001, x2 = 0, 9999. Supposons
qu’on ait une arithmétique à 3 chiffres significatifs, c’est-à-dire tout nombre réel est représenté
sous la forme x = ±0, abc 10±d avec a, b, c des entiers entre 0 et 9 avec a 6= 0 et d entier posi-
tif. (Par exemple, le nombre 9998 = 0.9998 104 d devient dans cette arithmétique, étant donné
qu’il faut arrondir à la troisième décimale, 10 4 = 0.1 105 .) Calculer la solution approchée pour
cette arithmétique à 3 chiffres significatifs avec la méthode d’élimination de Gauss, sans et avec
permutation des lignes. Interpréter le résultat, par rapport aux conditionnements des systèmes
respectifs calculés dans les questions I.3 et I.4.

Corrigé : Considérons alors le système (3) et opérons une étape de l’algorithme de Gauss sans
permutation. On observe que dans l’arithmétique à 3 chiffres 1 − 104 = −0.9999 104 ≈ −104
et 2 − 104 = −0.9998 104 ≈ 104 et dans cette arithmétique le système devient

10−4 x1 + x2 = 1
−10 x2 = −104
4

La solution de ce système est x1 = 0 et x2 = 1 : dans ce cas l’erreur entre la solution numérique


et la solution exacte est de l’ordre de 1, donc de l’ordre de la solution elle-même.

4
Reprenons donc le calcul en permutant d’abord les deux lignes du système (3) pour obtenir
x1 + x2 = 2
10−4 x1 + x2 = 1
Alors, opérant une étape de la méthode de Gauss et observant que dans l’arithmétique à 3
chiffres 1 − 10−4 = 0, 9999 ≈ 1 et 1 − 2 10−4 = 0.9998 ≈ 1 on obtient
x1 + x2 = 2
x2 = 1
dont la solution est x1 = 1 et x2 = 1. Or, la solution exacte x1 = 1, 0001, x2 = 0.9999 arrondie
à 3 chiffres significatifs est précisément x1 = x2 = 1. Ce petit exemple montre clairement de
quelle façon des erreurs peuvent apparaı̂tre à cause d’un grand conditionnement : dans le cas
sans permutation, le conditionnement est alors très élevé et on parle d’un système mal condi-
tionné. La solution numérique est alors complètement erronée avec une erreur de l’ordre de 1,
bien que dans l’arithmétique à 3 chiffres l’erreur sur les coefficients ne soit que de l’ordre de
10−4 . Dans la question I.4 nous avons vu que de permuter des lignes du système permet d’ob-
tenir un système avec un faible conditionnement (de l’ordre de 4), on parle d’un système bien
conditionné. Dans ce cas l’erreur sur la solution est du même ordre que l’erreur d’arrondi sur
les coefficients du système.
Exercice 2 : méthode itérative de résolution d’un système linéaire.
Soit A une matrice n × n à coefficients réels, symétrique et définie positive : on rappelle qu’alors
les valeurs propres de A sont strictement positives. On cherche à résoudre

Ax = b

avec b ∈ Rn par la méthode itérative

Mx(k+1) = Nx(k) + b, k = 0, 1, 2, · · · avec A = M−N (4)

et x(0) ∈ Rn un vecteur initial arbitraire. On prend comme matrice M dans (4)


1
M= I (5)
α
avec I la matrice identité n × n et α 6= 0 un nombre réel.
2a) Ecrire le processus itératif sous la forme

x(k+1) = C(α)x(k) + c, k = 0, 1, · · ·

Donner l’expression de la matrice C(α) et rappeler la condition nécessaire et suffisante donnée


en cours pour que le processus converge, quel que soit le vecteur x(0) . On notera ρ (C(α)) le
rayon spectral de C(α).

Corrigé : On a bien sûr

x(k+1) = M −1 Nx(k) + M −1 b = M −1 (M − A)x(k) + M −1 b = (I − M −1 A)x(k) + M −1 b.

5
Si M = α1 I alors M −1 = αI et
x(k+1) = C(α)x(k) + c
avec
C(α) = I − αA, c = αb.
D’après le cours, la méthode itérative converge si et seulement si

ρ(C(α)) < 1

avec ρ(C(α)) le rayon spectral de C(α).

2b) On note λ j > 0, j = 1, 2, · · ·, n, les valeurs propres de A. Ecrire les valeurs propres µ j , j =
1, 2, · · ·n, de C(α) en fonction des valeurs propres λ j de A. Déterminer le nombre a > 0 tel que
la méthode itérative (4) converge, si et seulement si

α ∈]0, a[.

Corrigé : Etant donné que C(α) = I − αA, les valeurs propres µ j de C(α) sont

µ j = 1 − αλ j , j = 1, 2, · · ·, n,

avec λ j > 0 les valeurs propres de A (qui sont positives car A est symétrique et définie positive).
Or, |µ j | < 1 si et seulement si

−1 < 1 − αλ j < 1, j = 1, 2, · · ·, n.

L’inégalité à droite est vérifier si et seulement si α > 0 et l’inégalité à gauche, si et seulement si


2
α< , j = 1, 2, · · ·, n.
λj

Or, pour que cette inégalité soit satisfaite, il faut et il suffit que
2 2
α< = .
max j=1,···,n λ j ρ(A)

Donc, la méthode converge si et seulement si α ∈]0, a[ avec a = 2


ρ(A)
.

2c) Application : Soit la matrice 3 × 3


 
2 −1 0
A =  −1 2 −1  . (6)
0 −1 2

6
Calculer les valeurs propres de A et expliciter pour cet exemple le nombre a de la question 2b).
A quelle valeur de α correspond la méthode de Jacobi vue en cours pour cet exemple ?

Corrigé : Un rapide calcul montre que

det(A − λI) = (2 − λ)(λ2 − 4λ + 2)

et donc les valeurs propres de A sont


√ √
λ1 = 2, λ2 = 2 + 2, λ3 = 2 − 2.

Par conséquent, ρ(A) = 2 + 2 et a = 2√ . La méthode de Jacobi correspond à M = D dans
2+ 2
(4), avec D matrice diagonale, les éléments sur la diagonale étant ceux de la diagonale de A.
Donc, ici D = 2I et par conséquent la méthode de Jacobi correspond à α = 1/2. On remarque
bien sûr qu’on a bien α < a.

Exercice 3 : Méthode de Jacobi et de relaxation pour des matrices tridiagonales.


Soit une matrice n × n tridiagonale
 
a b
 c
 a b (0) 

A=
 . . . . . . 
. . . 
 
 (0) c a b 
c a

où a, b, c sont des scalaires réels non nuls. On suppose que c/b > 0. On rappelle (cf. cours) que
les valeurs propres de A sont
r  
c jπ
λ j = a + 2b cos , j = 1, · · ·n.
b n+1
1
3a) On considère l’intervalle I = [0, 1] et on note h = n+1 . On définit l’ensemble de n + 1
points xi , t.q. xi = ih, i = 0, · · · , n + 1. Soit u(x), x ∈ I, une fonction au moins 4 fois continûment
dérivable. Montrer par la formule de Taylor, que

−u(xi−1 ) + 2u(xi ) − u(xi+1 )


−u′′ (xi ) = + O(h2 ), i = 1, · · · , n. (7)
h2

Corrigé : En observant que xi+1 = xi + h et xi−1 = xi − h, on peut écrire les formules de Taylor
avec reste et
h2 ′′ h3 h4
u(xi+1 ) = u(xi ) + hu′ (xi ) + u (xi ) + u′′′ (xi ) + u(4) (xi + θ1 h), 0 < θ1 < 1,
2 6 24

7
et
h2 ′′ h3 ′′′ h4 (4)
u(xi−1 ) = u(xi ) − hu (xi ) + u (xi ) − u (xi ) + u (xi − θ2 h), 0 < θ2 < 1.

2 6 24
D’où
h4 (4)
−u(xi−1 ) + 2u(xi ) − u(xi+1 ) = −h2 u′′ (xi ) − (u (xi + θ1 h) + u(4) (xi − θ2 h)).
24
Or, par le théorème de la valeur intermédiaire on peut écrire
u(4) (xi + θ1 h) + u(4) (xi − θ2 h) = 2u(4) (xi + θh), −θ2 < θ < θ1
et donc
−u(xi−1 ) + 2u(xi ) − u(xi+1 ) h2 (4)
−u′′ (xi ) = + u (xi + θh)
h2 12
qui est bien de la forme (7).

3b) On considère l’équation différentielle à valeurs au bord


−u′′ (x) = f (x), 0 < x < 1,
u(0) = u(1) = 0, (8)
où f est une fonction donnée. En utilisant l’approximation de −u′′ (xi ) donnée par l’expression
(7), omettant le terme en O(h2 ), montrer que les ui , i = 1, · · ·, n, approximations de u(xi ), sont
solutions du système linéaire
   
u1 f (x1 )
 u2   f (x2 ) 
2
A  ..  = h  ..  . (9)
  
 .   . 
un f (xn )
On donnera l’expression de la matrice A.

Corrigé : Utilisant (7) dans l’équation différentielle, on obtient


−u(xi−1 ) + 2u(xi ) − u(xi+1 ) h2 (4)
= f (xi ) − u (xi + θh), i = 1, · · · , n
h2 12
et si on omet le terme en O(h2 ), écrivant alors au lieu de u(xi ) l’approximation ui , on obtient
−ui−1 + 2ui − ui+1 = h2 f (xi ), i = 1, · · · , n.
Pour i = 1 cette équation fait intervenir u0 : or, u0 est la solution en x0 = 0, donc ici u0 = 0, étant
donnée la condition au bord de l’équation différentielle (8). Ensuite, pour i = n un+1 apparaı̂t :
un+1 est la solution en xn+1 = 1, donc ici un+1 = 0 d’après (8). On obtient ainsi le système
2u1 − u2 = h2 f (x1 )
−ui−1 + 2ui − ui+1 = h2 f (xi ), i = 2, · · ·, n − 1
−un−1 + 2un = h2 f (xn )

8
Bien évidemment, ce système peut s’écrire sous la forme (9) avec
 
2 −1
 −1 2 −1 (0) 
 
A=
 . . . . . . 
. . . 
 
 (0) −1 2 −1 
−1 2

3c) On cherche à résoudre le système linéaire (9) par la méthode itérative de Jacobi. Calculer
les valeurs propres de A, en utilisant les expressions rappelées ci-dessus. En déduire les valeurs
propres de la matrice d’itération CJ de la méthode de Jacobi. En déduire que la méthode itérative
de Jacobi converge.

Corrigé : La matrice A étant tridiagonale, avec a = 2, b = c = −1, les valeurs propres sont
d’après l’expression rappelée plus haut
   
kπ kπ
λk = 2 − 2 cos = 4 sin2
, k = 1, · · · , n.
n+1 2(n + 1)
La matrice d’itération de la méthode de Jacobi est

CJ = I − D−1 A

(avec D matrice diagonale formée avec la diagonale de A). Ici D = 2I, donc D−1 = 21 I, par
conséquent CJ = I − 21 A et les valeurs propres µk de CJ sont
 
1 kπ
µk = 1 − λk = cos , k = 1, · · ·, n.
2 n+1
π

On observe que |µk | < 1, k = 1, · · · , n et µ1 = cos n+1 = maxk=1,···,n |µk |. Donc,

π
 
ρ(CJ ) = cos <1
n+1
et par conséquent la méthode de Jacobi converge.
3d) Considérer la méthode de relaxation (définition 10 du cours). La matrice A, satisfait-elle
aux conditions du théorème 14 du cours ? Déterminer alors le paramètre de relaxation optimal
ω0 et le rayon spectral ρ (CG (ω0 )) correspondant. Comparer cette valeur aux rayons spectraux
des matrices CJ et CG associées respectivement à la méthode de Jacobi et de Gauss-Seidel.

Corrigé : La matrice A étant tridiagonale, elle possède la propriété appelée (P) en cours. En-
suite, nous venons de calculer les valeurs propres de CJ qui sont en effet réelles et par ailleurs
ρ(CJ ) < 1. Les conditions du théorème 14 du cours sont ainsi vérifiées. La méthode de re-
laxation est expliquée dans le cours. Le théorème 14 donne un moyen de calculer le paramètre
optimal ω0 qui est tel que la matrice CG (ω0 ) de la méthode itérative de relaxation a le rayon

9
spectral le plus petit possible :c’est alors que la convergence de la méthode est la plus rapide.
π
On note µ = ρ(CJ ) = cos n+1 et le paramètre optimal est (cf. théorème 4)

2 2 2
ω0 = p = q  = 1 + sin π
.
1+ 1−µ 2 π
1 + 1 − cos2 n+1 n+1

Le rayon spectral de CG (ω0 ) est


π π π
1 − sin2 cos2
  
1 − sin
ρ(CG (ω0 )) = ω0 − 1 = n+1
π = n+1
= n+1
2 .
π π
 2
1 + sin n+1 1 + sin 1 + sin
n+1 n+1

Dans cette dernière expression on trouve au numérateur le carré du rayon spectral de CJ et le


dénominateur est plus grand que 1. Par ailleurs, au théorème 14 il a été montré que le rayon
spectral de CG associée à la méthode de Gauss-Seidel est tel que ρ(CG ) = (ρ(CJ ))2 . Donc, ici

(ρ(CJ ))2 ρ(CG )


ρ(CG (ω0 )) = 2 =
π π
2
1 + sin n+1 1 + sin n+1

et en particulier
ρ(CG (ω0 )) < ρ(CG ) < ρ(CJ ).

10