Vous êtes sur la page 1sur 3

Travaux Pratiques (TP) : Algèbre Linéaire Numérique

TP Numéro 1

Le but de ce TP est d'implémenter les méthodes directes pour la résolution des systèmes linéaires Ax = b
où A est une matrice réelle carrée d'ordre n triangulaire supérieur et b est un vecteur de dimension n ;
n ∈ N∗ . Notamment les algorithmes que nous avons vus dans le cours : méthode des matrices triangulaires
(supérieurs et inférieurs), décompositions LU, factorisation de Cholesky et la méthode QR.

Créer un dossier TP1 dans lequel on créera 5 sous dossiers TP1Exe1, TP1Exe2, TP1Exe3, TP1Exe4 et
TP1Exe5 dans lequel on écrira les chiers de chaque exercice du TP numéro 1.

D'autres consignes et précisions seront données pendant la séance de TP.

Exercice 1 : L'objectif de cet exercice est d'implémenter l'algorithme de la méthode directe "Matrices
Triangulaires Supérieurs" pour la résolution d'un système linéaire.

1. Écrire une fonction TriangSup() prenant comme arguments A et b, qui résout un système linéaire
Ax = b. La fonction doit retourner le vecteur x.
2. Évaluer cette fonction pour
   
2 1 −1 2
A = 0 3 2 et b = 3.
0 0 1 1
3. Python contient un module nommé random qui contient des fonctions de génération de nombres
aléatoires. Renseignez-vous sur random et sur la fonction randint en exécutant les commandes
help(random) et help(random.randint) [Facultatif ].
4. Évaluer la fonction TriangSup() pour A une matrice carrée d'ordre n triangulaire supérieure
à coecients réels aléatoires entre 1 et 10, et b un vecteur de dimension n à coecients réels
aléatoires entre 3 et 7. Pour cette évaluation, nous prenons n = 4 et n = 6 [Facultatif ].

Exercice 2 : L'objectif de cet exercice est d'implémenter l'algorithme de la méthode directe "Matrices
Triangulaires Inférieur" pour la résolution d'un système linéaire.

1. Écrire une fonction TriangInf() prenant comme arguments A et b, qui résout un système linéaire
Ax = b. La fonction doit retourner le vecteur x.
2. Évaluer cette fonction pour
   
2 0 0 4
A= 1 3 0 et b = 7.
−1 2 1 3
3. Évaluer la fonction TriangInf() pour A une matrice carrée d'ordre n triangulaire inférieur à
coecients réels aléatoires entre 1 et 10, et b un vecteur de dimension n à coecients réels

Dr. M. Elghandouri 1 Année Universitaire 2023/2024


aléatoires entre 3 et 7. Pour cette évaluation, nous prenons n = 4 et n = 6 [Facultatif ].

Exercice 3 : L'objectif de cet exercice est d'implémenter l'algorithme de la méthode directe "Décom-
position LU" pour la résolution d'un système linéaire.

1. Écrire une fonction DecomposeLU() prenant comme arguments A, qui donne la décomposition
LU de la matrice A. La fonction doit retourner deux matrices L triangulaire inférieure et U
triangulaire supérieur telle que A = LU .
2. Vérier votre fonction pour
 
1 2 3
A = 4 5 6 .
7 8 10
Voir le chapitre 2 du cours pour comparer les résultats.
3. A l'aide des fonctions TriangSup() et TriSupInf(), écrire une fonction SolvDecomposeLU()
prenant comme arguments A et b, qui résout un système linéaire Ax = b. La fonction doit
retourner le vecteur x.
4. Tester votre programme sur le système de l'exercice 3 dans la partie 2 du TD :
x + 3x2 + x3 = 1

 1

−x1 + x2 + x3 = 5 (1)


2x1 + 2x2 + 4x3 = 6

Exercice 4 : L'objectif de cet exercice est d'implémenter l'algorithme de la méthode directe "Factori-
sation de Cholesky" pour la résolution d'un système linéaire.

1. Écrire une fonction FactCholesky() prenant comme argument une matrice A, qui donne la
factorisation de Cholesky de la matrice A. La fonction doit retourner une matrice L triangulaire
inférieure telle que A = LLT .
2. Veuillez vérier votre fonction avec les matrices suivantes :
 
1 1 1 1  
1 2 1 1
5 5 5
A1 = 
1
 et A2 = −11 7 5 .
5 14 14
1 5 −3
1 5 14 15
Qu'observez-vous ?
3. A l'aide des fonctions TriangSup() et TriSupInf(), écrire une fonction SolvCholesky() prenant
comme arguments A et b, qui résout un système linéaire Ax = b. La fonction doit retourner le
vecteur x.
4. Tester votre programme sur le système de l'exercice 2 dans la partie 3 du TD :
2x1 − x2 = 4



−x1 + 2x2 − x3 = −3 (2)


−x2 + 2x3 = 2

Exercice 5 : L'objectif de cet exercice est d'implémenter l'algorithme de la méthode directe "Décom-
position QR" pour la résolution d'un système linéaire.

1. Écrire une fonction Householder() prenant comme argument un vecteur v qui donne la matrice
de Householder correspondant au vecteur v . Tester votre fonction sur v = (12, 6, −4)T . Voir le
chapitre 2 du cours pour comparer les résultats.
2. À l'aide de la fonction Householder(), écrire une fonction DecomposeQR() prenant comme argu-

Dr. M. Elghandouri 2 Année Universitaire 2023/2024


ment une matrice A, qui donne la décomposition QR de la matrice A. La fonction doit retourner
une matrice orthogonale Q et une matrice triangulaire supérieure R telles que A = QR. Vérier
cette fonction pour la matrice suivante :
 
12 −51 4
A= 6 167 −68.
−4 24 −41
Voir le chapitre 2 du cours pour comparer les résultats. Qu'observez-vous ?
3. À l'aide de la fonction TriangSup(), écrire une fonction SolvDecomposeQR() prenant comme
arguments A et b, qui résout un système linéaire Ax = b. La fonction doit retourner le vecteur x.
4. Tester votre programme sur le système de l'exercice 3 dans la partie 3 du TD :

x − x2 + 2x3 = 1

 1

−x1 + x2 = 2 (3)


−2x2 + x3 = −2

Dr. M. Elghandouri 3 Année Universitaire 2023/2024

Vous aimerez peut-être aussi