• Aucun résultat trouvé

PC – Lycée René CASSIN Informatique – TP4 – le pivot de Gauss Durée : 1h

N/A
N/A
Protected

Academic year: 2022

Partager "PC – Lycée René CASSIN Informatique – TP4 – le pivot de Gauss Durée : 1h"

Copied!
1
0
0

Texte intégral

(1)

PC – Lycée René CASSIN Informatique – TP4 – le pivot de Gauss Durée : 1h

Nous n’allons pas perdre de temps à vous faire rechercher le pivot de Gauss… c’est le programme de première année. Vous devez savoir l’écrire. On peut vous le demander dans un sujet de concours.

I. Un code possible (ma traduction en Python de l’algorithme décrit sur Wikipedia)

def gauss(M): # M est une matrice nxm : liste de n listes de m nombres r = -1 # indice de la ligne du dernier pivot

n = len(M) # nombre de lignes de la matrice m = len(M[0]) # nombre de colonnes de la matrice for j in range(m):

pivot = 0 # remise du pivot à 0, si r ≥ n, le pivot restera nul k = r+1 # k est l'indice de ligne du pivot

for i in range(r+1,n): # choix du pivot (recherche du module maximum) if abs(M[i][j]) > abs(pivot):

pivot = M[i][j]

k = i

if pivot: # teste si le pivot est non nul r += 1

M[k],M[r]=M[r],M[k] # échange les lignes k et r

M[r] = [M[r][k]/pivot for k in range(0,m)] # divise la ligne r par pivot -> M[r][j] = 1 for i in range(0,n): # soustrait à la ligne i la ligne r multipliée par M[i][j]

if i != r: # de façon à annuler M[i][j] pour tout i différent de r M[i] = [M[i][k]-M[i][j]*M[r][k] for k in range(0,m)]

return M

La remise à 0 du pivot permet d’arrêter les opérations lorsque m > n.

Ce programme est améliorable (opérations inutiles sur les coefficients déjà à 0), mais la complexité reste du même ordre : O(n3) pour une matrice carrée (trois boucles imbriquées).

II. Applications

Utiliser la fonction Gauss pour traiter les questions suivantes.

1. Résolution de système linéaire

Résoudre le système � 𝑥𝑥+ 2𝑦𝑦 − 𝑧𝑧= 1 2𝑥𝑥+𝑦𝑦 = 3

−𝑥𝑥 −2𝑦𝑦+ 3𝑧𝑧= 4. 2. Inversion de matrice

Inverser la matrice �−1 2 5 1 2 3

−2 8 10�. 3. Calcul de rang

Déterminer le rang des matrices �1 2 3 1 1 3 1 6

2 1 2 −1� et �1 3 0 4 0 3 1 −2 2 6 0 8 �. 4. Calcul de déterminant

Modifier la fonction gauss pour écrire une fonction renvoyant le déterminant d’une matrice carrée M.

5. Pour les rapides : reprogrammer un calcul de déterminant avec un programme récursif qui développe par rapport à la première ligne. Comparer la complexité des deux programmes.

Références

Documents relatifs

‚ Recherche de la solution de l’équation homogène en annulant le second membre, et en exprimant les inconnues principales en fonction des inconnues secondaires, en remontant à

‚ Inconnues principales et secondaires d’un système échelonné (la définition générale d’inconnues principales et secondaires n’a pas été vue).. ‚ Recherche d’une

Écrire une fonction A, pivot,B prenant en paramètre une matrice échelonnée A, une liste pivot correspondant à la position des pivots (i.e. la position de colonne des premiers termes

Ecrire une fonction solution, qui prend en paramètre une matrice labyrinthe, représentée par une liste de listes, et recherche un chemin solution.. Cette fonction renverra

Je vais d’abord mettre L1’ au même coefficient

Pour appliquer la m´ ethode du pivot ` a un syst` eme, on commence donc par y choisir une ´ equation et une inconnue qu’on va rendre faciles en modifiant les autres ´ equations.. La

Pour appliquer la m´ ethode du pivot ` a un syst` eme, on commence donc par y choisir une ´ equation et une inconnue qu’on va rendre faciles en modifiant les autres ´ equations.. La

´ Ecrire un programme permettant ` a un utilisateur de saisir une matrice carr´ee et un vecteur de la taille de cette matrice.. L’utilisateur devra dans un premier temps dire la