Produit matriciel

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le produit matriciel désigne la multiplication de matrices, initialement appelé la « composition des tableaux »[1].

Produit matriciel ordinaire[modifier | modifier le code]

Il s'agit de la façon la plus fréquente de multiplier des matrices entre elles.

En algèbre linéaire, une matrice A de dimensions m lignes et n colonnes (matrice m×n) représente une application linéaire ƒ d'un espace de dimension n vers un espace de dimension m. Une matrice colonne V de n lignes est une matrice n×1, et représente un vecteur v d'un espace vectoriel de dimension n. Le produit A×V représente ƒ(v).

Si A et B représentent respectivement les applications linéaires ƒ et g, alors A×B représente la composition des applications ƒog.

Cette opération est utilisée notamment en mécanique lors des calculs de torseur statique, ou en informatique pour la matrice d'adjacence d'un graphe.

Le produit de deux matrices ne peut se définir que si le nombre de colonnes de la première matrice est le même que le nombre de lignes de la deuxième matrice, c'est-à-dire lorsqu'elles sont de type compatible.

Si est une matrice de type et est une matrice de type , alors leur produit, noté est une matrice de type donnée par :

La figure suivante montre comment calculer les coefficients et de la matrice produit si est une matrice de type , et est une matrice de type .

Matrix multiplication diagram.svg

Exemples[modifier | modifier le code]

En général, la multiplication des matrices n'est pas commutative, c'est-à-dire que n'est pas égal à , comme le montre l'exemple suivant.

          tandis que          

Multiplication de matrices par bloc[modifier | modifier le code]

Si l'on considère les matrices et , où et sont des matrices vérifiant :

  • Le nombre de colonnes de et est égal au nombre de lignes de et
  • Le nombre de colonnes de et est égal au nombre de lignes de et

on a alors l'égalité

On remarquera l'analogie entre le produit de matrice par blocs et le produit de deux matrices carrées d'ordre 2.

N.B. : On ne définit pas ainsi une nouvelle forme de multiplication de matrices. Cela correspond simplement à une méthode de calcul du produit matriciel ordinaire pouvant simplifier les calculs.

Produit d'Hadamard[modifier | modifier le code]

Article détaillé : Produit matriciel de Hadamard.

Pour deux matrices de même type, nous avons le produit d'Hadamard ou produit composante par composante. Le produit d'Hadamard de deux matrices et de type , noté A · B = (cij), est une matrice de type donnée par

Par exemple :

Ce produit est une sous-matrice du produit de Kronecker (voir ci-dessous).

Produit de Kronecker[modifier | modifier le code]

Article détaillé : Produit de Kronecker.

Pour deux matrices arbitraires et , nous avons le produit tensoriel ou produit de Kronecker AB qui est défini par

Si est une matrice de type et est une matrice de type alors AB est une matrice de type . À nouveau cette multiplication n'est pas commutative.

Par exemple

.

Si et sont les matrices d'applications linéaires V1W1 et V2W2, respectivement, alors AB représente le produit tensoriel des deux applications, V1V2W1W2.

Propriétés communes[modifier | modifier le code]

Les trois multiplications matricielles précédentes sont associatives

,

distributives par rapport à l'addition :

et compatibles avec la multiplication par un scalaire :

Multiplication par un scalaire[modifier | modifier le code]

La multiplication par un scalaire d'une matrice donne le produit

.

Si nous travaillons avec des matrices sur un anneau, alors la multiplication par un scalaire est parfois appelée la multiplication à gauche tandis que la multiplication à droite est définie par :

.

Quand l'anneau fondamental est un anneau commutatif, par exemple, le corps des réels ou des complexes, les deux multiplications sont identiques.

Cependant, si l'anneau n'est pas commutatif, tel que celui des quaternions, alors ils peuvent être différents. Par exemple

Aspects algorithmiques[modifier | modifier le code]

Le problème qui consiste, étant donné deux matrices carrées, à les multiplier rapidement, est un problème important en algorithmique. L'algorithme qui découle de la définition a une complexité en temps en O(n³), où n est le nombre de lignes des matrices. Une borne inférieure est O(n²). L'exposant optimal pour la complexité est un problème ouvert. De nombreux algorithmes ont été inventés pour ce problème, citons par exemple l'algorithme de Strassen et l'algorithme de Coppersmith-Winograd[2].

Notes et références[modifier | modifier le code]

  1. Alain Connes, Triangle de pensées, Edition Odile Jacob, p.72.
  2. Markus Bläser, « Fast Matrix Multiplication », Theory of Computing, Graduate Surveys (en), vol. 5,‎ , p. 1-60 (lire en ligne)

Voir aussi[modifier | modifier le code]

Article connexe[modifier | modifier le code]

Addition matricielle

Liens externes[modifier | modifier le code]