Matrice vide
En mathématiques, une matrice vide est définie comme une matrice dont l'une des dimensions m ou n est nulle ; il s'agit donc de matrices de dimension m × 0, 0 × n ou bien 0 × 0.

Une matrice pouvant être définie abstraitement par une famille finie d'éléments d'un ensemble K (souvent un anneau commutatif ou un corps) indexée par un produit cartésien I × J où I et J sont des ensembles finis, une matrice vide correspond au cas où soit I soit J est l'ensemble vide.

Ces matrices sont utiles pour travailler avec l'espace nul K0 (K é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. 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.

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). 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. Considérons maintenant 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 K0 est donc un singleton.
 avec

Si l'on appelle n la dimension de E, 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 applications 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 0×0, que l'on peut noter , représente en particulier l'identité  de l'espace nul. C'est donc une matrice inversible (régulière), donc carrée. Puisqu'elle représente également l'application nulle, nous avons donc :

c'est-à-dire que dans l'anneau nul des matrices de dimension 0×0, 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 de dimension quelconque ()n, 0, ()0, n ou ()0, 0.
 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 dépend de ses dimensions :
 },
  ;
 la norme de toute matrice vide est nulle : ║()║ = 0 ;
 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 (m × n) et une matrice B de dimension (n × p), au moins un des entiers m, n et p étant nul ; AB est une matrice de dimension (m × p) et donc :
 si m = 0 , alors AB est une matrice de dimension (0 × p) donc une matrice vide : ()0, n × B = ()0, p,
 si p = 0, alors AB est une matrice de dimensions (m × 0), c'est également une matrice vide : A × ()n, 0 = ()m, 0,
 mais si n = 0 et si m ≠ 0 et p ≠ 0, alors la matrice AB est la matrice nulle de dimension (m × p)
 ()m, 0 × ()0, p = 0m, p ; 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 K vers l'espace d'arrivée K ;
Concernant la somme : l'addition de matrices est une loi de composition interne, les matrices ont donc nécessairement la même dimension. Ainsi, on ne peut écrire « A + () » ou bien « () + A » que si A est elle-même une matrice vide identique, le résultat est donc également une matrice vide.

Pour la matrice vide de dimension 0 × 0 :
()0, 0 = I (matrice identité) donc :
la matrice est sa propre inverse : ()0, 0 = ()0, 0,
la matrice ()0, 0 à valeurs réelles est orthogonale ;
 conditionnement :
 certains retiennent la convention cond()0, 0 = 0 par calcul (puisque la norme est nulle),
 d'autres retiennent cond()0, 0 = 1 par application de la notion de conditionnement (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) ;
 déterminant : det ()0, 0 = 1 ; c'est une conséquence de la notion de produit vide dans la formule de Leibniz et c'est cohérent avec le fait que c'est une matrice identité ;
 son polynôme caractéristique est 1 d'après le point précédent ;
 ce polynôme n'a pas de racine donc la matrice n'a pas de valeur propre (et donc pas de vecteur propre) ;
 la matrice vide est nulle donc à la fois symétrique et antisymétrique, et de trace nulle.

Dans les langages de programmation

Matlab 

Jusqu'à sa version 4, Matlab n'acceptait qu'une matrice vide notée []. À partir de sa version 5, il distingue les matrices vides 0 × 0 (notée []), 0 × 1 et 1 × 0. On peut obtenir une matrice vide 0 × 1 par
>> zeros(0, 1)

ans =

   Empty matrix: 0-by-1
>> a = ones(3, 2)
a =

     1     1
     1     1
     1     1
>> b = zeros(3, 2)
b =

     0     0
     0     0
     0     0
>> c = find(a<b)
c =

   Empty matrix: 0-by-1
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 + c
c =

   Empty matrix: 0-by-1
Concernant le produit, on a :
>> c*c'

ans =

     []

>> c'*c

ans =

     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 0 × 0 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.

Scilab 

Le logiciel Scilab ne définit qu'une seule matrice vide notée []. L'exemple précédent donne dans Scilab :
--> zeros(0, 1)
 ans  =

    []
--> a = ones(3, 2)
 a  = 

   1.   1.
   1.   1.
   1.   1.
--> b = zeros(3, 2)
 b  = 

   0.   0.
   0.   0.
   0.   0.
--> c = find(a<b)
 c  = 

    []
Le logiciel autorise le produit et la somme avec une matrice vide sans vérifier les dimensions. On a :
 [] + A == A + [] == A jusqu'à sa version 5.5.2 et
 [] + A == A + [] == [] à partir de sa version 6.0.0 ;
 A*[] == []*A == [] ;
 sum([]) == 0 et prod([]) == 1 ;
 det([]) == 0 ;
 inv([]) == [] ;
 cond([]) == 1.

R 

Le logiciel R permet de créer des matrices vides de toutes dimensions. Par exemple :
> M <- matrix(, nrow = 3, ncol = 0) # matrice vide 3 × 0
> print(M)
    
