2 Pivot : mise sous forme triangulaire d une matrice

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

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.

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

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

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

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

Programmation linéaire

Chapitre 2. Matrices

Programmation linéaire et Optimisation. Didier Smets

Cours d analyse numérique SMI-S4

3 Approximation de solutions d équations

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

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

avec des nombres entiers

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Rappels sur les suites - Algorithme

Fonctions de plusieurs variables

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Correction de l examen de la première session

Le produit semi-direct

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

Programmes des classes préparatoires aux Grandes Ecoles

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Initiation à la programmation en Python

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

Programmation linéaire

Continuité et dérivabilité d une fonction

Résolution d équations non linéaires

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

Raisonnement par récurrence Suites numériques

Calcul différentiel sur R n Première partie

Problème 1 : applications du plan affine

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

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Optimisation, traitement d image et éclipse de Soleil

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

Représentation des Nombres

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

I. Polynômes de Tchebychev

Chapitre 3. Les distributions à deux variables

Les indices à surplus constant

ASR1 TD7 : Un microprocesseur RISC 16 bits

La persistance des nombres

Fonctions homographiques

Chp. 4. Minimisation d une fonction d une variable

Introduction à MATLAB R

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

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

Limites finies en un point

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Probabilités sur un univers fini

Licence Sciences et Technologies Examen janvier 2010

Continuité en un point

Définitions. Numéro à préciser. (Durée : )

Chapitre 1 : Évolution COURS

Compter à Babylone. L écriture des nombres

Chapitre 6. Fonction réelle d une variable réelle

Cryptographie et fonctions à sens unique

Cours d arithmétique Première partie

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

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

CCP PSI Mathématiques 1 : un corrigé

Chapitre 1 I:\ Soyez courageux!

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Polynômes à plusieurs variables. Résultant

Corrigé des TD 1 à 5

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

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Algorithme. Table des matières

Structures algébriques

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Tests de comparaison de moyennes. Dr Sahar BAYAT MASTER 1 année UE «Introduction à la biostatistique»

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Fonction inverse Fonctions homographiques

Chapitre 5 : Flot maximal dans un graphe

Représentation d un entier en base b

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

Plus courts chemins, programmation dynamique

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

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Informatique Générale

MIS 102 Initiation à l Informatique

Chaînes de Markov au lycée

NOMBRES COMPLEXES. Exercice 1 :

Introduction à la théorie des graphes. Solutions des exercices

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

V- Manipulations de nombres en binaire

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

Angles orientés et trigonométrie

Transcription:

Chapitre 10 : algorithmes de calcul matriciel Motivation : Les algorithmes de résolutions de systèmes linéaires et de calcul sur les matrices seront implémentés par vous-mêmes en T.P. Le but de ces notes est de présenter ces différents algorithmes, de voir comment ils s articulent entre eux, de préciser quelques notions et outils qui pourront vous aider, et d autre part d analyser leur complexité. 0 Rappels sur les matrices en Python pur : a) Une matrice n est qu une liste de listes Par exemple A=[[ 1,],[3,4]] représentera pour nous la matrice ( 1 3 4 ). Les entrées de A sont obtenues via A[i][j]. Noter que l affichage d une matrice n est pas bien joli, mais qu il est facile de programmer une petite fonction qui fasse un affichage joli. Attention : En python, les indices commencent à 0, donc pour les matrices à A[0][0]. b) Une liste est un objet mutable On peut modifier les entrées de la matrice, c est bien, les fonctions peuvent transformer la matrice qu elles ont en argument, c est bien, mais il faut prendre garde aussi aux problèmes des éventuelles copies d une matrices qui pointeraient vers la même case mémoire... une modification de la copie modifiera aussi l original. On rappelle qu il existe un module appelé deepcopy qui résout ce problème des copies. 1 Résolution des systèmes triangulaires : On considère un système Y = T X avec T T S n (K) inversible et Y M n,1 (K) fixés, et on cherche l unique solution X M n,1 (K) de ce système. Un tel système se résout de bas en haut. A la ligne L n, on va seulement faire un quotient pour trouver x n = y n /t n,n. Mais ensuite à la ligne L i, on obtiendra x i par : x i = 1 t i,i (y i j>i t i,j x j ). Question : Donner l ordre de grandeur de la complexité de cet algorithme de résolution : Θ(n), Θ(n ), Θ(n 3 )? Pivot : mise sous forme triangulaire d une matrice On fixe une matrice A M n (K) inversible..1 La méthode du pivot, avec une spécificité pour les machines Le premier pivot Au début de la méthode du pivot, on veut nettoyer la première colonne en utilisant A(1, 1) comme pivot, via L i L i µ i L 1 pour i où µ i = A(i, 1)/A(1, 1). Mais le (seul) problème est que A(1, 1) peut être nul. Ce que dirait un mathématicien : On doit donc d abord rechercher la première entrée non nulle dans la colonne 1 et une fois cette entrée trouvée à une ligne L i échanger L i et L 1. Comme A est inversible, on sait qu on va toujours en trouver, car la première colonne ne peut pas être nulle. 1

