Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Matrizes Esparsas
Em suma, uma matriz esparsa é aquela que tem uma quantidade considerável de suas entradas iguais a
zero. Podem ser classificadas como estruturadas ou não estruturadas. Uma matriz esparsa estruturada
geralmente possui um padrão regular apresentado, em muitos casos, ao longo de um número pequenos
de diagonais.
Os métodos que serão utilizados estão listados abaixo.
Uma matriz simétrica (isto é, quando é quadrada e aij = aji ) An×n pode ser modelada como um
grafo G(V, E) de n vértices. Neste caso, sempre consideramos que a diagonal α = (a11 , . . . , ann ) não
tem nenhum elemento nulo e tomaremos como arestas os pares eij = (i, j) quando aij ̸= 0.
Em 1, em sua primeira linha, a11 ̸= 0 e a12 ̸= 0, logo o vértice 1 está conectado ao vértice 2; de
modo análogo na terceira lina a32 ̸= 0, a33 ̸= 0 e a34 ̸= 0, logo existirá uma aresta entre os vértices 3
e 2 e entre os vértices 3 e 4.
1
Figura 1: Figura retirada de [1].
3.1 Permutações
Definição 3.1 Seja A uma matriz e π = {i1 , i2 , . . . , in } uma permutação do conjunto {1, 2, . . . , n}.
Então as matrizes
a11 0 a13 0
0 a22 a23 a24
A=
a31
,
a32 a33 0
0 a42 0 a44
e π = {1, 3, 4, 2}, então sistema linear permutado (pela coluna) é:
a11 a13 0 0 x1 b1
0 a23 a22 a24 x 3 b2
=
a31 a32 a33 0 x 2 b3
0 a42 0 a44 x4 b4
Note que apenas as incógnitas foram permutadas e que, portanto, o lado direito da equação não
mudou.
Exemplo 3.3 Considere 2. Lá temos uma matriz e sua representação por grafos de adjacência.
Tomando a troca de variáveis x′i −→ x10−i , obtemos a matriz e o grafo de adjacência ilustradas em ??
A = LLT ,
com L sendo uma matriz triangular. O algoritmo é apresentado em 4.
2
Figura 2: Matriz original e sua representação por grafos de adjacência. Retirado de [1].
3
Exemplo 3.4 Consideremos o seguinte sistema Ax = b:
4 1 2 0, 5 2 x1 7
1 0, 5 0 0 0 x2 3
2 0 3 0 0 x3 = 7
0, 5 0 0 0, 625 0 x4 −4
2 0 0 0 16 x5 −4
Usando o método descrito em 4, obterı́amos a matriz triangular L abaixo:
2 0 0 0 0
0, 5 0, 5 0 0 0
L= 1 −1 1 0 0
0, 25 −0, 25 −0, 5 0, 5 0
1 −1 −2 −3 1
Observe que a matriz decomposta, L, sofreu um preenchimento, ou seja, possui elementos não
nulos em posições onde não haviam zeros em A. Desta forma, torna-se viável considerar uma matriz
permutada A′ . Neste caso, mais especificamente A′ = P A, onde
0 0 0 0 1
0 0 0 1 0
P = 0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
ou pode ser obtida tomando a regra x′i −→ x6−i . Tais reordenações de variáveis e equações equivalem
a uma permutação de linhas e colunas de A, a qual também é aplicada a x e a b. Tomando b′ = P b,
obtemos um novo sistema linear A′ x′ = b′ . Usando o método de Cholesky a este novo sistema, teremos
como retorno a seguinte matriz:
4 0 0 0 0
0, 5 0, 791 0 0 0
′
L = 0 0 1, 73 0 0
0 0 0 0, 707 0
0, 5 0, 632 1, 15 1, 41 1, 29
4
Figura 5: Técnica RCM (reverse Cuthill-McKee) para a parte principal do citado algoritmo. Retirada
de [3].
Quando o grafo for desconexo, basta utilizar o algoritmo acima para cada componente conexa do
referido. Em 5 temos uma técnica para a parte principal do algoritmo acima apresentado.
5
Figura 7: Uma matriz esparsa e seu grafo de adjacência. Exemplo retirado de [2].
Note que a cada passo k, o vértice de menor grau é selecionado no grafo de eliminação Gk . Veja
que uma eliminação G(v) é obtida de G a partir da remoção do vértice v e de todas as suas arestas
incidentes e, em seguida, novas arestas são adicionadas, convertendo todos vértices adjacentes a v em
uma clique. A ordenação resultante é uma sequência de vértices v0 , v1 , . . . , excluı́dos pelo algoritmo.
Outras técnicas derivadas do método do mı́nimo grau são, por exemplo, o mı́nimo grau original,
mı́nimo grau múltiplo e mı́nimo grau aproximado. Estes dependem de conceitos como eliminação em
massa, grau, grau externo, eliminação múltipla, conjunto alcançável e absorção de elementos, conceitos
estes que não serão abordados aqui por fugir do nosso escopo.
5 Estrutura de dados
Tomemos, inspirados na seção ”representação por grafos”, o exemplo ilustrado em 7. Iremos definir,
através dele, três tipos de estruturas de dados (usadas, também, para representar grafos) : tabelas de
conexão, lista de adjacências e lista encadeada.
6
Figura 8: Lista de adjacências de 7. Retirado de [2].
Figura 9: Segmento de código para determinar um vértice k usando lista de adjacências. Retirado de
[2].
• XADJ: Aponta para a posição inicial de cada lista de adjacência; seu comprimento será n + 1,
onde n é o número de arestas. Note que a (n + 1)-ésimo apontador denotará a posição seguinte
à última das listas de adjacências considerada;
• ADJ: Contém as listas de adjacências para todos os vértices do grafo de A de forma ordenada;
terá comprimento 2n;
• VAL: Arranjo paralelo a ADJ contendo os valores numéricos dos elementos de A fora da diagonal.
• DIA: Conterá os elementos diagonais e terá comprimento n;
7
Figura 10: Este esquema nos dá um norte de como obter os elementos de ”PRIM”em 11.
Figura 11: Lista encadeada para a matriz/grafo do 7. Note que ”VIZ”e ”VAL”podem ser obtidos de
1. Retirada de [2].
8
Figura 12: Segmento de código que examina os vértices adjacentes de um determinado vértice k a
partir da lista encadeada. Retirado de [2].
6 Fatoração LU
Foquemos nossa atenção no sistema linear Ax = b, onde A é uma matriz n × n invertı́vel (ou seja,
tenha determinante não nulo). Com essas condições, A pode ser fatorada como A = LU , onde L é uma
matriz triangular inferior e U é uma matriz triangular superior unitária (isto é, todos os elementos
diagonais são iguais a 1). No caso de matrizes simétricas e estruturas, os fatores L e U terão elementos
não nulos:
Antes de obtermos os valores numéricos de L e U , passaremos por duas etapas, explicadas abaixo:
• Fatoração simbólica: obteremos as posições dos elementos não nulos de L e U . Neste caso,
usaremos como entrada as listas encadeadas por linha e por coluna da matriz A considerada, a
ordem desta e o número de fatores não nulos em A. De saı́da, obteremos as listas encadeadas de
L e U e o número de elementos não nulos nos fatores triangulares. O algoritmo é mostrado em
14.
• Fatoração numérica: obteremos os valores numéricos dos elementos não nulos de L e U . Aqui
nossa entrada serão as listas encadeadas por linha e por coluna para os fatores triangulares
determinados no passo anterior, além da A considerada. De saı́da, teremos os valores numéricos
de L e U e os elementos da diagonal de A serão sobrescritos pelos elementos diagonais de A. O
algoritmo é mostrado em 15.
7 Bibliografia
[1] Saad, Y. Iterative methods for sparse linear systems.
[2] Costa, Antonio Simões, de Almeida, Katia. Métodos de Ordenação e Armazenamento de Matrizes
Esparsas.
[3] do Carmo, Fernanda Cristina. Análise da Influência de Reordenação de Matrizes Esparsas no De-
sempenho CCCG(η).
9
Figura 13: Ilustração do enchimento na fatoração LU. Retirado de [2].
10
Figura 15: Algoritmo para fatoração numérica esparsa. Retirado de [2].
11