Vous êtes sur la page 1sur 17

Projet Analyse 1

Numerique
Résolution du système
Ax=B à l'aide de la
méthode LU et Calcul
de plus petit et plus
grand valeurs propres
de matrice de
covariance

• AGREBI Noor Houda


Réalisé par • BACCAR Mohamed Yahia

Classe • INDP 1D

Encadré par • M. Ali SAADA

Année universitaire 2016/2017

1
Table des matières
Introduction............................................................................................................................................. 1
Partie 1 - Résolution du système Ax=B à l'aide de la méthode LU ..................................................... 2
1.1. Introduction ............................................................................................................................. 2
1.2. Génération de la matrice A et le vecteur b ............................................................................. 2
1.2.1. Commentaire Annexe 1 ................................................................................................... 2
1.2.2. Commentaire Annexe 2 ................................................................................................... 2
1.3. Description des différentes méthodes de résolution des systèmes linéaire .......................... 2
1.3.1. La méthode LU................................................................................................................. 2
1.3.2. La méthode Cholesky ...................................................................................................... 4
1.3.3. La méthode QR ................................................................................................................ 4
1.4. Programmation la décomposition LU en utilisant la méthode de Crout ................................ 5
1.5. Conclusion ............................................................................................................................... 5
Partie 2 - Calcul de plus petit et plus grand valeurs propres de matrice de covariance .................... 6
2.1. Introduction ............................................................................................................................. 6
2.2. Description des différentes méthodes pour le calcul des valeurs propres d’une matrice ..... 6
2.2.1. La méthode de puissance itérées .................................................................................... 6
2.2.2. La méthode de puissance inverse ................................................................................... 7
2.2.3. La méthode QR ................................................................................................................ 8
2.3. Programmation des méthodes de puissance itérées et de puissance inverse ....................... 8
2.3.1. La méthode de puissance itérées .................................................................................... 8
2.3.2. La méthode de puissance inverse ................................................................................... 8
2.4. Conclusion ............................................................................................................................... 8
Conclusion ............................................................................................................................................... 9
Webographie ......................................................................................................................................... 10
Annexe ................................................................................................................................................... 11

2
Introduction
Les systèmes linéaires interviennent dans plusieurs contextes d’application car il forme la base
calculatoire de l’algèbre linéaire. Ces systèmes peuvent être transformé en une seule équation
de la forme 𝐴 ∗ 𝑥 = 𝑏 ou A est une matrice carrée de dimension n, x et b sont deux vecteur
colonne de dimension n. Cette transformation facilite la résolution des systèmes linéaires grâce
aux caractéristiques des matrices qui feront l’objet de ce rapport ainsi que la résolution de ces
systèmes.
Ce rapport est divisé en deux grandes parties. La première sera consacrée pour la résolution des
systèmes linéaire : étude d’un cas des systèmes linéaires (génération de la matrice A et le
vecteur b), énumération des différentes méthodes de résolution de ces systèmes et enfin la
programmation de la méthode LU en utilisant la méthode de Crout. Dans la deuxième partie,
nous allons parler des matrices de covariance, les différentes méthodes utilisées pour déterminer
leurs valeurs propres et enfin nous allons programmer les deux méthodes de puissance itérées
et puissance inverse.

1
Partie 1 - Résolution du système Ax=B à l'aide de la méthode LU
1.1. Introduction

La résolution des systèmes linéaires est indispensable puisqu’elle représente la clé pour
Dans cette partie, nous allons aborder un exemple de système linéaire. C’est pourquoi nous
allons générer sa matrice A et son vecteur b à l’aide du Matlab. Puis, nous allons étudier les
différentes méthodes de résolution des systèmes linéaire et enfin nous allons programmer la
méthode LU qui se base sur la méthode de Crout.

1.2. Génération de la matrice A et le vecteur b

Voir annexe 1 et annexe 2.

1.2.1. Commentaire Annexe 1


