Simulation Numérique Résolution d`un système d

publicité
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-
Téléchargement