Vous êtes sur la page 1sur 8

1)

Soit

2 −1 0 0 0 0 0 0 0 0 1
−1 2 −1 0 0 0 0 0 0 0 0
0 −1 2 −1 0 0 0 0 0 0 0
0 0 −1 2 −1 0 0 0 0 0 0
0 0 0 −1 2 −1 0 0 0 0 0
𝐴= Et 𝐵=
0 0 0 0 −1 2 −1 0 0 0 0
0 0 0 0 0 −1 2 −1 0 0 0
0 0 0 0 0 0 −1 2 −1 0 0
0 0 0 0 0 0 0 −1 2 −1 0
[0 0 0 0 0 0 0 0 −1 2] [1]

Résolvant le système linéaire AX = B. Pour se faire sinon décomposons A en LU telle que A=LU on pourra
donc résoudre le système en descente et en remontée en posant :

 LY=B en descente
 UX=B en remonté

Lors du TP1 nous avions déjà décomposée A en LU et nous avons obtenu le résultat suivant :

2 −1 0 0 0 0 0 0 0 0
−1 2 −1 0 0 0 0 0 0 0
0 −1 2 −1 0 0 0 0 0 0
0 0 −1 2 −1 0 0 0 0 0
0 0 0 −1 2 −1 0 0 0 0
=
0 0 0 0 −1 2 −1 0 0 0
0 0 0 0 0 −1 2 −1 0 0
0 0 0 0 0 0 −1 2 −1 0
0 0 0 0 0 0 0 −1 2 −1
[0 0 0 0 0 0 0 0 −1 2 ]
1 0 0 0 0 0 0 0 0 0
−1/2 1 0 0 0 0 0 0 0 0
0 −2/3 1 0 0 0 0 0 0 0
0 0 −3/4 1 0 0 0 0 0 0
0 0 0 −4/5 1 0 0 0 0 0
0 0 0 0 −5/6 1 0 0 0 0
0 0 0 0 0 −6/7 1 0 0 0
0 0 0 0 0 0 −7/8 1 0 0
0 0 0 0 0 0 0 −8/9 1 0
[ 0 0 0 0 0 0 0 0 −9/10 1]
2 −1 0 00 0 0 0 0 0 0
0 3/2 −1 0 0 0 0 0 0 0
0 0 4/3 −1 0 0 0 0 0 0
0 0 0 5/4 −1 0 0 0 0 0
0 0 0 0 6/5 −1 0 0 0 0
x 0 0 0 0 0 7/6 −1 0 0 0
0 0 0 0 0 0 8/7 −1 0 0
0 0 0 0 0 0 0 9/8 −1 0
0 0 0 0 0 0 0 0 10/9 −1
[0 0 0 0 0 0 0 0 0 11/10]

o en descente LY=B

1 0 0 0 0 0 0 0 0 0 𝑌1 1
−1/2 1 0 0 0 0 0 0 0 0 𝑌2 0
0 −2/3 1 0 0 0 0 0 0 0 𝑌3 0
0 0 −3/4 1 0 0 0 0 0 0 𝑌4 0
0 0 0 −4/5 1 0 0 0 0 0 𝑌5 0
x =
0 0 0 0 −5/6 1 0 0 0 0 𝑌6 0
0 0 0 0 0 −6/7 1 0 0 0 𝑌7 0
0 0 0 0 0 0 −7/8 1 0 0 𝑌8 0
0 0 0 0 0 0 0 −8/9 1 0 𝑌9 0
[ 0 0 0 0 0 0 0 0 −9/10 1] [𝑌10 ] [1]

L Y B

En multipliant les ligne de la matrice L par la colonne de la matrice Y on obtient


En observant l’évolution des premiers éléments de
 Y1= 1 Y on peut prédire que :
1
1
 − 2 Y1+ Y2= 0  Y2 = 2
1  Y6 = 6

2 1 1
 − Y2 + Y3 = 0  Y3 =  Y7 = 7
3 3

3 1 1
 - 4 Y3 + Y4 = 0  Y4 = 4  Y8 = 8

4 1
 - 5 Y4 + Y5 = 0  Y5 = 5  Y9 = 9
1

9 11
 - 10 Y9 + Y10 = 1  Y10 = 10

1 1 1 1 1 1 1 1 11 T
Y = [1 2 3 4 5 6 7 8 9 10
]

o En remonté UX=Y