Une précaution liée au calcul numérique pour le choix du pivot : Quand on manipule des flottants, le test de l égalité à zéro n est pas adapté, car parfois dans les calculs un nombre qui vaudrait théoriquement zéro sera remplacé par un nombre très petit. On pourrait remplacer le test d égalité à zéro par la comparaison avec le epsilon machine, mais : pour des raisons de meilleure précision du calcul numérique, il vaut mieux éviter de diviser par des très petits nombres. Corollaire du principe précédent, ce que dit un mathématicien numérique : il vaut mieux choisir comme pivot dans la colonne 1, l entrée ayant la plus grande valeur absolue Le pivot à l étape i : A l étape i, en suivant le principe précédent, on choisit parmi les lignes L j avec j i, celle où l entrée A(j, i) a la plus grande valeur absolue, et on l échange avec L i. Ensuite on se sert de cette nouvelle L i pour nettoyer la colonne C i en dessous de la diagonale. Remarque du mathématicien : là encore, on est sûr qu une des entrées A(j, i) avec j i est non nulle. Sinon, comme à ce stade les premières colonnes C 1,..., C i 1 sont déjà celles d une matrice T.S., on aurait C 1,..., C i liées.. Estimation de la complexité de la méthode du pivot précédente Ecrite de manière plus formelle, la description de l algorithme du pivot donnée au paragraphe précédent devient : On numérote ici les lignes en L 0,..., L n 1 dans l esprit de Python. pour i de 0 à n- : trouver j >=i tel que A(j,i) soit maximum échanger L_i et L_j pour k de i+1 à n L_k <- L_k - mu_k L_i Pour chaque valeur de i 0, n : la recherche de j coûte n i comparaisons, l échange éventuel de L i et L j coûte n + affectations (n pour les entrées des lignes, et pour i et j) pour chaque valeur de k entre i + 1 et n 1, la transvection coûte n affectations, et autant de divisions, multiplications, soustractions (une par entrée de la ligne). Propriété En ajoutant toutes ces contributions comme comptant 1, on obtient pour la méthode du pivot sur une matrice A GL n (K) un coût en Θ(n 3 ). 3 Application à la résolution de systèmes de Cramer 3.1 Codage matriciel d un système quelconque avec second membre : Remarque : Si on se donne un système linéaire quelconque S Y = AX avec A M m,n (K), Y M m,1 (K) et X M n,1 (K), où A et Y sont fixés et on cherche X, si on transforme ce système S par des opérations élémentaires sur les lignes, on arrive à un système équivalent S Y = A X où Y et A ont été modifiées par les mêmes opérations opérations sur les lignes. Ces systèmes équivalents ont bien sûr même ensemble de solution. On en déduit la :