[1,]
[2,]
[3,]

> sum(M)
[1] 0

> prod(M)
[1] 1

> N <- aperm(M, c(2, 1)) # transposée, matrice vide 0 × 3
> print(N)
     [,1] [,2] [,3]

> N %*% M # produit matriciel
<0 x 0 matrix>

> M %*% N
     [,1] [,2] [,3]
[1,]    0    0    0
[2,]    0    0    0
[3,]    0    0    0

> O <- matrix(, nrow = 0, ncol = 0) # matrice vide 0 × 0
> print(O)
<0 x 0 matrix>

> det(O) # déterminant
[1] 1
> A <- matrix(1:6, nrow=2) # matrice 2 × 3
> print(A)
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> A %*% M
    
[1,]
[2,]

Maxima 

Le logiciel Maxima ne permet de créer que des matrices colonne vides ()n, 0 et la matrice carrée vide ()0, 0 :
(%i1) A:matrix()
(%o1) matrix()

(%i2) length(A)
(%o2) 0

(%i3) B:matrix([], [], [])
      ┌ ┐
      │ │
(%o3) │ │
      │ │
      └ ┘

(%i2) length(B)
(%o2) 3

(%i5) transpose(B)
(%o5) matrix()

(%i6) C:matrix([])
(%o6) matrix([])

(%i7) length(C)
(%o7) 1
Notez que matrix() est la matrice ()0, 0 ; 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 1 × 0. L'expression matrix([]) donne la matrice 1 × 1 qui contient le vecteur vide et qui, pour Maxima, est différente de matrix(). La transposée d'une matrice ()n, 0 donne la matrice ()0, 0.

Python
La librairie numpy permet de créer une matrice vide (ci dessous, la matrice se compose de 0 lignes et 5 colonnes)

import numpy as np  
x = np.empty((0, 5))

Bibliographie

Notes et références 

