Adloun

Matrices carrées et inversibilité

Cours complet · mathématiques (ECT 2e année), chapitre 1 · prépa ECT, 2e année

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

Une matrice n'est rien d'autre qu'un tableau de nombres. Ce qui la rend utile, c'est qu'on peut la manipuler comme un seul objet : l'ajouter, la multiplier, parfois l'inverser — et qu'un système de trois équations à trois inconnues se réécrit alors en une seule ligne, . Tout ce chapitre se lit sur des tableaux de taille ou : un carnet de commandes, un parc de véhicules entre trois agences, un système de coûts y tiennent tous.

AttentionCe que le programme demande, et ce qu'il écarte

Deux phrases encadrent le chapitre. La première : « Le programme exclut toute notion de structure. On ne traite que le cas des matrices réelles. » Ni groupe, ni anneau, ni espace vectoriel : on calcule sur des tableaux de nombres réels, et c'est tout. La seconde : « On se limitera à des matrices carrées d'ordre inférieur ou égal à . »

1.1 Matrices carrées

Définition 1.1Matrice carrée d'ordre n

Une matrice carrée d'ordre est un tableau de lignes et colonnes de nombres réels, noté , où est le coefficient situé à l'intersection de la ligne et de la colonne . L'ensemble de ces matrices se note .

Deux matrices de sont égales lorsque tous leurs coefficients le sont, un par un.

Définition 1.2Trois familles de matrices carrées

Soit dans .

  • est triangulaire supérieure si dès que : tout ce qui est sous la diagonale est nul.
  • est triangulaire inférieure si dès que : tout ce qui est au-dessus de la diagonale est nul.
  • est diagonale si dès que : elle est à la fois triangulaire supérieure et triangulaire inférieure.

La matrice identité est la matrice diagonale dont tous les coefficients diagonaux valent .

Exemple 1.3Reconnaître un moule

est triangulaire supérieure, triangulaire inférieure, diagonale. Attention : rien n'oblige une matrice diagonale à avoir des coefficients diagonaux non nuls — en a un qui vaut , et cela coûtera cher au moment d'inverser.

Définition 1.4Somme et multiple

Pour et dans et réel, on pose et : on ajoute et l'on multiplie case par case. La matrice dont tous les coefficients sont nuls se note ; elle vérifie .

Exemple 1.5Deux mois de commandes

Les commandes d'une entreprise auprès de trois fournisseurs, en janvier puis en février, sont et . Le total du bimestre est : neuf additions, écrites en trois signes.

1.2 Le produit de deux matrices

Définition 1.6Produit matriciel

Soient et dans . Le produit est la matrice dont le coefficient de la ligne et de la colonne vaut

On dit qu'on fait le produit de la ligne de par la colonne de .

ImportantLe produit de matrices n'est pas le produit des nombres

Trois habitudes prises au collège tombent d'un coup.

  • Le produit n'est pas commutatif : en général . Les deux produits existent, ils sont de même taille, et ils diffèrent.
  • Un produit nul n'oblige aucun facteur à l'être : on peut avoir avec et , comme le montre .
  • On ne simplifie pas : n'entraîne pas .

En revanche le produit reste associatif, et .

Python : Vérifier un produit, et sa non-commutativité


import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[0, 1], [1, 0]])

print((A @ B).tolist())    # [[2, 1], [4, 3]]
print((B @ A).tolist())    # [[3, 4], [1, 2]]

Multiplier par à droite échange les colonnes de , à gauche ses lignes : deux opérations différentes, deux résultats différents. En Python, @ est le produit matriciel ; * ferait un produit case par case, qui n'est pas celui du cours — l'erreur la plus fréquente des premiers programmes.

1.2.1 Un parc de véhicules entre trois agences

Exemple 1.7Ce qu'une matrice de flux encode

Un loueur possède trois agences , et . Chaque mois, une partie des véhicules loués dans une agence est rendue dans une autre. La matrice

se lit par colonnes : la colonne décrit ce que devient le parc de — y restent, partent en , en . Chaque colonne somme à : aucun véhicule ne disparaît. Si est la colonne des effectifs au mois , alors .

Exemple 1.8Deux mois d'évolution

Partons de , soit véhicules. Alors

Détail de la première coordonnée de : . Les trois coordonnées somment encore à , car les colonnes de somment à .

1.3 Puissances d'une matrice carrée

Définition 1.9Puissance n-ième

Pour et entier naturel, on pose et : est le produit de facteurs égaux à .

Proposition 1.10Puissance d'une matrice diagonale

Si est la matrice diagonale de coefficients diagonaux , alors pour tout entier , est diagonale de coefficients diagonaux . Ainsi donne .

Démonstration

Le coefficient de vaut , dont tous les termes sont nuls sauf éventuellement celui où : on obtient sur la diagonale et ailleurs. Une récurrence conclut.

Définition 1.11Matrice nilpotente

Une matrice de est nilpotente s'il existe un entier tel que .

Exemple 1.12Une nilpotente d'ordre 3

Pour on trouve et . Le seul coefficient survivant de est ; à l'étape suivante il n'y a plus rien à multiplier.

◆Théorème 1.13Binôme pour deux matrices qui commutent

Soient et dans telles que . Alors pour tout entier :

AttentionL'hypothèse n'est pas décorative

La formule est fausse sans l'hypothèse . Déjà au carré : , et l'on ne peut regrouper en que si les deux produits coïncident. Avant d'écrire un binôme, on vérifie la commutation — toujours.

Le programme précise d'ailleurs le terrain de jeu : « On se limitera à des exemples simples, par exemple lorsque l'une des matrices est nilpotente. » En pratique, on écrira presque toujours avec nilpotente ; et commute avec tout.