Propriété-définition de la matrice augmentée associée à un système : Toutes les opérations sur un système peuvent être codées sur ce qu on appelle la matrice augmentée de ce système à savoir la matrice (A Y ) obtenue en rajoutant Y comme dernière colonne à A. Les opérations faites sur lignes du système sont faites sur les lignes de cette matrice. On arrive à une matrice (A Y ) telle qu on ait toujours l équivalence : AX = Y A X = Y. Exemple : On considère le système x + y + 7z = 1 x y + 5z = 5 x 3y 9z = 5 A ce système, on associe la matrice augmentée : 1 1 7 1 1 5 5 1 3 9 5 Comparons alors l effet d une opération élémentaire sur le système et la matrice augmentée. Par exemple, avec : L L L 1 le système devient : la matrice augmentée devient : x + y + 7z = 1 3y 9z = 3 x 3y 9z = 5 1 1 7 1 0 3 9 3 1 3 9 5 Ceci illustre bien qu il suffit de conduire les opérations élémentaires sur la matrice augmentée pour coder les différents systèmes équivalents obtenus par opérations élémentaires. Ici, en poursuivant le pivot avec la matrice augmentée : L 3 L 3 + L 1 L 1 3 L 1 1 7 1 0 3 9 3 0 6 1 1 7 1 0 1 3 1 0 6 L 3 L 3 + L 1 1 7 1 0 1 3 1 0 0 4 4 Cette matrice augmentée dont la première partie est une matrice TS 3 3 code le système triangulaire équivalent à notre système initial : x + y + 7z = 1 y + 3z = 1 4z = 4 3

3. Les deux étapes résolution d un système de Cramer par le pivot Définition : Un système de Cramer est un système AX = Y avec A matrice carrée inversible données, Y colonne donnée, et d inconnue une colonne X. On sait donc que ce système admet un unique solution. La première étape de la résolution : Transformer A en une matrice A triangulaire sup. avec la méthode du pivot sur les lignes donnée au.1. Appliquer les mêmes transformations sur les lignes à Y ce qui donne une nouvelle colonne Y. (On peut utiliser la matrice augmentée pour cela). La deuxième étape de la résolution : Résoudre le système triangulaire A X = Y avec la méthode du 1. Question : Quelle est la complexité totale de cet algorithme? 4

Chapitre 10 : algorithmes de calcul matriciel (suite) 4 Mise en perspective avec l inversion de matrices 4.1 Rappel sur l algorithme de Gauss-Jordan pour inverser une matrice 1 1 7 Si on reprend l exemple du 3.1, le système donné s écrivait AX = Y avec A = 1 5. 1 3 9 L algorithme dit de Gauss-Jordan, appelé simplement pivot matriciel pour inverser la matrice A, consiste en deux phases : phase de descente : faire les mêmes opérations sur les lignes qu au 3.1 pour arriver à une matrice TS dont on normalise les entrées diagonales à 1 (phase de descente à laquelle on s est arrêté pour le pivot au 3.1) phase de remontée : transformer ensuite les éléments au-dessus de la diagonale en 0. Chaque des opérations sur les lignes est répercutée sur une matrice témoin qui vaut I n au départ et A 1 à l arrivée. 4. Comparaison des coûts (culturel pour nous) 4..1 Coût du pivot de Gauss pour résoudre AX = Y : Dans la méthode du pivot de Gauss vue pour l inversion d un système au 3.1 : on arrête le pivot à la fin de la première phase (phase de descente) i.e. lorsque la matrice est triangulaire. En laissant de côté les affections, le coût de ce seul pivot pour rendre triangulaire est, pour n grand, équivalent à n 3 /3. Ensuite la résolution du système triangulaire étant en O(n ), le coût total de la méthode du pivot reste du n 3 /3. Propriété : résoudre, pour un Y fixé, le système AX = Y par le pivot de Gauss du 3 a, pour n grand, un coût en terme de nombres d opérations de l ordre de n 3 /3. 4.. Coût du calcul de A 1 par le pivot de Gauss-Jordan La phase de remontée rajoute des opérations qui font qu on montre la : Propriété : calculer A 1 par la méthode du pivot matriciel (Gauss-Jordan) a, pour n grand, un coût en terme de nombre d opérations de l ordre de n 3, donc supérieur. Retenir au moins que : l inversion par pivot de AX = Y coûte moins cher que le calcul de A 1 par pivot. 4.3 Cas où on doit résoudre plusieurs systèmes avec le même premier membre AX Si on a besoin de résoudre plusieurs système AX = Y 1, AX = Y,... AX = Y n, on se dit que dans ce cas le calcul de A 1 une fois pour toute semble bien justifié. On va cependant voir au 5 suivant, une méthode qui ne s applique pas à toutes les matrices inversibles mais à la plupart, mais qui, lorsqu elle s applique, est plus rapide que le calcul de l inverse. 5

