Algorithmes du pivot de Gauss. Applications

Documents pareils
Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Résolution de systèmes linéaires par des méthodes directes

Cours 02 : Problème général de la programmation linéaire

Cours d analyse numérique SMI-S4

Chapitre 2. Matrices

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

NOTATIONS PRÉLIMINAIRES

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Programmation linéaire

Structures algébriques

Polynômes à plusieurs variables. Résultant

Problème 1 : applications du plan affine

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Programmation linéaire et Optimisation. Didier Smets

Compter à Babylone. L écriture des nombres

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Programmation linéaire

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Résolution d équations non linéaires

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Simulation de variables aléatoires

Limites finies en un point

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Calcul différentiel sur R n Première partie

Correction de l examen de la première session

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Fonctions de plusieurs variables

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Le produit semi-direct

Déterminants. Marc SAGE 9 août Inverses et polynômes 3

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Exercices Corrigés Premières notions sur les espaces vectoriels

Le théorème de Thalès et sa réciproque

Équations d amorçage d intégrales premières formelles

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Triangle de Pascal dans Z/pZ avec p premier

Cours d Analyse. Fonctions de plusieurs variables

Chapitre 2 : Vecteurs

Cryptographie et fonctions à sens unique

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

3 Approximation de solutions d équations

La classification automatique de données quantitatives

Représentation géométrique d un nombre complexe

Raisonnement par récurrence Suites numériques

Développement décimal d un réel

Géométrie dans l espace Produit scalaire et équations

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

avec des nombres entiers

Capes Première épreuve

Cours Informatique Master STEP

Programmes des classes préparatoires aux Grandes Ecoles

Mathématiques appliquées à l'économie et à la Gestion

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

IV- Equations, inéquations dans R, Systèmes d équations

Manipulateurs Pleinement Parallèles

Coefficients binomiaux

Angles orientés et trigonométrie

3. Conditionnement P (B)

Construction de l'intégrale de Lebesgue

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Dérivées d ordres supérieurs. Application à l étude d extrema.

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Chapitre 5 : Flot maximal dans un graphe

Fonctions homographiques

1 Complément sur la projection du nuage des individus

Comment démontrer des formules sans effort? exposé de maîtrise

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Plus courts chemins, programmation dynamique

Carl-Louis-Ferdinand von Lindemann ( )

Chapitre 1 : Évolution COURS

Programmation Linéaire - Cours 1

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Vers l'ordinateur quantique

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Cours de Probabilités et de Statistique

Cours 7 : Utilisation de modules sous python

Moments des variables aléatoires réelles

Théorie et codage de l information

Correction du baccalauréat S Liban juin 2007

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

La (les) mesure(s) GPS

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Représentation d un entier en base b

La valeur présente (ou actuelle) d une annuité, si elle est constante, est donc aussi calculable par cette fonction : VA = A [(1-1/(1+k) T )/k]

Optimisation Discrète

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Transcription:

