Corrigé de TP 5: Résolution Numérique Des Systèmes D'équations Linéaires

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

Université de Djelfa - Département de physique - L2-Socl commun de physique - 2021/2022

Module : Méthodes numériques et programmation

Corrigé de TP 5 : Résolution numérique des systèmes d’équations linéaires

I. Travail dirigé
1) On écrit d’abord la matrice augmentée :
2 1 2 10
[6 4 0 |26]
8 5 1 35
On effectue ensuite des opérations sur ses lignes afin d’obtenir un système triangulaire supérieur. On suit
les étapes suivantes :
Etape 1 : Elimination sur la colonne 1 de la matrice précédente
On applique des opérations élémentaires sur les lignes 2 et 3 comme suivant :
② 1 2 10
[6 4 0 |26] (𝐿2 ← 𝐿2 − (6⁄②)𝐿1 )
8 5 1 35 (𝐿3 ← 𝐿3 − (8⁄②)𝐿1 )
On obtient :
2 1 2 10
[0 1 −6 |−4]
0 1 −7 −5
Remarque : l’élément 2 est appelé pivot.
Etape 2 : Elimination sur la colonne 2 de la matrice précédente
On applique une opération élémentaire sur la ligne 3 comme suivant :
2 1 2 10
[0 ① −6 |−4]
0 1 −7 −5 (𝐿3 ← 𝐿3 − (1⁄①)𝐿2 )
On obtient :
2 1 2 10
[0 1 −6 |−4]
0 0 −1 −1
Remarque : l’élément 1 est appelé pivot.
Le système triangulaire supérieur obtenu est donc :
2 1 2 𝑥1 10
[0 1 −6] [𝑥2 ] = [−4]
0 0 −1 𝑥3 −1
ou encore :
2𝑥1 + 1𝑥2 + 2𝑥3 = 10
(0)𝑥1 + 1𝑥2 + (−6)𝑥3 = −4
(0)𝑥1 + (0)𝑥2 + (−1)𝑥3 = −1
[
sa solution est : 𝑋 = 1𝑥 𝑥2 𝑥3 ]𝑇
, tel que :
−4 − (−6)(1) 10 − (1)(2) − (2)(1)
𝑥3 = −1⁄−1 = 1 , 𝑥2 = = 2 , 𝑥1 = =3
1 2
2) Soit le système linéaire suivant :

1) On utilise le théorème de convergence, on a :


|3| > |1| + |−1| , |5| > |1| + |2| , |−6| > |2| + |−1|
Les trois inégalités sont vérifiées, alors la matrice 𝐴 est à diagonale strictement dominante, et par
conséquent la méthode de Gauss-Seidel converge.
2) Pour le système (2), la méthode de Gauss-Seidel s’écrit :

1
1
𝑥1𝑘+1 = (2 − 𝑥2𝑘 + 𝑥3𝑘 )
3
1
𝑥2𝑘+1 = (17 − 𝑥1𝑘+1 − 2𝑥3𝑘 )
5
1
𝑥3𝑘+1 = (−18 − 2𝑥1𝑘+1 + 𝑥2𝑘+1 )
−6
partant de [0 0 0]𝑇 , on trouve d’abord :
1 2
𝑥11 = (2 − 0 + 0) =
3 3
1 2 49
𝑥21 = (17 − − 0) =
5 3 15
1 2 49 241
𝑥31 = (−18 − 2 ( ) + ) =
−6 3 15 90
tandis qu’à la deuxième itération on trouve :
1 49 241
𝑥11 = (2 − + ) = 0,4703704
3 15 90
1 241
𝑥21 = (17 − 0,4703704 + 2 ( )) = 2,234815
3 90
1
𝑥31 = (−18 − 2(0,4703704) + 2,234815) = 2,784321
−6
ainsi que les itérations suivantes :
𝑘 𝑥1𝑘 𝑥2𝑘 𝑥3𝑘
1 0.6666667 3.266667 2.677778
2 0.4703704 2.234815 2.784321
3 0.8498354 2.116305 2.930561
4 0.9380855 2.040158 2.972669
5 0.9775034 2.015432 2.989929
6 0.9914991 2.005729 2.996212
7 0.9968277 2.002150 2.998584
8 0.9988115 2.000804 2.999470
9 0.9995553 2.000301 2.999802
10 0.9998335 2.000113 2.999926
II. Travail pratique
1) Méthode d’élimination de Gauss
a. Algorithme de la méthode d’élimination de Gauss :

1. Donner la matrice 𝐴, le vecteur 𝐵 et la dimension 𝑛 du sytème.