5 L algorithme de décomposition A = L.U a) Une décomposition pour certaines matrices : On va montrer que certaines matrices inversibles A s écrivent comme un produit : A = L.U, avec L lower triangular autrement dit T.I. et matrice U upper triangular autrement dit T.S. b) A quoi sert une telle décomposition? Motivation : si on a plusieurs systèmes à résoudre avec le même premier membre Si on a plusieurs systèmes à résoudre avec la même matrice A et le second membre Y qui change et qu on connaît L et U telles que A = LU, alors : X = UX (1) AX = Y LUX = Y LX = Y () Ce qu on gagne : les deux systèmes LX = Y et UX = X sont triangulaires! Ainsi, connaissant déjà la décomposition LU d une matrice, la résolution des systèmes AX = Y devient un problème en O(n ) au lieu de O(n 3 )! c) Une C.N. pour qu une matrice inversible ait une décomposition L.U Notations : pour tout p 1, n, et toute matrice M M n (K), on note M p la matrice obtenue à partir de M en ne gardant que les p premières lignes et les p premières colonnes. Soit A GL n (K). Prop. (Maths) Justifier que s il existe un couple (L, U) M n (K) avec L triangulaire inférieure et U triangulaire supérieure telles que A = L.U. alors pour tout p 1, n, la matrice A p est inversible. Indication On pourra écrire L et U par bloc. Remarquer que l hypothèse A inversible entraîne L et U inversibles. d) Récip. du c), avec un algorithme effectif : En reprenant la méthode du pivot, on va voir que la réciproque du c) est vraie et surtout on va décrire un algorithme permettant d obtenir ces matrices L et U. L essentiel : l hyp. sur les A p permet de faire un pivot sans permutation de lignes Soit donc A M n (K) telle que pour tout p 1, n, A p soit inversible. 1ère étape : Pour p = 1, on obtient que A 1 = (a 1,1 ) est inversible i.e. a 1,1 0. Donc il suffit de faire directement les opérations L i L i a i,1 a 1,1 L 1 pour transformer la matrice A en une matrice qu on notera A (1) 0 dont la première colonne est 0 ème étape : Pour p =, si on considère la matrice qu on note A (1) obtenue à partir de A (1) en ne gardant que les deux premières lignes et les deux premières colonnes alors on remarque que A (1) est elle-même obtenue à partir seulement de A par une opération sur les lignes (L L a,1 L 1 ) Donc comme A est inversible par hypothèse, on est sûr que A (1) l est aussi. a 1,1 Mais A (1) = ( a 1,1 0 a (1) ). Donc on est sûr que a (1), est non nul., 6 a 1,1.