14 Algorithmes du pivot de Gauss Applications On utilise les dénitions et notations du chapitre 13 On se reportera au paragraphe 131 pour les dénitions d'opérations élémentaires, de matrices de transvection, de dilatation, de permutation 141 Matrices échelonnées Soit A = ((a ij )) 1 i n M n,m (K) 1 j m Si A est non nulle, on dénit alors pour tout entier i compris entre 1 et n tel que la ligne numéro i de A soit non nulle l'entier d i comme le plus petit entier j compris entre 1 et m tel que a ij 0, soit : d i = inf {j {1,, m} a ij 0} Dénition 141 On dit qu'une matrice A M n,m (K) est échelonnée en ligne si elle est nulle ou si elle est non nulle et il existe un entier r compris entre 1 et n tel que : i {1,, r}, L i 0 ; i {r + 1,, n}, L i = 0 ; 1 d 1 < d 2 < < d r m On dit qu'une matrice A M n,m (K) est échelonnée en colonne si la matrice t A M n,m (K) est échelonnée en ligne Le cas où r = n correspond à une matrice ayant toutes ses lignes non nulles et de la forme : 0 0 a 1d1 a 1m 0 0 a 2d2 a 2m A = 0 0 a ndn a nm avec a idi 0 pour tout i compris entre 1 et n Pour r = n = m (cas d'une matrice carrée), on a nécessairement d i = i pour i compris entre 1 et n et la matrice A est triangulaire supérieure à diagonale non nulle, donc inversible 347

348 Algorithmes du pivot de Gauss Applications Pour 1 r n 1, une matrice échelonnée est de la forme : 0 0 a 1d1 a 1m 0 0 a 2d2 a 2m A = 0 0 a rdr a rm 0 0 0 0 Les coecients a idi, pour i compris entre 1 et r, sont les pivots de la matrice échelonnée A Théorème 141 Avec les notations de la dénition précédente, une matrice non nulle échelonnée en ligne [resp en colonne] A est de rang r (le nombre de lignes [resp de colonnes] non nulles) Démonstration On rappelle que, pour A M n,m (K) non nulle, on a 1 rg (A) min (n, m) Comme : a 1d1 a 1d2 a 1dr 0 a 2d2 a 2dr det 0 0 r = a idi 0 i=1 0 0 0 a rdr on a rg (A) r Pour r = n, on a nécessairement rg (A) = n = r puisque rg (A) n Pour 1 r n 1, on a rg (A) r puisque les lignes r + 1 à n de A sont nulles et là encore rg (A) = r Et comme rg (A) = rg ( t A), on a le résultat pour les matrices échelonnées en colonnes Dénition 142 On dit qu'un système linéaire Ax = b est échelonné si la matrice A est échelonnée en lignes 142 Résolution des systèmes linéaires par la méthode des pivots de Gauss Nous allons voir ici que toute matrice A M n,m (K) peut être transformée en une matrice échelonnée par une suite d'opérations élémentaires Cette transformation peut être utilisée pour résoudre des systèmes linéaires ou pour inverser des matrices carrées (qui sont inversibles) Tout est basé sur les résultats suivants Lemme 141 Soit A = ((a ij )) 1 i n M n,m (K) Il existe une matrice P GL n (K) produit 1 j m de matrices de permutation et de transvection telle que : P A = 11 12 1m 0 22 2m 0 n2 nm

Résolution des systèmes linéaires par la méthode des pivots de Gauss 349 Démonstration Si la première colonne de A est nulle, la matrice A a déjà la forme souhaitée et P = I n convient Sinon, il existe un indice i compris entre 1 et m tel que a i1 0 Si i 2, on permute alors la ligne 1 avec la ligne i, ce qui revient à multiplier à gauche la matrice A par la matrice de permutation P 1i, sinon on ne fait rien Dans tous les cas, on s'est ramené à une matrice de coecient 11 0 et en eectuant les opérations élémentaires : L i L i a(1) i1 11 L 1 (2 i n) ce qui revient à multiplier à gauche la matrice par les matrices de transvection : ( ) T i = T i1 a(1) i1 (2 i n) 11 on obtient la matrice : A (1) = P A = 11 12 1m 0 22 2m 0 n2 nm où P = T n T 2 P 1 avec P 1 = I n ou une matrice de permutation et, pour i compris entre 2 et n, T i = I n ou une matrice de transvection de paramètre non nul Remarque 141 Pour 11 0, on a rg (A) = 1 + rg ( B (1)), en notant : B (1) = Remarque 142 La matrice 22 2m n2 nm n T i est de la forme : i=2 ( ) n T i1 a(1) i1 = i=2 11 Une telle matrice est dite de Frobenius M n 1,m 1 (K) 1 0 0 λ 21 1 0 0 λ n 1,1 0 1 0 λ n1 0 0 1 Dénition 143 On appelle matrice de Frobenius une matrice carrée d'ordre n qui ne dière de l'identité que par une colonne (ou une ligne) Théorème 142 Soit A = ((a ij )) 1 i n M n,m (K) Il existe une matrice P GL n (K) 1 j m produit de matrices de permutation et de transvection telle que la matrice P A soit échelonnée en ligne

350 Algorithmes du pivot de Gauss Applications Démonstration En reprenant les notations de la remarque précédente, on applique le lemme à la matrice B (1) De proche en proche, on aboutit à une matrice P A échelonnée en ligne Remarque 143 En appliquant le théorème à la matrice t A M m,n (K), on déduit l'existence de P GL n (K) produit de matrices de permutation et de transvection telle que la matrice P t A soit échelonnée en ligne La matrice t (P t A) = A t P est alors échelonnée en colonne, la matrice Q GL n (K) étant un produit de matrices de permutation et de transvection Remarque 144 En utilisant des matrices de dilatation, on peut se ramener, pour A 0, à une matrice échelonnée de pivots tous égaux à 1 Remarque 145 Pour n = m, la matrice P A est équivalente à la matrice A mais pas semblable (sauf si P = I n ) Le théorème précédent nous donne un algorithme de résolution d'un système linéaire de n équations à m inconnues C'est la méthode des pivots de Gauss Cette méthode nous donne aussi un moyen de calculer le rang de la matrice A, c'est le rang de la matrice échelonnée P A Précisément, pour A = ((a ij )) 1 i n M n,m (K) et b K n, on s'intéresse aux solutions dans 1 j m K du système linéaire de n équations à m inconnues : m a ij x j = b i (1 i n) (141) j=1 qui peut aussi s'écrire sous forme matricielle, Ax = b Dans le cas où le second membre b est nul, on dit que le système est homogène On appelle solution du système (141) tout vecteur x = (x i ) 1 i m K m qui vérie (141) On dit qu'un système linéaire est compatible si l'ensemble de ses solutions est non vide Remarque 146 Un système homogène est toujours compatible puisque le vecteur nul est solution Remarque 147 Dans le cas où la matrice A est carrée et inversible, on dit que le système linéaire Ax = b est de Cramer Il a alors une unique solution On dit que deux systèmes linéaires Ax = b et A x = b sont équivalents s'ils ont même ensemble de solutions En désignant par u l'application linéaire de K m dans K n ayant A pour matrice dans les bases canoniques, on peut remarquer que l'ensemble des solutions du système homogène associé à (141) est le noyau de u et le système (141) est compatible si, et seulement si, b est dans l'image de u Si le système (141) est compatible et si x 0 en est une solution particulière, alors pour tout autre solution x, le vecteur x x 0 est dans le noyau de u L'ensemble des solutions de (141) est donc, dans ce cas, x 0 + ker (u), c'est-à-dire le sous-espace ane de K m de dimension n rg (A) dirigé par ker (u) et passant par x 0 On déduit donc, dans le cas où le système (141) est compatible, que l'ensemble des solutions est soit réduit à un point (cas où ker (u) = {0}), soit inni (cas où ker (u) {0})

Résolution des systèmes linéaires par la méthode des pivots de Gauss 351 On peut également donner l'interprétation vectorielle suivante du système (141) : ( ) p ( x K m Ax = b) x K m x j C j = b Dans le cas où le système est compatible, le vecteur b est dans l'espace vectoriel engendré par les vecteurs colonnes C j et tout revient à déterminer toutes les écritures possibles de b comme combinaison linéaire des C j Le système homogène associé Ax = 0 possède d'autres solutions que la solution nulle si, et seulement si, le système (C 1,, C m ) est lié dans K n On appelle opération élémentaire sur le système (141) toute opération élémentaire sur les lignes ou les colonnes de la matrice (A, b) M n,m+1 (K) Théorème 143 Une opération élémentaire sur les lignes d'un système linéaire Ax = b le transforme en un système équivalent Démonstration Une opération élémentaire sur les lignes du système linéaire Ax = b revient à multiplier à gauche les matrices A et b par une même matrice inversible P GL n (K) et l'équation Ax = b est équivalente à P Ax = P b Dans ce qui suit on considère le système linéaire de n équations à m inconnues : j=1 a 11 x 1 + + a 1m x m = b 1 (142) a n1 x 1 + + a nm x m = b n et on note, pour tout i compris entre 1 et n, L i = (a i1,, a im, b i ) la ligne numéro i de ce système On suppose que la matrice A n'est pas la matrice nulle (sinon l'ensemble des solutions du système (142) est K m ) Si les premières colonne C 1,, C d1 de la matrice A sont nulles, les variable x 1,, x d1 peuvent être quelconques et on passe à la colonne d 1 + 1, ce qui nous donne un système de n équations à m d inconnues On suppose donc que la première colonne de la matrice A n'est pas nulle et en permutant la ligne 1 avec une des lignes suivantes, on se ramène à un système A (1) x = b (1), avec 11 non nul On élimine alors x 1 des lignes 2 à n en eectuant les opérations élémentaires suivantes : ce qui donne le système : L i L i a(1) i1 11 L 1 (2 i n) 11 x 1 + 12 x 2 + + 1mx m = b (1) 1 a (2) 22 x 2 + + a (2) 2mx m = b (2) 2 a (2) n2 x 2 + + a (2) nmx m = b (2) n Si l'un des coecients a (2) i2 pour éliminer x 2 des équations 3 à n Si tous les coecients a (2) i2 est non nul (2 i n), on recommence avec un procédé analogue sont nuls, on passe alors à la colonne suivante

352 Algorithmes du pivot de Gauss Applications Et on continue ainsi de suite Au bout d'un nombre ni d'étapes, on aboutit à un système échelonné qui est équivalent au système (142) Trois cas de gure sont alors possibles Soit on a obtenu un système de Cramer triangulaire supérieur d'ordre n = m = r : α 11 x 1 + α 12 x 2 + + α 1n x n = β 1 α 22 x 2 + + α 2n x n = β 2 α nn x n = β n les pivots α ii étant tous non nuls Un tel système a une unique solution et se résout alors en remontée : x n = β n α n x i = 1 α ii ( β i n j=i+1 α ij x j ) (i = n 1,, 1) Dans ce cas, la matrice A est de rang n = m Du fait qu'une permutation de lignes change le déterminant de signe et qu'ajouter un multiple d'une ligne à une autre ne change pas ce dernier, on aura : det (A) = ( 1) p n α ii où p est le nombre de permutations qui ont été nécessaires pour avoir des pivots α ii non nuls, ce qui nous donne un algorithme de calcul du déterminant de A Soit on a obtenu un système de r n équations à m > r inconnues de la forme : α 11 x 1 + α 12 x 2 + + α 1r x r + α 1,r+1 x r+1 + + α 1m x m = β 1 α 22 x 2 + + α 2r x r + α 2,r+1 x r+1 + + α 2m x m = β 2 i=1 α rr x r + α r,r+1 x r+1 + + α rm x m = β r Les r premières inconnues sont appelées inconnues principales et les autres inconnues non principales Les inconnues non principales sont alors utilisées comme paramètres en second membre et on résout le système aux inconnues principales x 1,, x r : α 11 x 1 + α 12 x 2 + + α 1r x r = β 1 (α 1,r+1 x r+1 + + α 1m x m ) α 22 x 2 + + α 2r x r = β 2 (α 2,r+1 x r+1 + + α 2m x m ) α rr x r = β r (α r,r+1 x r+1 + + α nm x m ) les pivots α ii, pour i compris entre 1 et r, étant tous non nuls L'ensemble des solutions est alors un espace ane de dimension n r (le nombre de paramètres) et le rang de la matrice est r

Résolution des systèmes linéaires par la méthode des pivots de Gauss 353 Soit on a obtenu un système de n équations à r = m < n inconnues de la forme : α 11 x 1 + α 12 x 2 + + α 1m x m = β 1 α 22 x 2 + + α 2m x m = β 2 α mm x m = β m 0 = β m+1 0 = β n Si l'un des β i, pour i compris entre m + 1 et n est non nul, alors le système n'a pas de solution Si tous β i, pour i compris entre m + 1 et n sont nuls, le système restant, appelé système aux équations principales, est de Cramer et on a une unique solution Dans ce cas, la matrice est de rang m Exemple 141 Soit à résoudre le système : x + y + z = 1 x + 2y + 2z = 2 x + 2y + 3z = 3 Les opérations élémentaires : donnent le système : L i L i L 1 (i = 2, 3) puis l'opération L 3 L 3 L 2 donne : x + y + z = 1 y + z = 1 y + 2z = 2 x + y + z = 1 y + z = 1 z = 1 et le système a pour unique solution (x, y, z) = (0, 0, 1) Exemple 142 Soit à résoudre le système : x + y + z = 1 x + 2y + 2z = 2 x + 2y + 2z = 3 Les opérations élémentaires : donnent le système : L i L i L 1 (i = 2, 3) x + y + z = 1 y + z = 1 y + z = 2 puis l'opération L 3 L 3 L 2 donne : et le système n'a pas de solution x + y + z = 1 y + z = 1 0 = 1

354 Algorithmes du pivot de Gauss Applications Exemple 143 Soit à résoudre le système : x 2y + t = 1 x y z + 4t = 1 x 3y + z 2t = 1 Les opérations élémentaires : donnent le système : L i L i L 1 (i = 2, 3) x 2y + t = 1 y z + 3t = 0 y + z 3t = 0 équivalent à : { x 2y + t = 1 y z + 3t = 0 et le système a innité de solutions données par : où (z, t) R 2 (x, y, z, t) = (1 + 2z 7t, z 3t, z, t) Exemple 144 Soient A, B, C, D quatre points distincts et alignés dans un plan Peut-on déterminer quatre points distincts et alignés M, N, P, Q tels que A, B, C, D soient respectivement les milieux des segments [M, N], [N, P ], [P, Q] et [Q, M]? Si les points M, N, P, Q existent, ils sont nécessairement sur la droite (AB) On munit (AB) d'un repère et on désigne par a, b, c, d les abscisses respectives des points A, B, C, D et x, y, z, t celles de M, N, P, Q dans ce repère Le problème a des solutions si, et seulement si, le système : x + y = 2a y + z = 2b z + t = 2c x + t = 2d a des solutions La méthode des pivots de Gauss transforme ce système en : x + y = 2a y + z = 2b 0 = 2 (b + d a c) et ce système a des solutions si, et seulement si, a + c = b + d Remarque 148 Pour éviter de faire une division par un nombre trop petit, dans le choix du pivot, on aura intérêt, à chaque étape de l'algorithme, à permuter la ligne i avec la ligne j i telle que : a jk = max { a ik i = k,, n} de manière à avoir le pivot le plus grand possible en valeur absolue Si ce maximum est trop petit, alors le système est numériquement dégénéré Remarque 149 La résolution d'un système de n équations à n inconnues par la méthode de Gauss nécessite un nombre d'opérations qui est un O (n 3 )

Résolution des systèmes de Cramer à coecients entiers 355 Pour la programmation, on peut procéder comme suit dans le cas d'un système de Cramer (n = m et det (A) 0) La variable L utilisée dans la procédure PivotMax est le numéro de la ligne où se trouve le pivot le plus grand en valeur absolue, pour tout k compris entre 1 et n La procédure PermuterLigne, facile à écrire permet de permuter deux lignes du système Après exécution de la procédure la matrice A est devenue triangulaire et le vecteur b est transformé, de sorte que les valeurs initiales de A et b sont perdues C'est-à-dire que les variables A et b sont passées par adresse (c'est le mode Entrée_Sortie) PROCEDURE PivotMax(Entrée k, n : Entier ; ε : Réel ; Entrée_Sortie A : Matrice ; b : Vecteur) ; L = k ; Pour i Allant de k + 1 à n Faire Si a ik > a Lk Alors L = i ; Si a ik < ε Alors Stop('Pivot trop petit') ; Si L k Alors PermuterLignes(n, k, L, A, b) ; PROCEDURE Eliminer(Entrée k, n : Entier ; Entrée_Sortie A : Matrice ; b : Vecteur) ; Pour i Allant de k + 1 à n Faire m = a ik a kk ; Pour j Allant de k + 1 à n Faire a ij = a ij m a kj ; a ik = 0 ; b i = b i m b k ; PROCEDURE Pivotage(Entrée n : Entier ; Entrée_ Sortie A : Matrice ; b : Vecteur) ; Pour k Allant de 1 à n 1 Faire PivotMax(k, n, A, b) ; Eliminer(k, n, A, b) ; Puis, la résolution du système linéaire Ax = b se fait en appelant une procédure de résolution d'un système triangulaire supérieur facile à écrire 143 Résolution des systèmes de Cramer à coecients entiers On suppose ici que m = n et que A M n (Z), b M n,1 (Z) Dans ce cas, en modiant la méthode de Gauss, on peut calculer la solution x de façon exacte comme vecteur à coecients dans Q On procède comme suit

356 Algorithmes du pivot de Gauss Applications Etape 0 Après une éventuelle permutation de lignes, on a obtenu le système A (1) x = b (1) à coecients dans Z avec un premier pivot non nul Etape 1 Elimination de x 1 dans les équations 2,, n En eectuant la division de la ligne 1 par le premier pivot, on perd le caractère entier du système Il est préférable de procéder comme suit : garder la ligne 1 ; L (1) i 11 L (1) i i1 L(1) 1, pour i = 2,, n Ce qui donne le système A (2) x = b (2), avec un deuxième pivot non nul (au prix d'une éventuelle permutation) Etape 2 Elimination de x 2 dans les équations 3,, n Si on procède de la même façon pour cette étape, on constate que les coecients de la matrice A (3) et du vecteur b (3) sont divisibles par le premier pivot On peut donc s'autoriser une division par ce premier pivot pour cette étape 2, ce qui aura l'avantage de diminuer les coecients obtenus Etape k Elimination de x k dans les équations k + 1,, n Cette étape est décrite par les formules : a (k+1) ij = ( ) a (k) kk a(k) ij a (k) ik a(k) kj a (k 1) k 1,k 1 pour i = k + 1,, n et j = k + 1,, n + 1 (en prenant b comme colonne numéro n + 1) Ce qui donne au bout de n 1 étapes un système triangulaire supérieur à coecients entiers qui peut se résoudre de façon exacte dans Q n Calcul du déterminant Au signe près, on a : det ( A (2)) = ( 11 ) n 1 det (A) det ( ( ) A (3)) a (2) n 2 22 = det ( A (2)) ( = 11 De proche en proche, on a alors : det ( A (n)) = ( 1) p ( n a (k) kk k=1 a (2) 22 ) ) n 2 a (1) 11 det ( A (1)) det (A) ce qui donne, en tenant compte de l'expression de det ( A (n)) comme produit des pivots : det (A) = ( 1) p a (n) nn Dans la programmation structurée ci-dessus, on peut aussi travailler avec une matrice à n lignes et n + 1 colonnes en prenant b pour colonne n + 1 De manière plus générale, pour résoudre en parallèle p systèmes linéaires de même matrice A et de seconds membres respectifs b 1,, b p, on travaillera avec une matrice à n lignes et n+p colonnes en prenant, pour j compris entre 1 et p, b j comme colonne n + j En prenant pour valeurs particulières des seconds membres les vecteurs de la base canonique de K n, on dispose d'un procédé de calcul de l'inverse d'une matrice Mais, en fait, pour calculer l'inverse d'une matrice on préfère utiliser la méthode Gauss-Jordan qui est une variante de la méthode de Gauss

La méthode de Gauss-Jordan pour les systèmes de Cramer 357 144 La méthode de Gauss-Jordan pour les systèmes de Cramer Voir le paragraphe 137 Pour la programmation de cette méthode, on peut procéder comme suit, le vecteur b contenant en n d'opération la solution du système PROCEDURE EliminerGaussJordan(Entrée k, n : Entier ; Entrée_Sortie A : Matrice ; b : Vecteur) ; Pour j Allant de k + 1 à n Faire a kj = a kj a kk ; b k = b k a kk ; a kk = 1 ; Pour i Allant de 1 à k 1 Faire Pour j Allant de k + 1 à n Faire a ij = a ij a ik a kj ; b i = b i a ik b k ; a ik = 0 ; Pour i Allant de k + 1 à n Faire Pour j Allant de k + 1 à n Faire a ij = a ij a ik a kj ; b i = b i a ik b k ; a ik = 0 ; PROCEDURE GaussJordan(Entrée n : Entier ; Entrée_Sortie A : Matrice ; b :Vecteur) ; Pour k Allant de 1 à n Faire PivotMax(k, n, A, b) ; EliminerGaussJordan(k, n, A, b) ; Le calcul de l'inverse et du déterminant d'une matrice peut alors se faire en remplaçant le vecteur b par la matrice identité, ce qui revient à résoudre en parallèle les n systèmes linéaires de même matrice A et de seconds membres respectifs e 1,, e n formant la base canonique de K n On obtient alors la programmation structurée suivante PROCEDURE InitInverse(Entrée : n : Entier ; Sortie Inv : Matrice) ; Pour i Allant de 1 à n Faire Pour j Allant de 1 à n Faire Si j i Alors Inv ij = 0 Sinon Inv ij = 1 ;

358 Algorithmes du pivot de Gauss Applications PROCEDURE PivotMaxInv(Entrées k, n : Entiers ; ε : Réel ; Entrée_Sortie A, Inv : Matrice) ; L = k ; Pour i Allant de k + 1 à n Faire Si a ik > a Lk Alors L = i ; Si a Lk < ε Alors Arrêter('Pivot trop petit') ; Si L k Alors Pour j Allant de k à n Echanger(a kj, a Lj ) ; Pour j Allant de 1 à n Echanger(Inv kj, Inv Lj ) ; PROCEDURE EliminerInvGaussJordan(Entrées k, n : Entiers ; Entrée_Sortie A, Inv : Matrice) ; Pour j Allant de k + 1 à n Faire a kj = a kj a kk ; Pour j Allant de k + 1 à n Faire Inv kj = Inv kj Inv kk ; a kk = 1 ; Pour i Allant de 1 à k 1 Faire Pour j Allant de k + 1 à n Faire a ij = a ij a ik a kj ; Pour j Allant de 1 à n Faire Inv ij = Inv ij a ik Inv kj ; a ik = 0 ; Pour i Allant de k + 1 à n Faire Pour j Allant de k + 1 à n Faire a ij = a ij a ik a kj ; Pour j Allant de 1 à n Faire Inv ij = Inv ij a ik Inv kj ; a ik = 0 ; Fin PROCEDURE InversionGaussJordan(Entrée n : Entier ; Entrée_Sortie A, Inv : Matrice) ; InitInverse(n, Inv) ; Pour k Allant de 1 à n Faire PivotMaxInv(k, n, A, Inv) ; EliminerInvGaussJordan(k, n, A, Inv) ; 145 Applications 1451 Décomposition LR (méthode de Crout) Voir le paragraphe 134

Applications 359 1452 Décomposition LD t L des matrices symétriques réelles Voir le paragraphe 135 1453 Décomposition de Cholesky des matrices symétriques réelles dénies positives Voir le paragraphe 136

360 Algorithmes du pivot de Gauss Applications