2) générer un vecteur x1 contenant des « 4 » de taille (𝑁 − 1)2
3) générer la matrice A de taille (𝑁 − 1)2 formé de « 4 » sur sa diagonale et des « 0 » ailleurs
à partir de vecteur x1.
4) générer un vecteur x2 contenant des « -1 » de taille (𝑁 − 1)2 − 1
5) Les cases multiples de (𝑁 − 1) sont mises à « 0 »
6) générer un vecteur x3 contenant des « -1 » de taille (𝑁 − 1) ∗ (𝑁 − 2)
7) ajouter le vecteur x2 au-dessus et au-dessous de la diagonale de la matrice A et le vecteur
x3 au-dessus et au-dessous de la diagonale de la matrice A de pas (𝑁 − 1) et (1 − 𝑁) et
1
multiplier le tout par ℎ2

1.2.2. Commentaire Annexe 2


b est un vecteur aléatoire de dimension (𝑁 − 1)2

1.3. Description des différentes méthodes de résolution des


systèmes linéaire

1.3.1. La méthode LU
La factorisation LU consiste à écrire une matrice inversible A comme le produit de deux autres
matrices L et U : 𝐴 = 𝐿×𝑈
Avec :

2
• L est une matrice triangulaire inférieure ayant des 1 sur la diagonale
• U est une matrice triangulaire supérieure. [1]
La décomposition se fait soit avec la méthode de Gauss ou la méthode de Crout.

1.3.1.1. La méthode de Gauss


[𝐼]×[𝐴] = [𝐴] (1)
Cette méthode se base essentiellement sur la faite d’effectuer des produits scalaires sur les
lignes de la matrice A afin de rendre les éléments au-dessous de sa diagonale nulle (la partie
gauche de l’équation 1) et de faire les mêmes opérations sur la matrice identité (la partie droite
de l’équation 1).
Chaque produit scalaire se fait sur une matrice identité. Par exemple, une matrice 3*3 possède
3 élément sous sa diagonale pour les rendre nulle. Alors, 3 produit scalaire à faire. Donc, 3
matrice identité à utiliser.
L’équation (1) après le premier produit scalaire, on obtient l’équation (2)
[𝐼1 ]×[𝐴] = [𝐴𝑚𝑜𝑑𝑖𝑓𝑖é−1 ] (2)
L’équation (2) après le premier produit scalaire, on obtient l’équation (3)
[𝐼2 ]×[𝐼1 ]×[𝐴] = [𝐴𝑚𝑜𝑑𝑖𝑓𝑖é−2 ] (3)
L’équation (3) après le premier produit scalaire, on obtient l’équation (4)
[𝐼3 ]×[𝐼2 ]×[𝐼1 ]×[𝐴] = [𝐴𝑚𝑜𝑑𝑖𝑓𝑖é−3 ] (4)
Alors, on obtient comme résultat final
[𝐴] = ([𝐼3 ]×[𝐼2 ]×[𝐼1 ])−1 ×[𝐴𝑚𝑜𝑑𝑖𝑓𝑖é−3] (5)
Avec
𝐿 = ([𝐼3 ]×[𝐼2 ]×[𝐼1 ])−1
𝑈 = [𝐴𝑚𝑜𝑑𝑖𝑓𝑖é−3 ]

1.3.1.2. La méthode de Crout


On prend l’exemple suivant :
𝑎11 𝑎12 𝑎13 𝑙11 0 0 1 𝑢12 𝑢13
[𝐴] = [𝑎21 𝑎22 𝑎23 ] = [𝑙21 𝑙22 0 ] [0 1 𝑢23 ]
𝑎31 𝑎32 𝑎33 𝑙31 𝑙32 𝑙33 0 0 1
𝑙11 𝑙11 ×𝑢12 𝑙11 ×𝑢13
𝑙
= [ 21 𝑙21 ×𝑢12 + 𝑙22 𝑙21 ×𝑢13 + 𝑙22 ×𝑢23 ] (6)
𝑙31 𝑙31 ×𝑢12 + 𝑙32 𝑙31 ×𝑢13 + 𝑙32 ×𝑢23 + 𝑙33

3
Par identification, on trouve que la première colonne de la matrice L est la même que celle de
la matrice A et la première ligne de la matrice U est égale au coefficient de la matrice A divisé
par 𝑙11 sauf pour la première case qui est égale à « 1 ».
Pour la ième ligne jème colonne,
𝑗−1