2 −1 0 0 0 0 0 0 0 0 𝑋1 1
0 3/2 −1 0 0 0 0 0 0 0 𝑋2 1/2
0 0 4/3 −1 0 0 0 0 0 0 𝑋3 1/3
0 0 0 5/4 −1 0 0 0 0 0 𝑋4 1/4
0 0 0 0 6/5 −1 0 0 0 0 𝑋5 1/5
x =
0 0 0 0 0 7/6 −1 0 0 0 𝑋6 1/6
0 0 0 0 0 0 8/7 −1 0 0 𝑋7 1/7
0 0 0 0 0 0 0 9/8 −1 0 𝑋8 1/8
0 0 0 0 0 0 0 0 10/9 −1 𝑋9 1/9
[0 0 0 0 0 0 0 0 0 −11/10] [𝑋10 ] [11/10]

U X Y

En multipliant les ligne de la matrice U par la colonne de la matrice X on obtient les résultats suivants

11 11
 10
X10 = 10  X10 = 1
10 1 1 9
 9
X9 – X10 = 9  X9 = ( 9 + 1) x 10  X9 = 1

9 1 1 8
 X8 – X9 =  X8 = ( + 1) x  X8 = 1
8 8 8 9

8 1 1 7
 7
X7 – X8 = 7  X7 = ( 7 + 1) x 8  X7 = 1

7 1 1 6
 6
X6 – X7 = 6  X6 = ( 6 + 1) x 7  X6 = 1

6 1 1 5
 X5 – X6 =  X5 = ( + 1) x  X5 = 1
5 5 5 6

5 1 1 4
 4
X4 – X5 = 4  X4 = ( 4 + 1) x 5  X4 = 1

4 1 1 3
 X3 – X4 =  X3 = ( + 1) x  X3 = 1
3 3 3 4

3 1 1 2
 X2 – X3 =  X2 = ( + 1) x  X2 = 1
2 2 2 3

1
 2X1 – X2 = 1  X1 = ( 1 + 1) x  X1 = 1
2

D’où

X = [1 1 1 1 1 1 1 1 1 1] T

2)

Algorithm 3. Algorithme de Jacobi.


Input : A une matrice carrée d’ordre n∈ N => l’entré, on y définir la matrice
— X , Y => initialisation des vecteur
— Pour k ∈ [1..N] => intervalle d’itération
— Pour i ∈ [1..n]
𝑩𝒊 − ∑𝒊−𝟏 𝒏
𝒋=𝟏 𝑨𝒊𝒋 𝑿𝒋 − ∑𝒋=𝒊+𝟏 𝑨𝒊𝒋 𝑿𝒋
— Yi = 𝑨𝒊𝒊
— fin
— X=Y
— erreur = norm (AX- B) => norme Euclidienne || U || = √∑𝑛𝑘=1 |𝑈𝑘 |2
— if erreur = epsilon
— Afficher (K , erreur )
— rectum
— fin
3)

clear all;

n=10;

A=2*diag(ones(1,n))-diag(ones(1,n-1),1)-diag(ones(1,n-1),-1);
B = zeros(n,1);
B(1) = 1;
B(n) = 1;

[X,k,erreur]= fonction_jacobi(A,B);

function [X,k,erreur]= fonction_jacobi(A,B);


fprintf('Méthode itérative de Jacobi \n');
n = length(A);
N = 500;
X = zeros(n,1);
Y= zeros(n,1);
epsilon = 1e-6;
for k=1:N
for i=1:n
s1=0;
s2=0;
for j= 1:i-1
s1=s1+A(i,j)*X(j);
end
for j=i+1:n
s2=s2+A(i,j)*X(j);
end
Y(i)=(B(i)-s1-s2)/A(i,i);
end
for i=1:n

X(i) = Y(i);
erreur = norm(A*X-B);
if erreur < epsilon
fprintf('Itération:%d\t Erreur=%7.2e\n',k,erreur);
return
end
end
end
end

Resultat
Nous obtenons un résultat identique a
celui fait à la main

L’erreur est cohérente avec notre définition


de l’erreur fixé dans notre programme
Conclusion

Ce TP nous a permis d’apprendre à résoudre un système linéaire par la méthode de relaxation en ce


servant de la décomposition LU ou Cholesky dans le but de rendre l’opération plus simple

Vous trouverez ci-joint le scripte Matlab relative au programme appliqué à la matrice A