TP1: R Esolution Num Erique Des Syst' Emes Lin Eaires: M Ethodes Directes Exercice 1
TP1: R Esolution Num Erique Des Syst' Emes Lin Eaires: M Ethodes Directes Exercice 1
TP1: R Esolution Num Erique Des Syst' Emes Lin Eaires: M Ethodes Directes Exercice 1
Objet : Le but de ce TP est de programmer en langage python les méthodes directes et itératives vu dans le
cours pour la résolution numérique des systèmes linéaires.
Méthodes directes
Exercice 1.
Programmer la méthode de remontée pour résoudre le système Ax = b avec A une matrice triangulaire supérieure
(Nom de la fonction : remontee U).
Cette fonction renverra un message d’erreur lorsque la résolution ne peut pas être effectuée.
De la même façon, programmer la méthode de descente pour résoudre Ax = b, A une matrice triangulaire
inférieure (Nom de la fonction :descente L).
Tester ces deux fonctions sur des exemples : vous pourrez comparer vos résultats à ceux de python.
Exercice 2.
Programmer la factorisation LU d’une matrice fact LU.
En utilisant les fonctions remontee U/descente L précédentes et fact LU, programmer la méthode LU complète
pour la résolution d’un système linéaire.
A nouveau, vous donnerez des exemples et vous comparerez avec les fonctions de python.
Programmer la factorisation PLU d’une matrice fact PLU.
En utilisant les fonctions remontee U/descente L précédentes et fact PLU, programmer la méthode PLU
complète pour la résolution d’un système linéaire.
A nouveau, vous donnerez des exemples et vous comparerez avec les fonctions de python.
Exercice 3.
Programmer la factorisation de Cholesky d’une matrice fact Cholesky.
En utilisant les fonctions remontee U/descente L de la partie 1 et fact Cholesky, programmer la méthode de
Cholesky complète pour la résolution d’un système linéaire.
Tester cette fonction et la comparer avec les fonctions python prédéfinies.
Méthodes itératives
On rappelle que les méthodes itératives reposent sur le principe suivant :
pour résoudre le système Ax = b, A matrice inversible et b vecteur donnés, on suppose que l’on a décomposé la
matrice A en M − N , avec M inversible.
Ainsi, pour u0 vecteur initial (choisi arbitrairement), on définit une suite de vecteurs xk par :
xk+1 = M −1 N xk + M −1 b.
On effectue ce calcul jusqu’à k0 tel que xk0 ≈ xk0 +1 (cette relation est précisée plus loin). La solution est alors
donnée par le dernier vecteur calculé.
Méthodes Numériques pour
Ingénieur 2 Année : 2024-2025
Exercice 4.
Programmer cet algorithme dans une fonction : def Resol Iter(M, N, b, x0 , eps) : où :
• M , N et b sont les matrices et vecteur décrits ci-dessus,
• x0 est le vecteur initial,
• eps est la précision voulue pour la résolution, c’est-à-dire que l’on arrêtera l’algorithme lorsque kxk+1 −
xk k ≤ eps. On renvoie N iter, nombre d’itérations qui ont été effectuées pour atteindre cette précision,
• on renvoie également x, solution (approchée) du problème.
Exercice 5.
La méthode de Jacobi consiste à choisir M diagonale, dont la diagonale est égale à la diagonale de A, et
N = M − A.
Programmer une fonction def Jacobi(A) qui renvoie la décomposition de Jacobi de la matrice A.
Programmer une fonction def Gauss − Seidel(A) qui renvoie la décomposition de Gauss-Seidel de la matrice A.
Programmer une fonction def SOR(A, w) qui renvoie la décomposition de la méthode SOR de la matrice A.
En utilisant les fonctions précédentes, écrire un programme qui, pour une matrice A, un vecteur b et une précision
eps donnés, calcule la solution du système Ax = b par les trois méthodes itératives, solution approchée à eps
près.
Tester et comparer les trois méthodes sur le système Ax = b, A matrice carrée d’ordre 4 à diagonale strictement
dominante.