𝑙𝑖𝑗 = 𝑎𝑖𝑗 − ∑ 𝑙(𝑖, 𝑘)×𝑢(𝑘, 𝑖) (7)


𝑘=1

𝑎𝑖𝑗 − ∑𝑖−1
𝑘=1 𝑙(𝑖, 𝑘)×𝑢(𝑘, 𝑗)
𝑢𝑖𝑗 = (8)
𝑙𝑖𝑖

1.3.2. La méthode Cholesky


La méthode de Cholesky est applicable que pour des matrices symétriques définie positive. Elle
consiste à déterminer une matrice triangulaire inférieure L telle que :
[𝐴] = [𝐿]×[𝐿]𝑇 (9)
𝑙11 ⋯ 0
Soit la matrice 𝐿 = [ ⋮ ⋱ ⋮ ]
𝑙𝑛1 ⋯ 𝑙𝑛𝑛
Alors d’après l’équation (9), 𝑎𝑖𝑗 = ∑𝑛𝑘=1 𝑙𝑖𝑘 ×𝑙𝑗𝑘 (10)
Or L est triangulaire inférieur c’est-à-dire 𝑎𝑖𝑗 = 0 𝑝𝑜𝑢𝑟 1 < 𝑖 < 𝑗 < 𝑛. Alors, l’équation (10)
devient 𝑎𝑖𝑗 = ∑𝑖𝑘=1 𝑙𝑖𝑘 ×𝑙𝑗𝑘 (11)

1.3.3. La méthode QR
La méthode QR consiste à décomposer la matrice A en deux matrice Q et R :
[𝐴] = [𝑄]×[𝑅] (11)
Avec
Q : une matrice orthogonale [𝑄]×[𝑄]𝑇 = [𝐼] (12)
R : matrice triangulaire supérieur
La matrice Q peut être obtenu par les deux méthodes suivantes :
• Méthode de Householder : Q est obtenue par produits successifs de matrices
orthogonales élémentaires
• Méthode de Givens : Q est obtenue par produits successifs de matrices de rotation plane

4
1.4. Programmation la décomposition LU en utilisant la
méthode de Crout

Voir Annexe 3

1.5. Conclusion

Nous avons étudié dans ce qui précède un exemple de système linéaire en générant sa matrice
A et son vecteur b à l’aide du Matlab. Ensuite, nous avons énumérer les différentes méthodes
de résolution de ces systèmes et nous avons terminé cette partie par la programmation de la
méthode LU en se basant sur la méthode de Crout.

5
Partie 2 - Calcul de plus petit et plus grand valeurs propres de
matrice de covariance
2.1. Introduction

Les matrices de covariances sont très souvent calculées pour dégager les caractéristiques des
émetteurs et des récepteurs dans les chaines de transmission télécom. Ces matrices feront l’objet
de la deuxième partie de ce rapport qui énumérera les différentes méthodes pour le calcul des
valeurs propres des matrices, en particulier les matrices de covariance. Puis, nous passons à la
programmation des deux méthodes : méthode de puissance itérées et méthode de puissance
inverse.

2.2. Description des différentes méthodes pour le calcul des


valeurs propres d’une matrice

2.2.1. La méthode de puissance itérées


C’est une méthode qui serve à calculer la valeur propres d’une matrice donnée ayant le plus
grand module.
Soit [𝐴] ∈ 𝑀𝑛 (ℝ) de valeurs propres 𝜆1 , 𝜆2 , … , 𝜆𝑛 et de vecteurs propres →,→ , … ,→
𝑢1 𝑢2 𝑢𝑛

On veut résoudre la suite


→ = 𝐴×→= 𝐴𝑘+1 ×→ (13)
𝑥𝑘+1 𝑥𝑘 𝑥0

Avec →= 𝑎1 ×→ +𝑎2 → + ⋯ + 𝑎𝑛 → : vecteur quelconque


𝑥0 𝑢1 𝑢2 𝑢𝑛

Alors,
→= 𝐴𝑘 ×→= 𝜆1𝑘 ×𝑎1 ×→ +𝜆𝑘2 ×𝑎2 → + ⋯ + 𝜆𝑘𝑛 ×𝑎𝑛 → (14)
𝑥𝑘 𝑥0 𝑢1 𝑢2 𝑢𝑛