Matrice
En mathématiques , une matrice vide est définie comme une matrice dont l' une de les dimensions m ou n est nulle ; il s' agit donc de matrices de dimension m ×× n ou bien× Une matrice pouvant être définie abstraitement par une famille finie d' éléments d' un ensemble K ( souvent un anneau commutatif ou un corps ) indexée par un produit cartésien I × J où I et J sont de les ensembles finis , une matrice vide correspond à le cas où soit I soit J est l' ensemble vide . Ces matrices sont utiles pour travailler avec l' espace nul K0 ( K é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 à de les cas limites ; elles permettent par exemple d' utiliser de les équations de dynamique à de les situations statiques . En informatique , une matrice vide peut être le résultat d' une recherche infructueuse ou bien survenir à le début ou à la fin d' un algorithme itératif ; l' extension de les règles de l' algèbre à les cas limite de les matrices vides permet donc d' éviter de traiter ces cas comme de les exceptions . 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 ) . 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 Considérons maintenant 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 de les applications linéaires de dans K0 est donc un singleton . avec Si l' on appelle n la dimension de E , 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 de les applications linéaires de dans est également un singleton . avec Il existe donc une unique matrice de dimension représentant cette applications 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 dimension0 , que l' on peut noter , représente en particulier l' identité de l' espace nul . C' est donc une matrice inversible ( régulière ) , donc carrée . Puisqu' elle représente également l' application nulle , nous avons donc \ : c'est-à-dire que dans l' anneau nul de les matrices de dimension0 , l' unique élément est neutre à la fois pour le produit et pour la somme . Propriétés de les matrices vides Dans ce qui suit , la notation « ( ) » désigne une matrice vide de dimension quelconque ( )n , ( )0 , n ou ( )0 , l' image de toute matrice vide est réduite à le vecteur nul \ : } ; le rang de toute matrice vide est donc nul \ :; le noyau d' une matrice vide dépend de ses dimensions \ : } , ; la norme de toute matrice vide est nulle \ : ║ ( ) ║ = ; 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 ( m × n ) et une matrice B de dimension ( n × p ) , à le moins un de les entiers m , n et p étant nul ; AB est une matrice de dimension ( m × p ) et donc \ : si m = , alors AB est une matrice de dimension× p ) donc une matrice vide \ : ( )0 , n × B = ( )0 , p , si p = alors AB est une matrice de dimensions ( m × c' est également une matrice vide \ : A × ( )n , = ( )m , mais si n = et si m ≠ et p ≠ alors la matrice AB est la matrice nulle de dimension ( m × p ) ( )m , × ( )0 , p = , p; concrètement , la multiplication de les 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 K vers l' espace d' arrivée K; Concernant la somme \ : l' addition de matrices est une loi de composition interne , les matrices ont donc nécessairement la même dimension . Ainsi , on ne peut écrire « A + ( ) » ou bien « ( ) + A » que si A est elle-même une matrice vide identique , le résultat est donc également une matrice vide . Pour la matrice vide de dimension× : ( )0 , = I ( matrice identité ) donc \ : la matrice est sa propre inverse \ : ( )0 , = ( )0 , la matrice ( ) 0 ,à valeurs réelles est orthogonale ; conditionnement \ : certains retiennent la convention cond( )0 ,= par calcul ( puisque la norme est nulle ) , d' autres retiennent cond( )0,= par application de la notion de conditionnement ( une précision parfaite correspondant à un score deet la matrice vide est une identité , les matrices unités ayant toutes un conditionnement de ; déterminant \ : det ( )0 , = ; c' est une conséquence de la notion de produit vide dans la formule de Leibniz et c' est cohérent avec le fait que c' est une matrice identité ; son polynôme caractéristique estd'après le point précédent ; ce polynôme n' a pas de racine donc la matrice n' a pas de valeur propre ( et donc pas de vecteur propre ) ; la matrice vide est nulle donc à la fois symétrique et antisymétrique , et de trace nulle . Dans les langages de programmation Matlab Jusqu' à sa version Matlab n' acceptait qu' une matrice vide notée [ ] . À partir de sa version il distingue les matrices vides ×( notée [ ] ) ,×et× On peut obtenir une matrice vide×par >> zeros( 0 , ans = Empty matrix:by-1 >> a = ones ( 3 , a = 1 1 1 >> b = zeros(3 , b = 0 0 0 >> c = find( a<b ) c = Empty matrix:by-1 Le logiciel vérifie la compatibilité de les dimensions de les 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. >> + c c = Empty matrix:by-1 Concernant le produit , on a \ : >> c*c ' ans = [ ] >> c' *c ans = 0 On a également sum( c ) = = et prod(c ) ==car ce sont les éléments neutres de la somme et de le produit respectivement . Seule la matrice vide×est considérée comme carrée et inversible . On a alors det ( [ ] ) = = inv( [ ] ) = = [ ] et cond ( [ ] ) = = GNU Octave dispose également de ces trois matrices vide avec un comportement similaire . Scilab Le logiciel Scilab ne définit qu' une seule matrice vide notée [ ] . L' exemple précédent donne dans Scilab \ : -- > zeros ( 0 , ans = [ ] - -> a = ones ( 3 , a = - -> b = zeros(3 , b = -- > c = find( a<b ) c = [ ] Le logiciel autorise le produit et la somme avec une matrice vide sans vérifier les dimensions . On a \ : [ ] + A = = A + [ ] = = A jusqu' à sa version5.2 et [ ] + A = = A + [ ] = = [ ] à partir de sa version0.0 ; A*[ ] = = [ ] *A = = [ ] ; sum ( [ ] ) = = et prod( [ ] ) = =; det ([ ] ) = =; inv([ ] ) = = [ ] ; cond ( [ ] ) = = R Le logiciel R permet de créer de les matrices vides de toutes dimensions . Par exemple \: > M <- matrix ( , nrow = ncol = # matrice vide× 0 > print ( M ) [ 1 , ] [ 2 , ] [ 3 , ] > sum( M ) [ 1 ] 0 > prod(M ) [ 1 ] 1 > N <- aperm( M , c( 2 , # transposée , matrice vide × 3 > print ( N ) [ ,1 ] [ ,2 ] [ ,3 ] > N %* % M # produit matriciel <0 xmatrix> > M %* % N [ ,1 ] [ ,2 ] [ ,3 ] [ 1 , ] 0 [ 2 , ] 0 [ 3 , ] 0 > O <- matrix ( , nrow = ncol = # matrice vide× 0 > print ( O ) <0 xmatrix> > det ( O ) # déterminant [ 1 ] 1 > A <- matrix( 1:6 , nrow=2 ) # matrice × 3 > print ( A ) [ ,1 ] [ ,2 ] [ ,3 ] [ 1 , ] 5 [ 2 , ] 6 > A %* % M [ 1 , ] [ 2 , ] Maxima Le logiciel Maxima ne permet de créer que de les matrices colonne vides ( ) n,et la matrice carrée vide ( )0 , : ( % i1 ) A:matrix ( ) ( % o1 ) matrix ( ) ( % i2 ) length ( A ) ( % o2 ) 0 ( % i3 ) B:matrix ( [ ] , [ ] , [ ] ) ┌ ┐ │ │ ( % o3 ) │ │ │ │ └ ┘ ( %i2 ) length ( B ) ( % o2 ) 3 ( %i5 ) transpose ( B ) ( % o5 ) matrix ( ) ( % i6 ) C:matrix ( [ ] ) ( % o6 ) matrix ( [ ] ) ( %i7 ) length ( C ) ( % o7 ) 1 Notez que matrix ( ) est la matrice ( )0 , ; 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 ( ) n,donne la matrice ( )0 , Python La librairie numpy permet de créer une matrice vide ( ci dessous , la matrice se compose delignes etcolonnes ) import numpy as np x = np.empty (( 0 , Bibliographie Notes et références Matrice