# Produit matriciel de Hadamard

En mathématiques, le produit matriciel de Hadamard, nommé d'après le mathématicien français Jacques Hadamard et parfois désigné produit de Schur, est une opération binaire qui pour deux matrices de mêmes dimensions, associe une autre matrice, de même dimension, et où chaque coefficient est le produit terme à terme des deux matrices. En cela, il est à distinguer du produit matriciel usuel.
Le produit matriciel de Hadamard est associatif et distributif, et contrairement au produit matriciel classique, commutatif.

## Définition

Formellement, pour deux matrices de mêmes dimensions
    $A,B\in {\mathbb {C} }^{m\times n}$
le produit de Hadamard $A\cdot B$ est une matrice
    $A\cdot B\in {\mathbb {C} }^{m\times n},$
dont les coefficients sont
    $(A\cdot B)_{i,j}=(A)_{i,j}\times (B)_{i,j}.$

## Propriétés

* Le produit de Hadamard est commutatif, associatif et distributif sur l'addition :
** $A\cdot B=B\cdot A,$
** $A\cdot (B\cdot C)=(A\cdot B)\cdot C,$
** $A\cdot (B+C)=A\cdot B+A\cdot C.$
* L'élément neutre pour le produit de Hadamard de deux matrices de taille m × n est une matrice m × n dont tous les éléments sont égaux à 1, contrairement à la matrice identité, qui est l'élément neutre du produit matriciel classique et dont les coefficients valent 1 sur la diagonale et 0 sinon. Ainsi, une matrice admet une inverse pour le produit de Hadamard si et seulement si tous ses éléments sont non nuls.
* $(A\cdot B)^{T}=A^{T}\cdot B^{T}\quad {\rm {et}}\quad (A\cdot B)^{*}=A^{*}\cdot B^{*}$, où M$^T$ (respectivement M*) désigne la matrice transposée (resp. la matrice adjointe) de M. En particulier, le produit de Hadamard de deux matrices n × n symétriques (resp. hermitiennes) est une matrice symétrique (resp. hermitienne).
* Si D est diagonale alors $D(A\cdot B)=(DA)\cdot B.$
* En notant e$_j$ le j-ème vecteur de la base canonique de ℂ$^n$ et, pour tout vecteur x, D$_x$ la matrice diagonale dont les éléments diagonaux sont les coordonnées de x, on remarque que l'élément d'indice i, j du produit de Hadamard est égal au i-ème élément diagonal de AD$_{ej}$B$^T$ :$(A\cdot B)_{i,j}=(AD_{e_{j}}B^{T})_{i,i}=\mathrm {Tr} (D_{e_{i}}AD_{e_{j}}B^{T}).$On en déduit immédiatement :
** $x^{*}(A\cdot B)y=\mathrm {Tr} (D_{x}^{*}AD_{y}B^{T})$ ;
** la somme des coefficients de la i-ème ligne du produit de Hadamard est égale au i-ème élément diagonal de AB$^T$ :$\sum _{j}(A\cdot B)_{i,j}=(AB^{T})_{i,i}.$
** la somme de tous les éléments du produit de Hadamard est la trace de AB$^T$.
* Le produit de Hadamard est une sous-matrice principale du produit de Kronecker.

## Théorème du produit de Schur

Le produit de Hadamard de deux matrices n × n hermitiennes positives (resp. définies positives) est une matrice (n × n) hermitienne positive (resp. définie positive). C'est le théorème du produit de Schur démontré pour la première fois par Issai Schur.
Soient A et B deux matrices n × n hermitiennes positives. Comme A et B$^T$ sont hermitiennes positives, il existe des matrices M et N telles que A = M*M et B$^T$ = N*N (par exemple : leurs racines carrées).
Pour toute matrice colonne x de taille n, le nombre x*(A∙B)x est égal à la trace de $D_{x}^{*}AD_{x}B^{T}=(D_{x}^{*}AD_{x}N^{*})N$ donc à celle de $N(D_{x}^{*}AD_{x}N^{*})=(ND_{x}^{*}M^{*})(MD_{x}N^{*})=(MD_{x}N^{*})^{*}(MD_{x}N^{*}).$ Comme cette dernière est hermitienne positive, sa trace est positive. On a donc montré que x*(A∙B)x ≥ 0 pour tout x, ce qui prouve que A∙B est hermitienne positive.
Si de plus A et B sont inversibles alors M et N aussi, et le calcul ci-dessus montre alors que pour tout x non nul, x*(A∙B)x > 0, ce qui prouve que A∙B est définie positive (un autre argument pour ce complément est l'inégalité ci-dessous).
Pour deux matrices hermitiennes positives A et B, on a aussi
    $\det(A\cdot B)\geq \det(AB)$$^,$.

## Applications

Le produit de Hadamard est utilisé en compression de données comme le JPEG.
Il est également utilisé en apprentissage automatique dans la formalisation de certains modèles, notamment dans le cadre des réseaux de neurones artificiels.