Você está na página 1de 5

3.7 Tcnicas de Armazenamento Compacto Pode-se armazenar uma matriz esparsa utilizando-se trs vetores.

Dois vetores com elementos inteiros, representando a estrutura esparsa da matriz, e um vetor com elementos da matriz. O armazenamento pode ser feito por linhas ou colunas da matriz, para o exemplo a seguir ser realizado por linhas.

Exemplo: e!a a rede mostrada na figura, cu!os valores das suscet"ncias das linhas s#o dadas em pu.

$ matriz suscet"ncia nodal da rede % mostrada na ta&ela a&aixo. Os elementos diagonais da matriz s#o determinados pela soma das suscet"ncias das linhas 'ue incidem na &arra e os elementos fora da diagonal % o valor da suscet"ncia da linha 'ue liga as duas &arra com o sinal trocado.

)*

1 2 3 4 5 6

1 4 -2 -1 0 0 0

2 -2 4 0 0 -2 0

3 -1 0 4 -1 0 -2

4 0 0 -1 1 0 0

5 0 -2 0 0 2 0

6 0 0 -2 0 0 2

O&serve 'ue a &arra zero % a &arra de referncia do sistema e n#o % representada na matriz, caso for representada torna a matriz ) singular. O armazenamento esparso da matriz B pode ser realizado pelos vetores:

( ( . / , 3 / (( - (, + (-

( / . . , ( / . - / + . 3 ( 2 / 1 ( (0 . (( ( (. ( (, . (/ . (- . (+ .

( ( . . , , / ( - . + - 3 ( 2 , 1 / (0 + (( , (. / (, . (/ - (- , (+ +

4etor do 5n6cio de cada linha

4etor de elementos n#o nulos

4etor de Endere7amento de coluna

O armazenamento dos elementos diagonais podem ser realizados em um vetor independente, este procedimento pode facilitar na implementa7#o de m%todos de solu7#o.

( ( . , , - / 2 - 1 + (0

( / . / , / / ( - . + .

( . . ( , . / . - ( + ( 3 . 2 ( 1 . (0 .

( . . , , ( / - - ( + / 3 + 2 , 1 . (0 ,

4etor do 5n6cio de cada linha

4etor de elementos diagonais

4etor de Elementos n#o nulos da matriz

4etor de Endere7amento de coluna

Esta forma de armazenamento % 8til para m%todos de solu7#o de sistemas lineares iterativos, pois a estrutura esparsa da matriz de coeficientes n#o % alterada ao longo de todo o processo 9 estrutura esttica:. Para m%todos diretos h um enchimento da matriz e fica extremamente oneroso introduzir novos elementos na estrutura esparsa. ;ma modifica7#o, chamada de espa7o vazio 9push do<n:, pode ser feita no armazenamento apresentado. Espao Vazio
% % %

Primeira Lin a

Espao Vazio

% % % % % % % % . . % %

!e"#nda Lin a

Terceira Lin a $#arta Lin a

Ensima Lin a

$ elimina7#o % realizada linha por linha, e a cada elimina7#o o espa7o vazio desce. =om este procedimento h espa7o para acomodar os enchimentos 9fill in:. $p>s o processamento da segunda linha, tem-se:

% % % % % 0 %

Primeira Lin a !e"#nda Lin a &i'' in Espao Vazio

% % % % % . . % %

Terceira Lin a $#arta Lin a

Ensima Lin a

Este procedimento % realizado at% o processamento da en%sima linha. ;ma estrutura esparsa muito verstil para acrescentar novos elementos, sem grandes esfor7os computacionais, s#o as chamadas listas encadeadas. Este tipo de estrutura esparsa % muito utilizado na solu7#o de sistemas lineares esparsos utilizando m%todos diretos. ?esta nova estrutura h a necessidade de mais um vetor para o encadeamento. Para a matriz do exemplo, uma estrutura esparsa em forma encadeandas % dada pelos vetores: de listas

( ( . (- , - / 3 - (. + ((

(, . ( ,/ / . - ( + ( 3 ( 2( 1. (0 . (( . (. . (, . (/ / (- . (+ .

( ( . , , . / - - ( + / 3 , 2 / 1 - (0 + (( , (. . (, + (/ , (- ( (+ .

( (+ . 0 , / / 0 - (/ + (0 3 2 2 0 1 0 (0 0 (( (, (. 1 (, 0 (/ + (- , (+ .

4etor do 5n6cio de cada linha

4etor de elementos n#o nulos

4etor de Endere7amento de coluna

4etor de Encadeamento

?o vetor de encadeamento, o valor zero % utilizado como o indicador do t%rmino de armazenamento dos elementos da linha. ?esta estrutura, tam&%m pode-se separar o armazenamento dos elementos diagonais em um vetor distinto.