En mathématiques, une matrice vide[1],[2] est définie comme une matrice dont l'une des dimensions ou est nulle ; il s'agit donc de matrices de dimension , ou de manière triviale .
Ces matrices sont utiles pour travailler avec l'espace nul ( étant un corps commutatif quelconque, habituellement ou ). Elles permettent donc d'appliquer les matrices à cet espace vectoriel trivial. D'un point de vue pratique, les matrices vides étendent la validité de théorèmes à des cas limites ; elles permettent par exemple d'utiliser des équations de dynamique à des situations statiques[4]. En informatique, une matrice vide peut être le résultat d'une recherche infructueuse ou bien survenir au début ou à la fin d'un algorithme itératif ; l'extension des règles de l'algèbre aux cas limite des matrices vides permet donc d'éviter de traiter ces cas comme des exceptions[4].
Une matrice vide en tant que représentant d'une application linéaire
L'espace nul ne contient qu'un seul élément, le « vecteur vide » (le vecteur n'ayant aucune coordonnée[5]). Un espace vectoriel ayant nécessairement un élément neutre, ce vecteur vide est le vecteur nul de noté :
L'espace nul est de dimension 0. Soit un -espace vectoriel quelconque. Il n'existe qu'une seule application linéaire de dans , celle transformant tout vecteur de en ce vecteur nul (c'est l'application nulle). L'ensemble des applications linéaires de dans est donc un singleton.
avec
Si l'on appelle la dimension de , alors il existe une unique matrice de dimension qui représente cette application linéaire unique, c'est une matrice vide que l'on pourra noter .
De même, il n'existe qu'une seule application linéaire de dans , l'image de par cette application étant le vecteur nul de E puisque l'unique élément de est le vecteur nul (c'est donc également l'application nulle). L'ensemble des applications linéaires de dans est également un singleton.
avec
Il existe donc une unique matrice de dimension représentant cette application linéaire, la matrice vide .
En tant que représentant d'une application nulle, une matrice vide est une matrice nulle :
La matrice vide de dimension , notée , représente en particulier l'identité de l'espace nul. C'est donc une matrice inversible (régulière), donc carrée. Elle représente également l'application nulle, donc :
Dans l'anneau nul des matrices de dimension , l'unique élément est neutre à la fois pour le produit et pour la somme.
Propriétés des matrices vides
Dans ce qui suit, la notation « () » désigne une matrice vide quelconque.
l'image de toute matrice vide est réduite au vecteur nul : ; le rang de toute matrice vide est donc nul : ;
le noyau d'une matrice vide est l'espace tout entier : si est vide, ;
la transposée d'une matrice vide est encore vide ;
le produit dépend de la dimension de la matrice vide considérée : pour une matrice A de dimension et une matrice B de dimension , au moins un des entiers , et étant nul ; est une matrice de dimension et donc :
si , alors est une matrice de dimension donc une matrice vide : ,
si , alors est une matrice de dimensions , c'est également une matrice vide : ,
mais si et si et , alors la matrice est la matrice nulle de dimension
; concrètement, la multiplication des matrices correspond à la composition d'applications linéaires, nous avons ici la composition de deux applications nulles, la résultante est logiquement l'application nulle de l'espace de départ vers l'espace d'arrivée ;
L'addition de matrices est une loi de composition interne, les matrices ont donc la même dimension. Ainsi, on ne peut écrire « » ou bien « » que si est elle-même une matrice vide identique, le résultat est donc également une matrice vide.
certains retiennent la convention par calcul[2] (puisque la norme est nulle),
d'autres retiennent par application de la notion de conditionnement[6] (une précision parfaite correspondant à un score de 1 et la matrice vide est une identité, les matrices unités ayant toutes un conditionnement de 1) ;
Jusqu'à sa version 4, Matlab n'acceptait qu'une matrice vide notée []. À partir de sa version 5, il distingue les matrices vides (notée []), et [7]. On peut obtenir une matrice vide par
Le logiciel vérifie la compatibilité des dimensions des matrices vides pour le produit et la somme. Si l'on ajoute un scalaire à la matrice vide — ce qui revient dans Matlab à ajouter le scalaire à tous les éléments de la matrice vide —, Matlab retourne la matrice vide.
>>5+cc=Emptymatrix:0-by-1
Concernant le produit, on a :
>>c*c'ans=[]>>c'*cans=0
On a également sum(c) == 0 et prod(c) == 1 car ce sont les éléments neutres de la somme et du produit respectivement.
Seule la matrice vide est considérée comme carrée et inversible. On a alors det([]) == 1, inv([]) == [] et cond([]) == 0.
GNU Octave dispose également de ces trois matrices vide avec un comportement similaire[8].
Scilab
Le logiciel Scilab ne définit qu'une seule matrice vide notée []. L'exemple précédent donne dans Scilab :
Notez que matrix() est la matrice ; Maxima n'est pas cohérent puisque charpoly(A, x), qui calcule le polynôme caractéristique d'une matrice, renvoie une erreur indiquant que A n'est pas carrée mais a pour dimension . L'expression matrix([]) donne la matrice qui contient le vecteur vide et qui, pour Maxima, est différente de matrix(). La transposée d'une matrice donne la matrice .
Python
La bibliothèquenumpy permet de créer une matrice vide (ci-dessous, la matrice se compose de zéro lignes et 5 colonnes) :
import numpy as np
x = np.empty((0, 5))
La bibliothèque pytorch permet de créer un tenseur vide de zéro lignes et 5 colonnes :
import numpy as np
import torch
x = np.empty((0, 5))
x = torch.empty(size=(0,5))
x = torch.zeros((0,5))
[Nett et Haddad 1993] (en) C. N. Nett et W. M. Haddad, « A system-theoretic appropriate realization of the empty matrix concept », IEEE Transactions on Automatic Control, vol. 38, no 5, , p. 771-775 (DOI10.1109/9.277245, lire en ligne)