RESOLUTION DE SYSTEMES LINEAIRES : METHODE DU PIVOT DE GAUSS : But

RESOLUTION DE SYSTEMES LINEAIRES :
METHODE DU PIVOT DE GAUSS
But : Mettre en place la résolution d’un système linéaire par la méthode du pivot de Gauss (ou
Gauss-Jordan). Nous nous contenterons de résoudre des systèmes admettant une unique
solution. (de tels systèmes sont appelés systèmes de Cramer, mais ce mot est hors-programme)
PREMIERE PARTIE : RESOLUTION A LA MAIN
1) On considère le système (S1) suivant :
x1 – 2x2x3 = –1
2 x1 + x2 + x3= –4
4 x1 + 2 x2 – 5 x3 = –8
a) Résoudre ce système en utilisant la méthode du pivot de Gauss en notant soigneusement les
opérations élémentaires utilisées.
b) Si on pose X =
x1
x2
x3
, le système(S1) est équivalent à AX = B avec : A = et B =
c) Les opérations élémentaires ont en fait été effectuées sur la matrice M1 appelée ……………………
M1 =
2) On considère le système (S2) suivant :
2x + yz + t = 12
8x +4 y + 2z – 3t = 27
–6xy + 5z + 4t = –17
2x + 5y + 2zt = 2
a) La matrice M2 correspondant à ce système est :
M2 =
b) Résoudre ce système en utilisant la méthode du pivot de Gauss en notant soigneusement
les opérations élémentaires utilisées.
c) Dans quels cas a-t-on eu besoin de permuter des lignes ?
3) a) Quelles sont les deux grandes étapes de ces résolutions de système ?
b) Quelles opérations élémentaires ont été utilisées dans ces deux grandes étapes ?
DEUXIEME PARTIE : RAPPELS SUR L’UTILISATION DES LISTES 2D
En Python, une matrice est simplement une liste de liste. Par exemple, la matrice :
N =
4 3 -1 5
-8 4 5 6
1 6 -3 5 sera codé : N = [ [4 , 3 , –1 , 5] , [–8 , 4 , 5 , 6] , [1 , 6 ,3 , 5]]
Sans utiliser votre ordinateur, écrire les réponses renvoiées dans la console pour les requêtes
suivantes :
>>>> N[2][1] ……………………………………………………………………………………………………………
>>>> N[0] ……………………………………………………………………………………………………………
>>>> N ……………………………………………………………………………………………………………
>>>> len(N) …………………………………………………………………………………………………………….
Comment récupérer le nombre de colonnes de la matrice ? …………………………………………………..
>>>> [0] × len(N) …………………………………………………………………………………………………………….
On définit la fonction affiche ainsi : On obtient l’affichage suivant sur la console
def affiche(matrice): >>>>affiche(N) …………………………….
nbLignes=len(matrice) …………………………….
for i in range(nbLignes): …………………………….
print(matrice[i])
TROISIEME PARTIE : MISE EN PLACE DE L’ALGORITHME DU PIVOT DE GAUSS
I. CAS DUN SYSTEME TRIANGULAIRE
1) On considère un système triangulaire : Ecrire la matrice augmentée M
(avec les coefficients M =
diagonaux non nuls)
On a alors :
xn = ……… xn–1 = …………………………………. xn–2 = ………………………………………………………
De manière générale, pour , xi = ………………………………………………..……………………
2) a) Compléter la fonction suivante qui prend en argument une matrice M qui en pratique
correspondra à un système triangulaire, et qui renvoie le vecteur X solution de ce
système :
def remonter (M) :
nbLignes=………………………
X=………………………………………… on crée un vecteur ligne X de la bonne taille ne contenant que des zéros
X[nbLignes-1]= ………………………
for i in range (nbLignes–2, ………… , …………) : i désignera un numéro de LIGNE
X[i]= ………………………
for j in range (………………………………) : jsignera un numéro de COLONNE
X[i] =………………………
X[i]=X[i]/M[i][i]
return(……)
b) Créer un programme nommé Gauss_VotreNom et y écrire cette fonction.
Tester votre programme avec le système (S3) suivant dont l’unique solution est (1 ; –1 ; 2 ; 4)
3x1x2 + 2 x3x4 = 4
x2+ x3 – 5 x4= –19
–2 x3x4= –8
x4 = 4
(on notera M3 la matrice augmentée associée)
II. TRIANGULARISATION DU SYSTEME
1) LES OPERATIONS ELEMENTAIRES
a) Dans la première partie, pour « triangulariser » le système, on a utilisé deux types
d’opération élémentaires : les transpositions (échanges de lignes) et les transvections.
b) Compléter l’en-tête (variable) de deux fonctions correspondantes. (Attention : Ces
fonctions ne renvoient rien mais modifient la matrice M)
def transposition(…………………………………………….)
def transvection(…………………………………………….)
c) Ecrire dans votre programme le corps des deux fonctions dont vous avez écrit l’en-tête
Vous testerez évidemment vos fonctions, avec la matrice M3 par exemple.
2) TRIANGULARISATION SANS ECHANGE
a) On suppose pour l’instant que pour le système que l’on cherche à résoudre, aucune
permutation de ligne n’est nécessaire pour triangulariser le système.
Dans le même programme, écrire une fonction triangulariserSansEchange qui prend en
paramètre une matrice M correspondant à un système, et qui la transforme en une
matrice correspondant à un système triangulaire équivalent.
Tester votre fonction avec le système (S1) de la première partie.
b) SANS UTILISER L’ORDINATEUR, dire ce qui va se passer si vous testez votre fonction
avec le système (S2) de la première partie ?
…………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………
3) TRIANGULARISATION AVEC ECHANGE
a) Écrire une fonction lignePivot(M , c) qui recherche un pivot non nul dans la matrice M sur
la colonne d’indice c.
Cette fonction doit renvoyer le numéro de la ligne du premier pivot non nul. Il s’agit donc
de renvoyer le premier numéro de ligne supérieur ou égal au numéro de la colonne tel
que M[numLigne][numColonne] 0.
Ex : Si M =
4 3 -1 5
0 0 5 6
0 6 -3 5
0 7 5 -2
lignePivot (M,1) doit renvoyer ………
b) Ecrire une fonction triangulariser qui prend en paramètre une matrice M correspondant
à un système, et qui la transforme en une matrice correspondant à un système
triangulaire équivalent. Cette fonction doit gérer les cas des échanges sont
nécessaires.
III. RESOLUTION DU SYSTEME
Ecrire une fonction pivotGauss qui prend en argument une matrice M correspondant à un
système dit « de Cramer » et qui renvoie l’unique vecteur X solution de ce système.
Tester votre fonction avec les deux systèmes (S1) et (S2) de la première partie et vérifier
que vous retrouvez bien les mêmes solutions qu’à la main.
IV. APPLICATION : RESEAU EN ELECTROCINETIQUE
On considère le circuit suivant où les trois lois
des mailles et deux lois des nœuds s’écrivent :
E = R1 i1 +R2 i2
R2 i2 = R3 i3 +R4 i4
R4 i4 = R5 i5 +R6 i5
i1 = i2 +i3
i3 = i4 +i5
Les valeurs des paramètres E et R sont respectivement :
E = 5V, R1 = 100 , R2 = R3 = 220 , et R4 = R5 = R6 = 100 .
Déterminer la valeur des cinq courants.
QUATRIEME PARTIE : CHOIX DU PIVOT
1) Tester votre fonction pivotGauss sur le système (S4) suivant :
10–17x + y = 1
x + y = 2
On obtient …………………………………………………………………………………………………………………….
Le résultat obtenu est-il bien solution du système ? ................................................................................
Tachons de comprendre ce résultat surprenant :
2) Considérons le système (S4) :
10–4x + y = 1
x + y = 2
a) Résoudre ce système de manière exacte (à la main) en suivant l’algorithme
programmé dans le III.
b) On considère dans cette question que les calculs se font avec 4 chiffres significatifs
(les suivants étant tronqués). Exécuter de nouveau à la main les étapes de
l’algorithme avec cette nouvelle information. Que constatez-vous ?
3) Considérons le système équivalent à (S4) suivant :
x + y = 2
10–4x + y = 1
a) Avec la même précision qu’au 2)b), exécuter de nouveau à la main les étapes de
l’algorithme sur ce nouveau système.
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !