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ónes el únicomatriz que, para cualquiermatriz simétrica, transformaen:
- .
Para elmatriz simétrica, esta transformación se lee
La fórmula explícita para calcular la matriz de duplicación para unaLa matriz es:
Dónde:
- es un vector unitario de ordentener el valoren la posicióny 0 en cualquier otro lugar;
- es unmatriz con 1 en posiciónyy 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ónes unmatriz que, para cualquiermatriz, transformaen:
Según la definición explícita (constructiva) dada por Magnus y Neudecker (1980) , elpormatriz de eliminaciónes dado por
dóndees un vector unitario cuyoEl -ésimo elemento es uno y ceros en los demás casos, y.
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 elmatriz, una opción para esta transformación viene dada por
- .
Notas
- ↑ Magnus y Neudecker (1980) , Definición 3.1
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
- Matrices (matemáticas)