𝜆1 𝑘 𝜆2 𝑘
→= 𝐴𝑘 ×→= 𝜆𝑘𝑛 ×[( ) ×𝑎1 ×→ + ( ) ×𝑎2 → + ⋯ + 𝑎𝑛 → ] (15)
𝑥𝑘 𝑥0 𝜆𝑛 𝑢1 𝜆𝑛 𝑢2 𝑢𝑛

𝜆 𝑘
Or si (𝜆 𝑖 ) → 0, ∀ 𝑖 ∈ [1, 𝑛 − 1], alors, →= 𝐴𝑘 ×→= 𝜆𝑘𝑛 ×𝑎𝑛 → (16)
𝑛 𝑥𝑘 𝑥0 𝑢𝑛

Donc,
→=→ (17)
𝑥𝑘 𝑢𝑛

‖→ ‖
𝑥𝑘+1
|𝜆𝑛 | = (18)
‖→‖
𝑥𝑘

6
Mais pour le cas où 𝜆𝑛 est très grande, il y’aura des erreurs dû à la troncature du calculateur.
C’est pourquoi, on normalise la suite.
Soit

𝑥𝑘
→= (19)
𝑏𝑘
‖→‖
𝑥𝑘

→ = 𝐴×→ (20)
𝑥𝑘+1 𝑏𝑘

On calcule le produit scalaire suivant


→𝑇 × → =→𝑇 ×𝐴×→ (21)
𝑏𝑘 𝑥𝑘+1 𝑏𝑘 𝑏𝑘

→𝑇 × → = 𝜆𝑛 ×→𝑇 ×→ (22)
𝑏𝑘 𝑥𝑘+1 𝑏𝑘 𝑏𝑘

Alors
→𝑇 × → = 𝜆𝑘 (23)
𝑏𝑘 𝑥𝑘+1

Et on s’arrête lorsque
|𝜆𝑘+1 − 𝜆𝑘 | < 𝜀 (24)

[2]

2.2.2. La méthode de puissance inverse


Cette méthode faire exactement le contraire que la précédente. Elle détermine la valeur propres
d’une matrice donnée de plus petit module.
On sait que Les valeurs propres de [𝐴]−1 sont les inverses des valeurs propres de A.
Alors, on applique la méthode de puissance itérées à [𝐴]−1 .
On décompose A en L et U. Puis on résout le système
𝐿×𝑈× → =→ (25)
𝑥𝑘+1 𝑏𝑘

Avec

𝑥𝑘
→= (19)
𝑏𝑘
‖→‖
𝑥𝑘

1
𝜆𝑘 = 𝑇
(26)
→ ×→
𝑥𝑘+1 𝑏𝑘

Et de même on s’arrête lorsque


|𝜆𝑘+1 − 𝜆𝑘 | < 𝜀 (27)
[2]

