Université De Tunis Institut Préparatoire aux Etudes d'Ingénieurs de Tunis Simulation Numérique Résolution d'un système d'équations linéaires : Méthode de PIVOT de Gauss Dans ce problème on s'intéresse à la méthode de Pivot de Gauss pour résoudre un système d'équations linéaires AX=B où A est une matrice inversible d'ordre N, X est le vecteur solution et B est le vecteur second membre) La méthode de Pivot de Gauss repose sur deux principes simples: Le système linéaire reste invariant pour les trois opérations élémentaires à savoir : la permutation de lignes, la multiplication d'une ligne par une constante et l'addition d'une ligne à une autre Si la matrice A est triangulaire supérieure, alors la résolution du système linéaire AX=B est très simple Ainsi, la méthode de Pivot de Gauss, se base sur la transformation de la matrice A en une matrice triangulaire supérieure à l’aide d’opérations élémentaires. Pour cela, il suffit pour chaque ligne i de: 1. Fixer le pivot aii ≠ 0. Si le pivot d'une ligne i est nul on cherche dans les lignes suivantes le premier élément non nul dans la même colonne (colonne i) et on fait une permutation des lignes du système linéaire. 2. Soustraire des lignes j suivantes (j>i) la ième ligne de A et de B multipliée par la quantité (aji/aii). Avec aji les coefficients des différentes lignes se trouvant sur la même colonne du pivot. Lj=Lj-m*Li avec Lj la jème ligne, Li m la ième ligne et m= aji/aii En fixant le pivot a00 , la matrice A et le vecteur B prennent alors la forme suivante: A(1) = a00 a01 ... a0n-1 0 a11(1) ... a1n-1(1) .... ... ... ... 0 an-12(1) ... an-1n-1(1) b(1) = avec (1) 𝑎 𝑎𝑖𝑗 = 𝑎𝑖𝑗 − 𝑎 𝑖0 𝑎0𝑗 00 SM/SP-2016/2017 𝑎𝑣𝑒𝑐 𝑖 ≥ 1 𝑗 ≥ 0 -1- b0 b1(1) . bn-1(1) (1) 𝑏𝑖 = 𝑏𝑖 − 𝑎𝑖0 𝑏 𝑎00 0 𝑎𝑣𝑒𝑐 𝑖 ≥ 1 Exemple: les différentes étapes de transformation du système linéaire 𝑥0 1 2 2 2 (1 3 −2) (𝑥1 ) = (−1) 𝑥2 3 5 8 8 𝑎10 𝐿1 = 𝐿1 − 𝑎 𝐿0 00 𝑎21 𝐿2 = 𝐿2 − 𝑎 𝐿1 11 𝑥0 1 2 2 2 (0 1 −4) (𝑥1 ) = (−3) 𝑥2 0 −1 2 2 1 (0 0 𝑥0 2 2 2 1 −4) (𝑥1 ) = (−3) 0 −2 𝑥2 −1 Après transformation de la matrice A en une matrice triangulaire supérieure, la solution est obtenue par simple substitution : 𝑏𝑁−1 𝑥𝑁−1 = 𝑎𝑁−1𝑁−1 𝑥𝑖 = 𝑏𝑖 − ∑𝑁−1 𝑗=𝑖+1 𝑎𝑖𝑗 𝑥𝑗 i=N-2…..0 Travail demandé 1. Ecrire une fonction PYTHON Recherche_Pivot (A,i) qui permet retourner le plus petit indice ligne j (j>i) tel que aji≠0. 2. Ecrire une fonction PYTHON Permut_ligne_Mat(A,i,j) qui permet de permuter deux lignes d'indices i et j dans une matrice A. 3. Ecrire une fonction PYTHON Permut_ligne_Vect(B,i,j) qui permet de permuter deux lignes d'indices i et j dans un vecteur B. 4. Ecrire une fonction PYTHON Transformation (A,B,i) qui permet d'apporter des modifications sur les lignes j (j>i) de la matrice A en soustrayant de la ligne j la ligne i multipliée par le coefficient aji/aii. 5. Ecrire une fonction PYTHON Pivot(A,B) qui permet d'apporter les modifications nécessaires sur le système linéaire AX=B pour transformer la matrice A en une matrice triangulaire supérieure. 6. Ecrire une fonction PYTHON ResolTsup(A,B) permettant de retourner le vecteur X, résultat de résolution du système triangulaire supérieur A.X=B en utilisant les formules définies précédemment. 7. Ecrire une fonction PYTHON ResolPivot(A,B) qui permet à partir une matrice inversible A d'ordre N et un vecteur B de résoudre le système d'équations linéaires A.X =B par la méthode de Pivot de Gauss 8. La fonction time() du module time permet de donner le temps à un instant t en fonction du nombre de secondes écoulées depuis une date précise. Utiliser cette fonction pour comparer le temps d'exécution de la méthode de Pivot de Gauss avec celui de la méthode de CROUT étudiée lors de la dernière séance. SM/SP-2016/2017 -2-