Il suffit donc d effectuer les opérations sur les lignes pour i = 3,..., n : L i L i a(1) i, L pour obtenir à partir de A (1) une matrice qu on notera A () dont les deux premières colonnes sont celles d une matrice T.S. Remarque importante : On a alors à ce stade A () = L () L (1) A avec L () L (1) matrice T.I. Itération du procédé : H.R. A l issue de l étape p 1, la matrice A a été transformée en une matrice qu on notera A (p 1) avec une relation A (p 1) = LA où L est T.I. Cette matrice A (p 1) a la propriété suivante : la matrice obtenue à partir A (p 1) en ne gardant que les p premières lignes et les p premières colonnes, qu on note A (p 1) p, est une matrice T.S. On utilise alors le fait que A (p 1) p est T.S. inversible pour s assurer que son entrée (p, p) est non nulle et on élimine alors par pivot sur les lignes L i, avec i p, toutes les entrées en dessous de la diagonale dans la colonne C p, en retranchant des multiples de L p. Ceci permet d établir la récurrence. C est le fait de ne faire que des transvections L j L j + µl i avec i < j qui dit que les opérations élémentaires correspondantes sont codées par des matrices T.I. e) Un des dangers de la décomposition LU : En pratique, une matrice dont les entrées sont des flottants est le plus souvent inversible (une simple perturbation numérique rend non nul le déterminant), et de même pour les sous-matrices, donc, la méthode LU s applique souvent. Cependant : le fait de ne pas chercher le meilleur pivot dans une colonne (celui le plus grand en valeur absolue), risque de provoquer des instabilités numériques (erreurs de calculs importantes), comme nous allons le voir au paragraphe suivant. La méthode du pivot de Gauss, où on cherche à chaque fois le pivot de plus grande valeur absolue est plus stable. 6 Exemples de problèmes numériques : 6.1 Ce qui se passe si on choisit un pivot trop petit Considérons le système : dont la solution exacte est : x = { 10 4 x y = 1, x + y =, 1 1 +.10 4 = 0, 99989998..., y = = 1, 00010001... 1 + 10 4 1 + 10 4 (les séquences surlignées désignent la période du développement décimal). Les écritures avec trois chiffres significatifs des solutions sont donc x 1, y 1. On va résoudre ce système en faisant les calculs eux-mêmes avec trois chiffres significatifs (taille de la mantisse). (M1) En prenant pour pivot le premier coefficient 10 4 (pivot très petit par rapport aux autres coefficients! on trouve le système équivalent de lignes L 1 et L L 1 10 L 4 1 { 10 4 x y = 1, (1 + 10 4 )y = + 10 4 Mais avec 3 chiffres significatifs 10 4 + 1 10 4 et 10 4 + 10 4, donc le système est devenu : { 10 4 x y = 1, 10 4 y = 10 4, a (1), 7

avec comme solution : { y = 1, x = 0 On est très loin des solutions approchées qu on aimerait trouver x = 1 et y = 1! (M) On se rassure : cela se passe beaucoup mieux en prenant le deuxième coefficient de la première colonne : pivot le plus grand En prenant donc le deuxième coefficient comme pivot, on fait l opération L 1 L 1 10 4 L ce qui donne : { ( 1 10 4 )y = 1, x + y = Le 1 10 4 est arrondi à 1 (trois chiffres significatifs), et on a le système : { y = 1, x + y = qui donnent les bonnes solutions approchées y = 1 et x = 1. Cet exemple illustre donc bien l importance du choix du pivot le plus grand en v. abs. 8

Solution du 5 c) Si on a A = LU, si p 1, n, on pose A = ( A p ) = (L p 0 ) (U p 0 ) donc par produit par bloc A p = L p.u p. Comme A est inversible, et que A = LU on sait que L et U sont inversible : c est évident avec le déterminant, sinon ici simplement en disant que rg(lu) min(rg(l), rg(u)). Mais L (resp. U) étant une matrice Triangle inférieure (resp. supérieure) inversible, toutes ses entrées diagonales sont non nulles, donc notamment toutes les entrées diagonales de L p (resp. U p ) sont non nulles et donc L p (resp. U p ) est encore inversible. On conclut que A p = L p.u p est inversible comme produit d inversibles. 9