18.11.2023 Views

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!