Applications du pivot de Gauss
Vous avez étudié ou allez étudier en informatique l’algorithme du pivot de Gauss. Vous en trouverez une
implémentation en annexe. On se propose dans ce problème de l’utiliser pour effectuer les divers calculs
d’algèbre linéaire vus en maths.
On a fait le choix de ne pas utiliser la bibliothèque « numpy » afin de mieux voir et comprendre les
opérations effectuées. Une matrice sera représentée par un tableau (de type « list list » ). Par exemple la
matrice 123
456!sera obtenue par [[1,2,3], [4,5,6]].
La fonction gauss calcule la réduite de Gauss en lignes d’une matrice. Pour calculer la réduite en colonnes,
utilisez la fonction gaussCol.
On trouvera également une fonction afficheMatrice pour afficher une matrice de manière un peu plus
lisible.
Enfin, on rappelle qu’en Python les tableaux sont indicés à partir de 0. Ainsi, pour tout (n, p)∈(N∗)2,
M∈ Mn,p(K),i∈J1, nK, et j∈J1, pK, la case i, j de Msera obtenue par M[i-1][j-1].
1 Complexité
Calculons la complexité du pivot de Gauss. On va compter le nombre de multiplications. Pour simplifier,
on étudiera une matrice carrée et inversible.
Soit n∈Net A∈GLn(K).
1. Complexité des opérations élémentaires sur les lignes : Soit k∈Ket (i1,i2)∈J0, n −1K2. Combien de
multiplications sont effectuées lors de l’appel de
echangeLigne(A,i1, i2), de multiplieLigne(A,i1, k), et de
transvection(A,i1,i2,k) ?
2. Soit (i0,j0)∈J0, n −1K2. En déduire le nombre de multiplications effectuées lors de l’appel de
annuleColonne(A,i0,j0).
3. Sachant que Aest inversible, combien de pivots trouvera-t-on pendant l’application de l’algorithme du
pivot de Gauss ? Comment cela se traduit-il dans le programme principal ?
4. En déduire le nombre de multiplications pour effectuer gauss(A).
2 Applications directes de l’algorithme
On demande dans cette partie d’utiliser les fonctions Python fournies sur divers exemples. Vous ne
devez effectuer aucun calcul à la main. Á chaque fois, donnez la commande utilisée, le résultat renvoyé par
l’ordinateur, et l’interprétation que vous en faites.
2.1 Résolution de systèmes d’équations
Résoudre les systèmes suivants.
(A) :
x+y+z= 1
x−y−2z= 2
2x+ 3y−7z= 6
(B) :
x+y+z= 1
x−y−2z= 2
x+ 3y+ 4z= 6
(C) :
x+y+z= 1
x−y−2z= 2
x+ 3y+ 4z= 0
.
Indication : Utiliser la matrice augmentée.
1