Manipulation 1 : Résolution matricielle par les méthodes directes
Réalise par : Encadrer par :
Ilyass Daouairi [Link]
A.U 22/23
I. But de TP :
Durant ce TP , nous allons implémenter les méthodes numériques de
résolution de systèmes d’équations linéaires (Méthode de Gauss , de
Jacobi et de Gauss-Seidel).
II. Enonce du TP :
Soit le système linéaire suivant :
𝐴 ∗ 𝑥 =𝑏
Où :
10 7 5 1
𝐴=[7 8 6] ; 𝑏 = [3]
8 9 5 4
❖Calculer 𝒙 = 𝒊𝒏𝒗(𝑨) ∗ 𝒃 .
• Par la méthode directe :
1
D’abord on calcul inv(A) en utilisant la formule inv(A)=[𝐴] ∗Adj(𝐴𝑡 ):
10 7 5
On a 𝐴=[7 8 6]
8 9 5
8 6 7 6 7 8
Donc [𝐴] = 10 ∗ [ ]−7∗[ ]+5∗[ ]
9 5 8 5 8 9
= 10 ∗ ((8 ∗ 5) − (6 ∗ 9)) − 7 ∗ ((7 ∗ 5) − (8 ∗ 6)) + 5 ∗
((7 ∗ 9) − (8 ∗ 8))
= 10 ∗ (40 − 54) − 7 ∗ (35 − 48) + 5(63 − 64)
= 10 ∗ (−14) − 7 ∗ (−13) + 5 ∗ (−1)
= −140 + 91 − 5
[𝐴] = −54
Et qu’on [A]≠0 , alors 𝐴−1 est existe
10 7 8
Maintenant on calcule Adj(𝐴𝑡 ) , Avec 𝐴𝑡 = ( 7 8 9)
5 6 5
8 9 7 9 7 8
+[ ] −[ ] +[ ]
6 5 5 5 5 6
7 8 10 8 10 7
Donc Adj(𝐴𝑡 ) = − [ ] +[ ] −[ ]
6 5 5 5 5 6
7 8 10 8 10 7
( + [ ] − [ ] + [ ]
8 9 7 9 7 8)
(40 − 54) −(35 − 45) (42 − 40)
= (−(35 − 48) (50 − 40) −(60 − 35))
(63 − 64) −(90 − 56) (80 − 49)
−14 10 2
Adj(𝐴𝑡 ) = ( 13 10 −25)
−1 −34 31
1
On sait que inv(A)=[𝐴] ∗Adj(𝐴𝑡 )
−14 10 2
−1
Donc inv(A)= 54 ∗ ( 13 10 −25)
−1 −34 31
Alors 𝑥 = 𝑖𝑛𝑣(𝐴) ∗ 𝑏
−14 10 2 1
−1
= ∗ ( 13 10 −25) ∗ (3)
54
−1 −34 31 4
24 −0.4444
−1
En fin on trouve 𝑥 = 54 ∗ (−84)=( 1.5556 )
21 −0.3889
• On utilisant MATLAB :
• A = [10 7 5 ; 7 8 6 ; 8 9 5];%les elements de la matrice A
• b = [1;3;4];%les elements de la matrice b
• X= inv(A)*b;%Calcul de x qui egale le produit de l'inverse de A et b
X=
-0.4444
1.0556
-0.3889
❖Résoudre ce système en utilisant la méthode de gauss , de
Jacobi et de Gauss-Seidel.
• La méthode de Gauss :
• Par la méthode directe :
10 7 5 1
𝐴 = [ 7 8 6] ; 𝑏 = [3]
8 9 5 4
L1
L2
L3
L1
10
= (L2* 7 )-L1
L3
L1
= L2
10
(L3* 8 )-L1
L1
= L2
L3
L1
= L2
124
(L3*199)-L2
L1
= L2
L3
En fin on trouve :
10𝑥1 + 7𝑥2 + 5𝑥3 = 1
31 25 23
𝑥2 + 𝑥3 =
7 7 7
−270 15
𝑥 =
{ 119 3 17
Alors
15 −119 −7
𝑥3 = ∗ = ⇒ 𝑥3 = −0.3889
17 270 18
31 25 −7 23 31 23 25 589 19
𝑥2 + ( ∗ )= ⇒ 𝑥 = + = = ⇒ 𝑥2 = 1.05556
7 7 18 7 7 2 7 18 126 18
19 −7 49 −40
{10𝑥1 + (7 ∗ 18) + (5 ∗ 18 ) = 1 ⇒ 10𝑥1 = 1 − 9
=
9
⇒ 𝑥1 = −0.444
𝑥1 −0.444
En fin x=(𝑥2 ) = ( 1.05556 )
𝑥3 −0.3889
• On utilisant MATLAB :
A=[10 7 5 ; 7 8 6 ; 8 9 5 ];
b=[1 3 4];
c=[10 7 5 1; 7 8 6 3; 8 9 5 4];
n= size(c,1);
x = zeros(n,1);
for i=1:n-1
for j=i+1:n
m = c(j,i)/c(i,i)
c(j,:) = c(j,:) - m*c(i,:)
end
end
x(n) = c(n,n+1)/c(n,n)
for i=n-1:-1:1
summ = 0
for j=i+1:n
summ = summ + c(i,j)*x(j,:)
x(i,:) = (c(i,n+1) - summ)/c(i,i)
end
end
x =
-0.4444
1.0556
-0.3889