Articulo de referencia

Matrices de duplicación y eliminación

En matemáticas , especialmente en álgebra lineal y teoría de matrices , la matriz de duplicación y la matriz de eliminación son transformaciones lineales que se utilizan para tr...

En matemáticas , especialmente en álgebra lineal y teoría de matrices , la matriz de duplicación y la matriz de eliminación son transformaciones lineales que se utilizan para transformar semivectorizaciones de matrices en vectorizaciones o (respectivamente) viceversa.

Matriz de duplicación

La matriz de duplicaciónDnorte{\displaystyle D_{n}}es el úniconorte2×norte(norte+1)2{\displaystyle n^{2}\times {\frac {n(n+1)}{2}}}matriz que, para cualquiernorte×norte{\displaystyle n\times n}matriz simétricaA{\displaystyle A}, transformavmidoh(A){\displaystyle \mathrm {vech} (A)}envmido(A){\displaystyle \mathrm {vec} (A)}:

Dnortevmidoh(A)=vmido(A){\displaystyle D_{n}\mathrm {vech} (A)=\mathrm {vec} (A)}.

Para el2×2{\displaystyle 2\times 2}matriz simétricaA=[abbd]{\displaystyle A=\left[{\begin{smallmatrix}a&b\\b&d\end{smallmatrix}}\right]}, esta transformación se lee

Dnortevmidoh(A)=vmido(A)[100010010001][abd]=[abbd]{\displaystyle D_{n}\mathrm {vech} (A)=\mathrm {vec} (A)\implies {\begin{bmatrix}1&0&0\\0&1&0\\0&1&0\\0&0&1\end{bmatrix}}{\begin{bmatrix}a\\b\\d\end{bmatrix}}={\begin{bmatrix}a\\b\\b\\d\end{bmatrix}}}

La fórmula explícita para calcular la matriz de duplicación para unanorte×norte{\displaystyle n\times n}La matriz es:

DnorteT=ijij(vmidoTij)T{\displaystyle D_{n}^{T}=\sum \limits _{i\geq j}u_{ij}(\mathrm {vec} T_{ij})^{T}}

Dónde:

  • ij{\displaystyle u_{ij}}es un vector unitario de orden12norte(norte+1){\displaystyle {\frac {1}{2}}n(n+1)}tener el valor1{\displaystyle 1}en la posición(j1)norte+i12j(j1){\displaystyle (j-1)n+i-{\frac {1}{2}}j(j-1)}y 0 en cualquier otro lugar;
  • Tij{\displaystyle T_{ij}}es unnorte×norte{\displaystyle n\times n}matriz con 1 en posición(i,j){\displaystyle (i,j)}y(j,i){\displaystyle (j,i)}y cero en cualquier otro lugar

Aquí hay una función de C++ que utiliza Armadillo (biblioteca de C++) :

arma :: mat duplication_matrix ( const int & n ) { arma :: mat out (( n * ( n + 1 )) / 2 , n * n , arma :: fill :: zeros ); for ( int j = 0 ; j < n ; ++ j ) { for ( int i = j ; i < n ; ++ i ) { arma :: vec u (( n * ( n + 1 )) / 2 , arma :: fill :: zeros ); u ( j * n + i - (( j + 1 ) * j ) / 2 ) = 1.0 ; arma :: mat T ( n , n , arma :: fill :: zeros ); T ( i , j ) = 1.0 ; T ( j , i ) = 1.0 ; out += u * arma :: trans ( arma :: vectorise ( T )); } } return out . t (); }

Matriz de eliminación

Una matriz de eliminaciónLnorte{\displaystyle L_{n}}es unnorte(norte+1)2×norte2{\displaystyle {\frac {n(n+1)}{2}}\times n^{2}}matriz que, para cualquiernorte×norte{\displaystyle n\times n}matrizA{\displaystyle A}, transformavmido(A){\displaystyle \mathrm {vec} (A)}envmidoh(A){\displaystyle \mathrm {vech} (A)}:

Lnortevmido(A)=vmidoh(A){\displaystyle L_{n}\mathrm {vec} (A)=\mathrm {vech} (A)}. [ 1 ] 

Según la definición explícita (constructiva) dada por Magnus y Neudecker (1980) , el12norte(norte+1){\displaystyle {\frac {1}{2}}n(n+1)}pornorte2{\displaystyle n^{2}}matriz de eliminaciónLnorte{\displaystyle L_{n}}es dado por

Lnorte=ijijvmido(miij)T=ij(ijmijTmiiT),{\displaystyle L_{n}=\sum _{i\geq j}u_{ij}\mathrm {vec} (E_{ij})^{T}=\sum _{i\geq j}(u_{ij}\otimes e_{j}^{T}\otimes e_{i}^{T}),}

dóndemii{\displaystyle e_{i}}es un vector unitario cuyoi{\displaystyle i}El -ésimo elemento es uno y ceros en los demás casos, ymiij=miimijT{\displaystyle E_{ij}=e_{i}e_{j}^{T}}.

Aquí hay una función de C++ que utiliza Armadillo (biblioteca de C++) :

arma :: mat removal_matrix ( const int & n ) { arma :: mat out (( n * ( n + 1 )) / 2 , n * n , arma :: fill :: zeros ); for ( int j = 0 ; j < n ; ++ j ) { arma :: rowvec e_j ( n , arma :: fill :: zeros ); e_j ( j ) = 1.0 ; for ( int i = j ; i < n ; ++ i ) { arma :: vec u (( n * ( n + 1 )) / 2 , arma :: fill :: zeros ); u ( j * n + i - (( j + 1 ) * j ) / 2 ) = 1.0 ; arma :: rowvec e_i ( n , arma :: fill :: zeros ); e_i ( i ) = 1.0 ; out += arma :: kron ( u , arma :: kron ( e_j , e_i )); } } return out ; }

Para el2×2{\displaystyle 2\times 2}matrizA=[abdod]{\displaystyle A=\left[{\begin{smallmatrix}a&b\\c&d\end{smallmatrix}}\right]}, una opción para esta transformación viene dada por

Lnortevmido(A)=vmidoh(A)[100001000001][adobd]=[adod]{\displaystyle L_{n}\mathrm {vec} (A)=\mathrm {vech} (A)\implies {\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\end{bmatrix}}{\begin{bmatrix}a\\c\\b\\d\end{bmatrix}}={\begin{bmatrix}a\\c\\d\end{bmatrix}}}.

Notas

Referencias

  • Magnus, Jan R.; Neudecker, Heinz (1980), "La matriz de eliminación: algunos lemas y aplicaciones" , SIAM Journal on Algebraic and Discrete Methods , 1 (4): 422– 449, doi : 10.1137/0601049 , ISSN 0196-5212 .
  • Jan R. Magnus y Heinz Neudecker (1988), Cálculo diferencial matricial con aplicaciones en estadística y econometría , Wiley. ISBN 978-0-471-98633-1.
  • Jan R. Magnus (1988), Estructuras lineales , Oxford University Press. ISBN 978-0-19-520655-5