Una matriz de almacenamiento empaquetada , también conocida como matriz empaquetada , es un término utilizado en programación para representar unamatriz . Es una forma más compacta que una matriz rectangular de m por n al explotar una estructura especial de la matriz.
Algunos ejemplos típicos de matrices que pueden aprovechar el almacenamiento compacto son:
Matrices triangulares empaquetadas
La matriz de almacenamiento compacta permite convertir una matriz en un arreglo, reduciendo significativamente el tamaño de la matriz. Al hacerlo, un cuadradoLa matriz se convierte en un arreglo de longitud n ( n+1) / 2. [ 1 ]
Considere la siguiente matriz superior:
que se pueden empaquetar en una sola matriz:
De forma similar, la matriz inferior:
se puede empaquetar en la siguiente matriz unidimensional:
Ejemplos de código (Fortran)
Los dos esquemas de almacenamiento que se describen a continuación se utilizan ampliamente en BLAS y LAPACK.
Un ejemplo de almacenamiento compacto para matriz hermitiana:
complejo :: A ( n , n ) ! una matriz hermitiana complejo :: AP ( n * ( n + 1 ) / 2 ) ! almacenamiento empaquetado para A ! el triángulo inferior de A se almacena columna por columna en AP. ! desempaquetando la matriz AP en A hacer j = 1 , n k = j * ( j - 1 ) / 2 A ( 1 : j , j ) = AP ( 1 + k : j + k ) A ( j , 1 : j - 1 ) = conjg ( AP ( 1 + k : j - 1 + k )) fin hacerUn ejemplo de almacenamiento compacto para matriz en bandas:
real :: A ( m , n ) ! una matriz de banda con kl subdiagonales y ku superdiagonales real :: AP ( - kl : ku , n ) ! almacenamiento empaquetado para A ! la banda de A se almacena columna por columna en AP. Algunos elementos de AP no se utilizan. ! desempaquetando la matriz AP en A do j = 1 , n forall ( i = max ( 1 , j - kl ): min ( m , j + ku )) A ( i , j ) = AP ( i - j , j ) end do print * , AP ( 0 ,:) ! la diagonalVéase también
Lecturas adicionales
- https://www.netlib.org/lapack/lug/
- https://www.netlib.org/blas/
- https://github.com/numericalalgorithmsgroup/LAPACK_Examples
Referencias
- ↑ Golub, Gene H.; Van Loan, Charles F. (2013). Cálculos matriciales (4.ª ed.). Baltimore, MD: Johns Hopkins University Press. pág. 170. ISBN 9781421407944.
- 1 2 Blackford, Susan (1999-10-01). "Packed Storage" . Netlib . Guía del usuario de LAPACK. Archivado del original el 2024-04-01 . Recuperado el 2024-10-01 .
- Matrices
- Matrices (matemáticas)
- Esbozos de matriz