Exemple 1.14La méthode complète sur un cas

Soit . On écrit avec la nilpotente de l'exemple précédent.

commute avec , donc le binôme s'applique ; comme , tous les termes d'indice disparaissent :

Pour : , d'où .

Python : Nilpotence et binôme, mis à l'épreuve


import numpy as np

N = np.array([[0, 1, 2], [0, 0, 3], [0, 0, 0]])
I = np.eye(3, dtype=int)

print((N @ N).tolist())      # [[0, 0, 3], [0, 0, 0], [0, 0, 0]]
print((N @ N @ N).tolist())  # [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

A = I + N
print((A @ A @ A @ A).tolist())
# [[1, 4, 26], [0, 1, 12], [0, 0, 1]]
print((I + 4*N + 6*(N @ N)).tolist())
# [[1, 4, 26], [0, 1, 12], [0, 0, 1]]

Les deux dernières sorties coïncident : le produit répété et le binôme donnent la même matrice, et le coefficient est .

1.4 Matrices inversibles

Définition 1.15Matrice inversible

Une matrice est inversible s'il existe telle que . Une telle matrice est alors unique ; on l'appelle l'inverse de et on la note .

Démonstration (Unicité de l'inverse)

Si et conviennent toutes deux, alors : on n'a utilisé que l'associativité.

◆Théorème 1.16Critère d'inversibilité à l'ordre 2

Soit . Alors est inversible si et seulement si , et dans ce cas

Le nombre se note .

Démonstration

Posons et . Un calcul direct donne .

Si , la matrice convient. Si et si était inversible, alors multipliée à gauche par donnerait , donc , qui n'est pas inversible. Contradiction.

AttentionCe que l'on a le droit d'écrire, et rien de plus

Le programme est catégorique : « La notation pourra être utilisée, mais elle sera limitée au cas des matrices carrées d'ordre . La notion de déterminant est hors-programme. »

On écrira donc pour une matrice à quatre coefficients, et jamais rien d'autre : ni calcul sur un tableau d'ordre , ni développement, ni règle générale. Pour l'ordre , le pivot de Gauss et la résolution de suffisent amplement.

Exemple 1.17Deux matrices d'ordre 2

Pour : , donc , et l'on vérifie que .

Pour : , donc n'est pas inversible. On le voit d'ailleurs à l'œil nu — la première ligne est le double de la seconde.

◆Théorème 1.18Critère d'inversibilité d'une matrice triangulaire

Une matrice triangulaire (supérieure ou inférieure) est inversible si et seulement si tous ses coefficients diagonaux sont non nuls ; son inverse est alors triangulaire de même sens. Résultat admis.

Exemple 1.19Le critère à l'œuvre

a pour diagonale : aucun zéro, elle est inversible. En revanche a pour diagonale : un seul zéro suffit à l'exclure.

Le critère ne coûte qu'un coup d'œil — encore faut-il avoir vérifié que la matrice est bien triangulaire.

Proposition 1.20Inverse d'un produit, inverse d'un inverse

Si et sont inversibles, alors l'est aussi et

Démonstration

, et le calcul symétrique donne . L'ordre s'inverse : on défait en commençant par la dernière opération faite.

ImportantQuel critère pour quelle matrice ?
  • Ordre : calculer . Non nul, la formule donne l'inverse ; nul, la matrice n'est pas inversible. C'est immédiat.
  • Triangulaire ou diagonale : lire la diagonale. Aucun zéro, inversible ; un zéro, non inversible.
  • Ordre quelconque : le pivot de Gauss sur ou la résolution de — le même calcul, écrit autrement.

Aucune autre méthode n'est attendue, et aucune n'est nécessaire.

1.5 Systèmes linéaires et inverse

Définition 1.21Écriture matricielle d'un système

Le système de équations à inconnues dont la ligne s'écrit se met sous la forme , où est la matrice du système, la colonne des inconnues et celle des seconds membres.

◆Théorème 1.22Résolution par l'inverse

Si est inversible, le système admet une solution et une seule, donnée par .

Démonstration

Si , multiplier à gauche par donne : il n'y a pas d'autre candidat. Réciproquement : il convient.

1.5.1 Calculer l'inverse par le pivot de Gauss

ImportantLe principe en une phrase

On écrit côte à côte et , puis on applique aux deux tableaux les mêmes opérations sur les lignes, jusqu'à transformer celui de gauche en : celui de droite est alors . Trois opérations sont autorisées — échanger deux lignes, multiplier une ligne par un réel non nul, ajouter à une ligne un multiple d'une autre.

Exemple 1.23Le même inverse par la résolution de AX = Y

Reprenons et résolvons avec :

donne ; en retranchant il reste . On remonte : , puis .

Les coefficients de , , dans , , forment exactement les lignes de : les deux méthodes ne font qu'un seul calcul.

Pour on obtient donc , et le contrôle dans le système de départ donne bien , et .

Python : L'inverse, et le système


import numpy as np

A = np.array([[1, 1, 1], [0, 1, 2], [1, 2, 4]])
B = np.array([[0, -2, 1], [2, 3, -2], [-1, -1, 1]])

print((A @ B).tolist())   # [[1, 0, 0], [0, 1, 0], [0, 0, 1]]

Y = np.array([6, 8, 17])
print((B @ Y).tolist())   # [1, 2, 3]

La première sortie est : est bien l'inverse de . La seconde donne la solution du système, sans l'avoir résolu ligne à ligne.

AttentionCe qu'on ne fait pas

Le programme écarte la résolution de systèmes à paramètres, jugée « à proscrire ». Les seconds membres littéraux ci-dessus n'en sont pas : la matrice du système, elle, reste entièrement numérique.

Continuer sur Adloun : animation, QCM, fiches, exercices