Métodos de almacenamiento de grandes sistemas lineales
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Métodos de
almacenamiento de
grandes sistemas
lineales
S Á N C H E Z C A S T I L L O C R I S T O N E P H T A L Í
• Los métodos iterativos son útiles para
resolver grandes sistemas de ecuaciones
lineales. Sin embargo, para resolverlos
se requiere el almacenamiento de
matrices de grandes dimensiones, lo que
conlleva a un alto costo computacional y
tiempo de construcción.
Introducción
• Hay métodos de almacenamiento de
grandes sistemas lineales los cuales, al
usarlos de forma adecuada, nos permiten
resolver sistemas de ecuaciones a gran
escala sin almacenar información
innecesaria.
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 2
Matriz banda
• Se le llama matriz banda a la
matriz n ∗ n donde los elementos
no nulos son confinados
alrededor de la diagonal
principal, formando una banda
de valores no nulos que
completan la diagonal principal
de la matriz y más diagonales en
los costados.
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 3
a ij = 0 ⟺ j < i − k 1 ó j > i + k 2 ; k 1 , k 2 ≥ 0
k 1 y k 2 son el semiancho de banda izquierdo y derecho, respectivamente.
Ancho de banda de una matriz = k 1 + k 2 + 1, se puede definir como el número menor de diagonales
adyacentes con elementos no nulos (diferentes de cero).
k 1 k 2 Matriz banda
0 0 Diagonal
1 1 Tridiagonal
2 2 Pentadiagonal
0 n-1 Triangular inferior
n-1 0 Triangular superior
Una matriz banda con k 1 = k 2 = p, se le puede llamar una matriz p-banda, caracterizándose que:
a ij = 0 ⇔ i − j > p; p ≥ 0
Almacenamiento de matrices banda
• Dada una matriz banda A de m ∗ n con k l subdiagonales y k u superdiagonales. Dicha
matriz se puede almacenar en una matriz A ′ de k l + k u + 1 renglones y n columnas.
• Las columnas de A se almacenan como columnas correspondientes de A′ y las
diagonales de A se almacenan como renglones de A′.
′
• a ij → a ku +1+i−j,j
para max 1, j − k u ≤ i ≤ min(m, j + k l ).
m=n=5, k l =2 y k u =1
Matrices triangulares
Se almacenan en el mismo formato, con k l =0 si es triangular superior o k u =0 si es triangular inferior.
Matrices simétricas o hermitianas
Teniendo k d subdiagonales o superdiagonales, se puede almacenar ya sea como triangular inferior o
superior.
′
• Triangular superior: a ij → a kd +1+i−j,j para max 1, j − k d ≤ i ≤ j.
′
• Triangular inferior: a ij → a 1+i−j,j para j ≤ i ≤ min(n, j + k d ).
Ejemplo. Cuando n = 5 y k d = 2
Matrices banda bidiagonales y tridiagonales
B I D I A G O N A L
• Una matriz bidiagonal simétrica se
almacena en dos matrices
unidimensionales: una de dimensión n que
contenga los elementos diagonales y otra de
dimensión n-1 con elementos fuera de la
diagonal.
T R I D I A G O N A L E S
• No simétrico: Tres matrices
unidimensionales: una diagonal de dimensión
n con elementos diagonales y dos de
dimensión n-1 con elementos subdiagonales
y superdiagonales de 1 a n-1.
• Simétrico: Mismo procedimiento que para
almacenamiento de matrices simétricas
bidiagonales.
Método de
almacenamiento
matricial Skyline o SKS.
• Método que permite almacenar matrices ralas
o banda de manera con menos requisitos de
almacenamiento que en los métodos de
almacenamiento de matrices en bandas.
• Tiene la particularidad de almacenar
únicamente las entradas (renglones o
columnas) desde el primer elemento distinto
de cero hasta el último elemento, también
distinto de cero.
• Se usa una renumeración de los elementos
con el fin de reducir el horizonte (definido
como el número de entradas distintas de cero
almacenadas).
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 9
Renumeración
• Permutación de columnas o renglones: Reducir ancho de banda.
• Cuthill-McKee: Transformación de la matriz sparse en una matriz banda.
Matriz rala o sparse
Los elementos distintos de cero se muestran
en la imagen como pixeles negros.
• Se le llama matriz rala o sparse a la
matriz cuyos elementos en su mayoría
son cero y el número de elementos
distintos de cero es aproximadamente
igual al número de renglones o de
columnas.
• El cociente entre el número de
elementos con valor cero y el número
total de elementos en una matriz (m ∗ n
para una matriz de m renglones y n
columnas), es la dispersidad (sparsity)
de la matriz.
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 11
Métodos de almacenamiento para matrices sparse.
• Diccionario de claves (DOK): Consta de un diccionario de pares renglón-columna donde a
cada valor diferente de cero se le asocia un par de localización (renglón,columna).
• LIL: Almacena una lista por renglón, donde cada entrada contiene el índice de la columna
y el valor.
• Lista de coordenadas (COO): Almacena una lista de tuplas (renglón, columna, valor).
Métodos de
almacenamiento para
matrices sparse.
• Método Morse, método Yale o CSR:
Representa una matriz M (m x n)
por tres matrices unidimensionales,
que contienen respectivamente
valores distintos de cero, la
extensión de los renglones y los
índices de las columnas.
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 13
Método Morse, ejemplo
En este caso:
Vector de elementos distintos de cero: V = [5 8 3 6]
Vector de índices de columna: ColInd= [1 2 3 2]
Vector de índices de fila o renglón: RowInd = [0 1 2 3 4] *
* Este vector es de longitud m+1, y cuenta de manera acumulada los
elementos distintos de cero, renglón a renglón.
Métodos de almacenamiento para matrices sparse.
• Método CSC: Similar al método CSR con la salvedad de que los valores se leen primero
por columna, se almacenan un índice de renglón o fila para cada valor distinto de cero y
un índice de columna correspondiente.
• Su estructura es:
(valor, indice renglon , indice columna )
• Es un formato usual para especificar una matriz sparse en MATLAB, mediante la función
“sparse”.
Formato Krylov o Ellpack-Itpack
• Se requieren dos matrices rectangulares de dimensión n ∗ n d , una de reales y otra de
enteros, donde n d es el máximo número de elementos no nulos por renglón, n d ≪ n.
• La primera columna de la matriz de reales contiene los elementos de la diagonal de la
matriz original, luego se coloca el resto de los elementos no nulos del renglón de manera
ordenada.
• En la matriz de enteros, se coloca el número de elementos no nulos del renglón, para
luego almacenar el índice de columna de cada elemento no nulo de la matriz original, en
cada renglón.
Ejemplo.
Arreglo de posiciones de los
valores no nulos de A
Arreglo de valores no nulos de A
9 / 2 5 / 2 0 2 3 S A M P L E F O O T E R T E X T 17
Referencias
• https://es.wikipedia.org/wiki/Matriz_banda, consultada el 19 de Septiembre del 2023.
• Blackford , Susan, Packed Storage. Netlib.com, http://www.netlib.org/lapack/lug/node1, consultada el 19 de Septiembre del 2023.
• Golubin , A. (29 de diciembre de 2017). Sparse data structure in Python. Rushter.com, https://rushter.com/blog/scipy-sparse-matrices/,
consultada el 19 de Septiembre del 2023.
• https://en.wikipedia.org/wiki/Sparse_matrix, consultada el 19 de Septiembre del 2023.
• http://www.juliafem.org/examples/2017-08-29-reordering-nodes-with-the-RCM-algorithm , consultada el 19 de Septiembre del 2023.
• https://en.wikipedia.org/wiki/Skyline_matrix, consultada el 19 de Septiembre del 2023.
• García León, D. (2003). Estrategias para la resolución de grandes sistemas de ecuaciones lineales. Métodos de Cuasi Mínimo Residuo
Modificados. Tesis para optar por el grado de doctora. Universidad de Las Palmas de Gran Canaria.
• Orozco Aguilar, O. (2013). Desarrollo de un simulador numérico usando el método multimalla. Tesis para optar por el grado de maestro.
Universidad Nacional Autónoma de México.