7
2.2.3. La méthode QR
L’objectif c’est de trouvé une matrice triangulaire semblable à la matrice qu’on veut calculer
ses valeurs propres car de matrice semblable ont les mêmes valeurs propres. De plus, une
matrice triangulaire a sur sa diagonale ses valeurs propres. Donc à partir, de ces deux propriétés,
on peut déterminer les valeurs propres d’une matrice.
Soit [𝐴] = [𝑄]×[𝑅]. Et on note [𝐴]′ = [𝑅]×[𝑄]. [𝐴] et [𝐴]′ sont semblable car
[𝑄]𝑇 ×𝐴×[𝑄] = [𝑄]𝑇 ×[𝑄]×[𝑅]×[𝑄] = [𝑅]×[𝑄] = [𝐴]′
On construit la suite suivante
[𝐴]0 = [𝐴]
{[𝑄]𝑘 𝑒𝑡 [𝑅]𝑘 𝑡𝑒𝑙𝑙𝑒 𝑞𝑢𝑒 [𝐴]𝑘 = [𝑄]𝑘 ×[𝑅]𝑘
[𝐴]𝑘+1 = [𝑅]𝑘 ×[𝑄]𝑘
Et on s’arrête lorsqu’on atteint une matrice triangulaire et o, lit directement les valeurs propres
à partir de la diagonale. [3]

2.3. Programmation des méthodes de puissance itérées et de


puissance inverse

2.3.1. La méthode de puissance itérées


Voir Annexe 4

2.3.2. La méthode de puissance inverse


Voir Annexe 5

2.4. Conclusion

Dans cette partie, nous avons détaillé les différentes méthodes pour le calcul des valeurs propres
des matrices. Enfin, nous avons programmé deux méthodes : méthode de puissance itérées et
méthode de puissance inverse.

8
Conclusion
La transformation des systèmes linéaires à sa forme matricielle facilité énormément sa
résolution. Mais, en contrepartie, sa programmation nécessite une énorme capacité de calcul
ainsi qu’une grande capacité en mémoire d’où la nécessité de faire recourt à des méthodes de
résolution moins complexe et qui nécessite moins de temps pour s’exécuter telle que la méthode
LU, la méthode de Cholesky et la méthode QR. La méthode QR permet aussi de déterminer
directement les valeurs propres d’une matrice. Mais, si on veut se limiter seulement aux valeurs
ayant le plus grand module et le plus petit module, on peut utiliser les méthodes de puissance
itérées et inverse respectivement.

9
Webographie
[1] :http://www.lycee-pothier.com/LYCEE/pcsi1/file/ipt/TP/tp10/Matrice.pdf,
DÉCOMPOSITION LU D’UNE MATRICE, lycee-pothier, 07/05/2017
[2] :http://www-pequan.lip6.fr/~jmc/polycopies/cours5-puissanceiteree.pdf, Méthode de la
Puissance itérée, Polytech’Paris-UPMC, 07/05/2017
[3] :http://www.math.univ-lyon1.fr/~bernard/teach/numalg/algebre_notes_de_cours_6.pdf,
Calcul de valeurs propres, VIET HUNG NGUYEN - FABIEN RICO, 07/05/2017

10
Annexe
Annexe 1
Fonction qui génère la matrice A

function [ A ] = Generate_A( N , h )
2) x1=4*ones((N-1)*(N-1),1);
3) A=diag(x1);
4) x2=-ones((N-1)*(N-1)-1,1);
5) x2(N-1:N-1:(N-1)*(N-1)-1)=0;
6) x3=-ones((N-1)*(N-2),1);
7) A=(1/h^2)*(A+diag(x3,N-1)+diag(x3,1-N)+diag(x2,1)+diag(x2,-1));
end

11
Annexe 2
Fonction qui génère la matrice A

function [ b ] = Generate_b( N )
b=randn((N-1)^2,1);
end

12
Annexe 3
Fonction qui décompose la matrice A en L et U

function [L,U]=Decomp_A(A)

[m,n] = size(A);
for i = 1:m
L(i,1) = A(i,1);
U(i,i) = 1;
end
for j = 2:m
U(1,j)= A(1,j)/L(1,1);
end
for i = 2:m
for j = 2:i
L(i,j)=A(i,j)-L(i,1:j-1)*U(1:j-1,j);
end
for j = i+1:m
U(i,j)=(A(i,j)-L(i,1:i-1)*U(1:i-1,j))/L(i,i);
end
end
end

13
Annexe 4
Fonction qui détermine la valeur propres d’une matrice donnée ayant le plus grand module.

function [ lamda , b ] = PuissanceItterees( A , x0 , epsi )


x=x0;
lamda_ancien=1;
lamda=0;
while abs(lamda-lamda_ancien)>epsi
lamda_ancien=lamda;
b=x/abs(x);
x=A*b;
lamda=b'*x;
end
end

14
Annexe 5
Fonction qui détermine la valeur propres d’une matrice donnée ayant le plus petit module.

function [ lamda , b ] = PuissanceInverse( A , x0 , epsi )


x=x0;
lamda_ancien=1;
lamda=0;
[L,U]=Decomp_A(A);
while abs(lamda-lamda_ancien)>epsi
lamda_ancien=lamda;
b=x/abs(x);
x=(L*U)\b;
lamda=(x'*b)\1;
end
end

15

Vous aimerez peut-être aussi