2. Calculer les éléments du système triangulaire supérieur équivalent par :
𝑎𝑖𝑘 𝑎𝑖𝑘
𝑎𝑖𝑗 = 𝑎𝑖𝑗 − 𝑎𝑘𝑗 , 𝑏𝑖 = 𝑏𝑖 − 𝑏 , 𝑘 = 1: 𝑛 − 1 , 𝑖 = 𝑘 + 1: 𝑛 , 𝑗 = 𝑘: 𝑛
𝑎𝑘𝑘 𝑎𝑘𝑘 𝑘
3. Calculer la solution recherchée du système par la formule :
𝑏′𝑛
𝑠𝑖 𝑖 = 𝑛
𝑎′𝑛𝑛
𝑥𝑖 = , (𝑖 = 𝑛 , … , 2 , 1)
(𝑏′𝑖 − ∑𝑛𝑗=𝑖+1 𝑎′𝑖𝑗 𝑥𝑗 )
𝑠𝑖 𝑖 ≠ 𝑛
{ 𝑎′𝑖𝑖
du système obtenu :

2
𝑎′11 𝑎′12 𝑎′13 … 𝑎′1𝑛 𝑥1 𝑏 ′1
0 𝑎′ 22 𝑎′ 23 … 𝑎′ 2𝑛 𝑥2 𝑏′2
0 0 𝑎′ 33 … 𝑎′ 3𝑛 𝑥3 = 𝑏 ′ 3
⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮
[ 0 0 0 0 𝑎′ 𝑛𝑛 ] [𝑥𝑛 ] [𝑏 ′ 𝑛 ]

b. Le programme MATLAB de la méthode d’élimination de Gauss :

clear all;close all;clc;


%Programme de la méthode d'élimination de Gauss
A=[2 1 2;6 4 0;8 5 1];B=[10;26;35];n=length(B);
%Calcul du système triangulaire supérieur
for k=1:n-1
if A(k,k)==0
disp('Attention: pivot nul')
break
end
for i=k+1:n
C=A(i,k)/A(k,k);
B(i)=B(i)-B(k)*C;
for j=k:n
A(i,j)=A(i,j)-A(k,j)*C;
end
end
end
disp('La matrice triangulaire supérieur obtenue est :')
disp(A)
disp('Le vecteur B devient :')
disp(B)
%Calcul de la solution du système
for i=n:-1:1
if i==n
x(i)=B(i)/A(i,i);
else
s1=0;
for j=i+1:n
s1=s1+A(i,j)*x(j);
end
x(i)=(B(i)-s1)/A(i,i);
end
end
disp('solution est :')
disp(x)

Après exécution on obtient

La matrice triangulaire supérieur obtenue est :


2 1 2
0 1 -6
0 0 -1
Le vecteur B devient :
10
-4
-1
La solution est :
3 2 1

3
Attention : On ne peut pas appliquer la méthode d’élimination de Gauss si le pivot dans chaque étape est
nul.
c. On fait ce calcul directement sur la zone de commandes :
>> A=[2 1 2;6 4 0;8 5 1];B=[10;26;35];
>> X=A\B
X=
3
2
1

>> X=inv(A)*B
X=
3
2
1

Ces commandes prédéfinies équivalentes donnent le même résultat que notre programme réalisé.

2) Méthode de Gauss-Seidel

a. On fait ce calcul directement sur la zone de commandes :

>> A=[3 1 -1;1 5 2;2 -1 -6];B=[2;17;-18];


>> X=inv(A)*B
X=
1
2
3

>> X=A\B
X=
1.00000000000000
2.00000000000000
3.00000000000000

b. Algorithme de la méthode de Gauss-Seidel :

1. Donner la matrice 𝐴, le vecteur 𝐵, un vecteur de départ 𝑋0 , la précision 𝜀, le nombre maximal des


itérations 𝑁.
2. Calculer les éléments du vecteur 𝑋 𝑘+1 à partir du vecteur 𝑋 𝑘 en utilisant la formule la méthode de
Gauss-Seidel.
3. Si max|𝑋 𝑘+1 − 𝑋 𝑘 | ≤ 𝜀 ; afficher le résultat : vecteur solution 𝑋 = 𝑋 𝑘+1 et le nombre d’itération 𝑘, et
arrêter le calcul.
Si max|𝑋 𝑘+1 − 𝑋 𝑘 | > 𝜀 ; poser 𝑋 𝑘+1 = 𝑋 𝑘 .
Si 𝑘 > 𝑁 afficher « le nombre d’itérations maximal est atteint » et arrêter.
4. Retour à l’étape 2.

4
c. Le programme MATLAB de la méthode de Gauss-Seidel :

clear all;close all;clc;


format long
%Programme de la méthode de Gauss-Seidel
A=[3 1 -1;1 5 2;2 -1 -6];B=[2;17;-18];n=length(B);
x0=[0;0;0];
x1=x0;
eps=10^-2
e=1+eps;
k=0;
while e>eps
for i=1:n
s1=A(i,1:i-1)*x1(1:i-1);
s2=A(i,i+1:n)*x0(i+1:n);
x1(i)=(B(i)-s1-s2)/A(i,i);
end
e=max(abs(x1-x0));
x0=x1;
k=k+1;
end
disp('le vecteur solution est')
disp(x1)
disp('le nombre d''itérations est')
disp(k)

On obtient après exécution le résultat suivant :

le vecteur solution est :


0.99682770502025
2.00214981016155
2.99858426664649
le nombre d'itérations est : 7

d. Les résultats obtenus pour différentes précisions sont donnés dans le tableau suivant :

𝜀 Nombre 𝑥1 𝑥2 𝑥3
d’itérations
10−2 7 0.99682770502025 2.00214981016155 2.99858426664649
10−3 9 0.99955527762739 2.00030101282468 2.99980159040502
10−4 12 0.99997667778165 2.00001578354740 2.99998959533598
10−6 14 0.99999673260932 2.00000221124840 2.99999854232837

On conclut que lorsque la précision augmente, le nombre d’itérations effectué augmente plus en plus, et la
solution converge vers la solution exacte.

Vous aimerez peut-être aussi