Precondicionamento do método GMRES para Z-matrizes · Universidade Federal do Rio Grande do Norte...
Transcript of Precondicionamento do método GMRES para Z-matrizes · Universidade Federal do Rio Grande do Norte...
Universidade Federal do Rio Grande do NorteCentro de Ciências Exatas e da Terra
Programa de Pós-Graduação em Matemática Aplicadae Estatística
Mestrado em Matemática Aplicada e Estatística
Precondicionamento do método GMRESpara Z-matrizes
Josimara Tatiane da Silva
Natal-RN
Julho de 2016
Josimara Tatiane da Silva
Precondicionamento do método GMRES paraZ-matrizes
Trabalho apresentado ao Programa dePós-Graduação em Matemática Aplicadae Estatística da Universidade Federal doRio Grande do Norte, em cumprimentocom as exigências legais para obtenção dotítulo de Mestre.Área de Concentração: Modelagem Ma-temática.Linha de Pesquisa: Otimização, Proble-mas Inversos e Matrizes.
Orientador
Dr. Nir Cohen
Coorientadora
Dra. Julia Victoria Toledo Benavides
Universidade Federal do Rio Grande do Norte – UFRNPrograma de Pós-Graduação em Matemática Aplicada e
Estatística – PPGMAE
Natal-RN
Julho de 2016
Dissertação de Mestrado sob o título Precondicionamento do método GMRES para
Z-matrizes apresentada por Josimara Tatiane da Silva e aceita pelo Programa de
Pós-Graduação em Matemática Aplicada e Estatística da Universidade Federal do
Rio Grande do Norte, sendo aprovada por todos os membros da banca examinadora
abaixo especificada:
Dr. Nir CohenOrientador
Departamento de MatemáticaUniversidade Federal do Rio Grande do Norte
Dra. Julia Victoria Toledo BenavidesCoorientadora
Departamento de MatemáticaUniversidade Federal do Rio Grande do Norte
Dr. Luiz Mariano Paes de Carvalho FilhoDepartamento de Matemática Aplicada
Universidade do Estado do Rio de Janeiro
Dr. Santos Demetrio Miranda BorjasDepartamento de Matemática
Universidade Federal do Rio Grande do Norte
Natal-RN, 19 de julho de 2016.
Aos meus pais, Fátima e Batista.
A minha irmã, Thaynara.
Agradecimentos
Primeiro, gradeço a Deus por tudo, por todo o cuidado comigo. Por ter permi-
tido que eu chegasse até aqui. A Ele devo toda honra e toda glória. Sem Ele não
teria conseguido passar por muitos momentos difíceis. Por todo o cuidado em cada
detalhe, inclusive pelas maravilhosas pessoas que Ele colocou em meu caminho.
Aos meus grandes amores, os meus pais, João Batista e Maria de Fátima, por
todo apoio, dedicação e cuidado incondicional que sempre tiveram comigo. E a
minha querida irmã, Josimeiry Thaynara, por todo o carinho, amor e momentos
de descontração. Amo vocês!
Aos meus avóis, João e Carmelita, Zé Danta e Carminha; a minha tia Ném; a
madrinha Dacira; as minhas outras avós de coração: Assunção, Chiquita; a minha
grande amiga Carme (in memoriam); pela confiança, pelo apoio.
As minhas grandes amigas, Silvana, Edione e Elyzama, pelos altos momentos
de descontração e por toda essa amizade, apoio que me deram.
A meu amigo Paulo Sérgio, pelo encorajamento de sempre, inclusive nos mo-
mentos em que falhei ainda estava ali me incentivando a continuar.
A meu orientador Nir, por todas as brilhantes sugestões e paciência comigo.
A minha coorientadora Julia, pela amizade e por ter permitido meu primeiro
contato com o tema Métodos de Krylov onde tive a oportunidade de estudar um
pouco sobre isso durante a iniciação científica.
Ao professor Mariano, por ter aceitado fazer parte de minha banca, por ter
ajudado bastante mesmo com todos os seus comentários e discussões.
Aos professores do Departamento de Estatística, Jeanete, Dione, Damião, Ma-
riana e Luz, pelos maravilhosos ensinamentos, incentivo e compreensão pois du-
rante o mestrado também cursava a graduação em Estatística.
Aos professores do Departamento de Matemática, Giselle, Liliane, Claúdio, Vi-
viane Klein, Carlos Gomes, por todo o incentivo, confiança em mim depositada e
pela significativa contribuição durante a minha formação na graduação em Mate-
mática Licenciatura. Em especial, a professora Elaine, um amor de pessoa, que foi
minha professora na graduação em Matemática e no mestrado, sem palavras para
descrever o quanto já me ajudou até aqui, me ensinou e é para mim, um exemplo
de profissional extremamente competente.
Aos colegas do mestrado, Camila, Tito, Laís, Paulo, Messias, Daniel, Alexan-
dre, Bárbara, Nildo, Djackson, Jéssica Stefanny, pelos momentos de descontração
e de conhecimentos compartilhados.
Aos colegas Waldson, Eduardo e July, pelas conversas, pelas dicas com a pro-
gramação no Matlab, escrita no Latex (“Errors!”).
A Daniel, secretário do PPgMAE, pelas inúmeras vezes sempre disponível a
ajudar, por ter sido sempre competente.
Enfim, a todos aqueles que de uma forma ou de outra foram colocados por
Deus em meu caminho para me apoiar em todos os momentos.
A CAPES, pelo apoio financeiro.
O SENHOR é o meu pastor; nada me faltará.
Salmos 23:1
Precondicionamento do método GMRES paraZ-matrizes
Autora: Josimara Tatiane da Silva
Orientador: Dr. Nir Cohen
Coorientadora: Dra. Julia Victoria Toledo Benavides
Resumo
Este trabalho tem por objetivo investigar o comportamento de convergência do
método GMRES (Generalized Minimal RESidual) e sua versão GMRES(m), sem e
com precondicionador ILU(0) aplicado à sistemas lineares não simétricos esparsos.
Nosso interesse principal é verificar se o comportamento destes algoritmos pode ser
influenciado pela estrutura das matrizes consideradas, em particular, as Z-matrizes
e a influência da escolha do grau de esparsidade. Entre os parâmetros observados,
concentramos no raio espectral dessas matrizes, tanto como a norma do resíduo
relativo obtido por estes algoritmos.
Palavras-chave: Z-matrizes, Métodos de Krylov, GMRES, GMRES(m), Precondi-
cionador ILU(0).
Preconditioning of the GMRES method forZ-matrices
Author: Josimara Tatiane da Silva
Advisor: Ph.D. Nir Cohen
Co-advisor: Ph.D. Julia Victoria Toledo Benavides
Abstract
This study aims to investigate the convergence behavior of the GMRES (Gene-
ralized Minimal Residual) method and its version GMRES(m), without and with
preconditioner ILU(0) applied to sparse non-symmetric linear systems. Our main
interest is to see if the behavior of these algorithms can be influenced by the struc-
ture of the matrices considered, in particular, the Z-matrices. Furthermore, the
influence of the choice of the degree of sparsity. Among the observed parameters,
we focus on the spectral radius of these matrices, as well as the relative residual
norm obtained by these algorithms.
Keywords : Z-matrices, Krylov Methods, GMRES, GMRES(m), ILU(0) Precon-
ditioner.
Lista de figuras
1 Matriz esparsa. nz(A) é o número de elementos não nulos da matriz. p. 23
2 A ideia é buscar a solução aproximada de um sistema de equações
Ax = b em um subespaço de dimensão menor. . . . . . . . . . . p. 39
3 Projeção de r, resíduo, sobre K e ortogonal a L. . . . . . . . . . p. 40
4 Representação esquemática da condição de ortogonalidade do re-
síduo do GMRES. Essa figura é a mesma encontrada em (CAR-
VALHO et al., 2010) porém, a reproduzimos colocando tais cores. p. 41
5 spy da matriz Z1 com grau de esparsidade 90.26%. . . . . . . . p. 50
6 spy da matriz Z1 com grau de esparsidade 99.57%. . . . . . . . p. 50
7 Gráfico do grau de esparsidade × Norma residual relativa do GM-
RES. Matrizes Z1 de ordem 300. . . . . . . . . . . . . . . . . . . p. 51
8 Gráfico do grau de esparsidade × Norma residual relativa do GM-
RES(60). Matrizes Z1 de ordem 300. . . . . . . . . . . . . . . . p. 52
9 Gráfico do grau de esparsidade × Norma residual relativa do GM-
RES. Matriz K de ordem 300. . . . . . . . . . . . . . . . . . . . p. 53
10 Gráfico da norma residual relativa da matriz K × Norma residual
relativa do GMRES(60). Matriz K de ordem 300. . . . . . . . . p. 53
11 Gráfico do grau de esparsidade da matriz Z1 × Raio espectral da
matriz Z1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
12 Gráfico do grau de esparsidade da matriz K × Raio espectral da
matriz K. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55
13 Gráfico referente às matrizes Z1, Z2 e K com o GMRES. Matrizes
de ordem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 56
14 Gráfico referente às matrizes Z1, Z2 e K menos esparsas conside-
radas com o GMRES. Matrizes de ordem 300. . . . . . . . . . . p. 57
15 Gráfico referente às matrizes Z1, Z2 e K com o GMRES. Matrizes
de ordem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 57
16 Gráfico referente às matrizes Z1, Z2 e K menos esparsas conside-
radas com o GMRES. Matrizes de ordem 300. . . . . . . . . . . p. 58
17 Gráfico para GMRES. Problemas mais esparsos. Matrizes de or-
dem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
18 Gráfico para GMRES. Problemas menos esparsos. Matrizes de
ordem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 61
19 Gráfico para GMRES(60). Problemas mais esparsos. Matrizes de
ordem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62
20 Gráfico para GMRES(60). Problemas menos esparsos. Matrizes
de ordem 300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 63
21 Perfil de desempenho para o número de iterações com 50 proble-
mas envolvendo a matriz Z1. Matrizes de ordem 300. . . . . . . p. 65
22 Perfil de desempenho para o tempo com 50 problemas envolvendo
a matriz Z1. Matrizes de ordem 300. . . . . . . . . . . . . . . . p. 66
23 Perfil de desempenho para o número de iterações com 50 proble-
mas envolvendo a matriz K. Matrizes de ordem 300. . . . . . . . p. 67
24 Perfil de desempenho para o tempo com 50 problemas envolvendo
a matriz K. Matrizes de ordem 300. . . . . . . . . . . . . . . . . p. 68
Lista de tabelas
1 Resultados numéricos para as matrizes Z1. . . . . . . . . . . . . p. 77
2 Continuação dos resultados numéricos para as matrizes Z1. . . . p. 79
3 Continuação dos resultados numéricos para as matrizes Z1. . . . p. 81
4 Continuação dos resultados numéricos para as matrizes Z1. . . . p. 83
5 Resultados numéricos para as matrizes K. . . . . . . . . . . . . p. 85
6 Continuação dos resultados numéricos para as matrizes K. . . . p. 87
7 Continuação dos resultados numéricos para as matrizes K. . . . p. 89
8 Continuação dos resultados numéricos para as matrizes K. . . . p. 91
Lista de símbolos
Mn(R) Conjunto de todas as matrizes quadradas de ordem n com entradas reais
ge(A) Grau de esparsidade da matriz A
σ(A) Espectro de A
ρ(A) Raio espectral da matriz A
NZ(A) Conjunto das posições dos elementos não nulos da matriz A
Conteúdo
1 Introdução p. 17
2 Tópicos elementares p. 20
2.1 Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.1.1 Matrizes esparsas . . . . . . . . . . . . . . . . . . . . . . p. 21
2.1.2 Métodos iterativos para sistemas de equações lineares . . p. 23
2.1.2.1 Conceitos de Cálculo Numérico e de Álgebra Linear p. 26
2.2 Algumas classes matriciais importantes . . . . . . . . . . . . . . p. 29
2.3 Precondicionadores . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
2.3.1 Fatoração incompleta LU (ILU) . . . . . . . . . . . . . . p. 35
2.4 Métodos de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
2.4.1 Base para subespaço de Krylov . . . . . . . . . . . . . . p. 37
2.4.2 Métodos de projeção . . . . . . . . . . . . . . . . . . . . p. 38
2.4.3 GMRES . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
3 Experimentos numéricos p. 45
3.1 Sobre a matriz dos coeficientes dos problemas . . . . . . . . . . p. 45
3.1.1 Propriedades estruturais . . . . . . . . . . . . . . . . . . p. 46
3.1.2 Propriedades numéricas . . . . . . . . . . . . . . . . . . p. 47
3.2 Resultados numéricos . . . . . . . . . . . . . . . . . . . . . . . . p. 48
3.2.1 Configurações para as simulações numéricas . . . . . . . p. 48
3.2.2 Gráficos de dispersão . . . . . . . . . . . . . . . . . . . . p. 49
3.2.3 Análise dos resíduos para Z1, Z2 e K . . . . . . . . . . . p. 55
3.2.4 Análise dos resíduos para outras matrizes K . . . . . . . p. 58
3.3 Perfil de desempenho . . . . . . . . . . . . . . . . . . . . . . . . p. 63
4 Considerações finais p. 69
4.1 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 69
4.2 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . p. 70
Referências p. 71
Apêndice A - Tabelas p. 76
A.1 Matrizes Z1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 77
A.2 Matrizes K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 85
Apêndice B - Programação no Matlab p. 94
B.1 Geraçao dos bancos de dados . . . . . . . . . . . . . . . . . . . . p. 94
B.2 Matriz para perfil de desempenho . . . . . . . . . . . . . . . . . . p. 98
B.3 Perfil de desempenho para matriz Z1 . . . . . . . . . . . . . . . . p. 99
17
1 Introdução
A resolução de sistemas lineares não simétricos de grande porte esparsos surge
em diversas áreas e entre os métodos numéricos bastante utilizados para isso
encontra-se o método GMRES (Generalized Minimal RESidual). Tem sido uma
escolha comum em Dinâmica dos Fluidos Computacional, em supercomputação
paralela, onde ocorrem simulações em grande escala, (HIGGINS, 2004).
Existem muitos problemas de diversas áreas onde a matriz dos coeficientes tem
uma estrutura especial. Por exemplo, M -matrizes aparecem em métodos de ele-
mentos finitos ou de diferenças finitas de EDPs, análise input-output em economia
e cadeias de Markov em processos estocásticos, (PLEMMONS, 1977), (RODRIGUEZ,
2012).
É conhecido que M -matrizes inversíveis e H-matrizes admitem fatoração LU
incompleta numericamente estável, (MESSAOUDI, 1995). Portanto, valeria investi-
gar se o GMRES com precondicionador LU tenha um melhor desempenho (me-
nor tempo de execução de CPU, número de iterações, norma resídual) para estas
classes, comparado com matrizes gerais. Porém, dada a matriz, é difícil verificar
se ela pertence a estas classes (POOLE; BOULLION, 1974). Assim, neste trabalho,
considera-se a classe de Z-matrizes (com diagonal positiva), onde a fatoração LU
não é garantida mas a verificação da propriedade-Z é fácil ver. Na prática, todas
as Z-matrizes de ordem 300 esparsas consideradas neste trabalho admitem esta fa-
toraçao. A classe das Z-matrizes contem a classe das M -matrizes e tem interseção
considerável com a maior classe de H-matrizes.
18
Neste trabalho consideraremos quatro versões do algoritmo GMRES: GMRES
nominal; GMRES(m) obtido por reiniciar o GMRES cadam iterações; e as versões
precondicionadas destes algoritmos, usando o precondicionador LU . Estudamos a
influência da escolha do grau de esparsidade. Entre os parâmetros observados,
concentramos no raio espectral da matriz dos coeficientes, tanto como a norma do
resíduo relativo obtido por estes algoritmos.
No capítulo 2, faz-se uma breve apresentação sobre alguns tópicos preliminares
relevantes a sistemas lineares esparsos de grande porte, alguns conceitos básicos
de Álgebra Linear e Cálculo Numérico. São definidas as classes das Z-matrizes,
M -matrizes e H-matrizes, a técnica de precondicionamento; aborda-se a fatoração
LU e apresenta-se o GMRES (Método do Resíduo Mínimo Generalizado).
No capítulo 3, contêm os resultados de nossos experimentos numéricos.
Na seção 3.2, estudamos por meio de gráficos de dispersão a relação entre o
grau de esparsidade, a norma do resíduo relativo do GMRES e o raio espectral das
matrizes Z1 e Z2 (Z-matrizes) e outras matrizes quaisquer com mesmo padrão de
esparsidade dessas. Especificamente, dadas duas Z-matrizes com o mesmo padrão
de esparsidade, Z1 e Z2, consideramos a matriz K =Z1 − Z2
2, maneira de gerar
uma matriz não Z aleatória geral com o mesmo padrão como uma Z-matriz de
referência (ou seja, Z1 e Z2). Dado que os termos de Z1 e Z2 são escolhidos aleatori-
amente no intervalo [0, 1], K representa matriz sem nenhuma estrutura particular,
porém, com aproximadamente o mesmo padrão de esparsidade como Z1 e Z2.
Na seção 3.3, plotamos as curvas de convergência dos 4 algoritmos para algumas
triplas representativas das matrizes Z1, Z2 e K acima definidas, representando
graus diferentes de esparsidade.
Na Seção 3.4, consideramos outras combinações lineares K =Z1 − βZ2
1 + β(β >
0) de matrizes Z1 e Z2, plotamos as curvas de convergência e atentamos para a
influência da estrutura da matriz.
Na seção 3.5, usamos a técnica de perfil de desempenho para comparar os 4
19
métodos aplicados nas várias matrizes Z1 e as correspondentes matrizes K, em
termos de tempo de CPU e número de iterações.
No Apêndice A, colocamos alguns dados técnicos referentes à geração compu-
tacional das matrizes utilizadas neste trabalho. E também, alguns dos resultados
obtidos pelos quatro métodos numéricos considerados.
No Apêndice B, temos alguns dos códigos da programação feita no MATLAB.
20
2 Tópicos elementares
Neste capítulo, abordam-se alguns tópicos básicos sobre sistemas lineares, tra-
tando sobre matrizes esparsas e alguns conceitos importantes de cálculo numérico.
Em seguida, são introduzidas algumas definições de classes matriciais. Discute-se
sobre a técnica de precondicionamento e uma breve apresentação do GMRES.
2.1 Sistemas lineares
A resolução de sistemas de equações lineares é um problema que surge nas
mais diversas áreas da engenharia e da ciência. Nesta relação, dada uma matriz
A ∈ Mn(R) e um vetor b ∈ Rn, deseja-se encontrar, se existir, algum x ∈ Rn tal
que Ax = b.
Equivalentemente,
n∑j=1
aijxj = bi, i = 1, 2, . . . , n,
em n equações e n incógnitas. Se A ∈ Mn(R) é não singular, a única solução é
x = A−1b ∈ Rn.
Sistemas lineares não simétricos de grande porte esparsos surgem frequente-
mente no processo de discretização de equações diferenciais parciais (EDPs). A
resolução de sistemas lineares desse tipo pode se tornar computacionalmente in-
viável se usarmos métodos analíticos, como a regra de Cramer ou até a eliminação
21
gaussiana.
Entre as alternativas de métodos de projeção usados na resolução desses siste-
mas lineares, temos o método do GMRES (Generalized Minimal RESidual) pro-
posto por (SAAD; SCHULTZ, 1986) como um método de projeção em subespaços
de Krylov. Em resumo, esse método minimiza a norma residual sobre o subespaço
de Krylov e pode ser usado na resolução de sistemas lineares de grande porte não
necessariamente simétricos, muitas vezes, mal condicionados.
Por abordar esses tipos de sistemas esparsos, nos deteremos agora a esclarecer
o conceito de matriz esparsa e definir grau de esparsidade.
2.1.1 Matrizes esparsas
Uma matriz A ∈Mm×n é dita, em geral, esparsa se a maioria de suas entradas
são nulas, em oposição às matrizes densas onde a quantidade de zeros é irrelevante.
Porém, essa definição é imprecisa por que não temos um limite inferior predefinido
da quantidade de zeros que A deve ter, em relação ao seu tamanho, para classificar
A como esparsa ou, ao contrário, densa, cheia (BIEZUNER, 2009). Existem técnicas
especiais a fim de tirar vantagem da grande quantidade de zeros e de suas posições
de modo a economizar o custo computacional quanto à armazenamento, acesso, e
algoritmos para resolução do sistema, ver (SAAD, 2003).
Para mais informações sobre outras definições de matriz esparsa e sobre "a
arte de manipular matrizes esparsas", veja (PISSANETZKY, 1984).
Várias aplicações reais da engenharia, física, matemática, pesquisa operacional,
em particular, discretização de EDPs com o método de elementos finitos ou com o
método de diferenças finitas é uma grande fonte de problemas envolvendo matrizes
esparsas. Para maiores detalhes sobre discretização de EDPs por diferenças finitas,
consultar (CUMINATO; MENEGUETTE, 2013).
"Problemas hoje considerados de grande porte envolvem milhões de equações,
22
sendo a maioria destes altamente estruturados, muito esparsos", (STERN, 1994).
Para questões relacionadas a esparsidade, eliminação simétrica e assimétrica, estru-
tura e paralelismo, ver (STERN, 1994). A ordem das matrizes que frequentemente
aparecem, por exemplo, “the Google matrix, decipting connections between all web
pages on the World Wide Web, has dimensions on the order of billions”, (GREEN-
BAUM, 1997). Neste trabalho, consideram-se matrizes de ordem 300 e trata-se de
estudos preliminares sobre o GMRES(m) precondicionado aplicado à classe das
Z-matrizes.
Exemplo. 2.1 Matriz muito esparsa.
A =
0 0.1 0 0 0 0 0 2
0 0 0 0 0 0 0 0
0 0 5 0 0 0 0 0
0 0 0 0 0 0 0 6
0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0
8×8
(2.1)
Trabalharemos com grau de esparsidade e entende-se por padrão de esparsidade
como a disposição dos elementos não nulos que pode ser observado com o auxílio
do comando spy no Matlab.
Definição 2.1 (Grau de esparsidade) O grau de esparsidade de uma matriz A
ge(A) é definido como a porcentagem de elementos nulos de A:
ge(A) =n0
nT
onde n0 é o número de elementos nulos e nT é o número total de elementos.
No exemplo anterior, ge(A) = 89.0625% e o spy(A) é
23
0 2 4 6 8
0
1
2
3
4
5
6
7
8
9
nz = 7
Figura 1: Matriz esparsa. nz(A) é o número de elementos não nulos da matriz.
Esses pontos no gráfico representam a posição dos elementos não nulos da
matriz.
Veremos algumas questões importantes sobre métodos iterativos e algumas
definições de Cálculo Numérico e Álgebra Linear necessários ao desenvolvimento
do trabalho.
2.1.2 Métodos iterativos para sistemas de equações lineares
Entre as técnicas utilizadas para resolver sistemas lineares de grande porte
encontram-se os métodos iterativos, que veremos a seguir.
Os métodos iterativos geram uma sequência de vetores (xk), a partir de uma
solução inicial x0 dada e espera-se, sob certas condições, que a sequência convirja
para a solução do problema. Enquanto que os métodos diretos, a menos de erros de
arredondamento, fornecem a solução exata do sistema linear, caso ela exista, após
um número finito de operações, mas ainda assim tem-se vários problemas numéricos
quanto estabilidade numérica e pivoteamente, (RUGGIERO; LOPES, 1997).
24
Definição 2.2 Um método iterativo linear para resolver o sistema Ax = b é um
método da forma
xk+1 = Gxk +Nb (2.2)
onde G e N são matrizes dadas. A matriz G é chamada a matriz de iteração do
método.
Ao trabalhar com matrizes esparsas, é interessante utilizar métodos iterati-
vos devido ao fato deles preservarem a estrutura da matriz dos coefientes. Para
mais detalhes sobre vantagens e desvantagens de métodos iterativos em geral, veja
(VORST, 1993). Para métodos iterativos mais específicos, como os de Krylov, ver
(PRADA, 2010). Prada discorre sobre as principais características, as vantagens e
desvantagens desses métodos iterativos.
Definição 2.3 Seja A,R ∈ Mn(R) uma matriz, um splitting de A é uma decom-
posição aditiva A = C−R. onde C é não singular e a matriz C é chamada matriz
splitting.
Veremos que C também pode ser chamada de precondicionador.
A ideia básica do splitting é trocar o sistema Ax = b pelo algoritmo iterativo
xk+1 = C−1Rxk + C−1b, (2.3)
dado que no caso de convergência (xk → x) x é solução de Ax = b e C−1R = G é
a matriz de iteração.
Alguns algoritmos conhecidos podem ser interpretados como “splittings methods”
como os algoritmos de Jacobi e Gauss-Seidell. Além disso, existem várias estra-
tégias diferentes de splitting na literatura, veja (AXELSSON, 1996), (WOŹNICKI,
2001).
25
Definição 2.4 Para métodos iterativos em geral, o erro algébrico é definido por
ek = x− xk,
e o erro residual por
rk = b− Axk.
Esses erros relacionam-se pela expressão
Aek = rk.
Considere A ∈ Mn(C). O conjunto de todos os autovalores de A é chamado o
espectro de A, denotado por σ(A) .
Definição 2.5 (Raio espectral) O raio espectral de A é dado por
ρ(A) = maxλ∈σ(A)
|λ|.
O raio espectral é importante porque informa sobre a convergência de métodos
iterativos da forma 2.3.
O próximo teorema fornece uma condição necessária e suficiente para a con-
vergência de um método iterativo.
Teorema 2.1 (BIEZUNER, 2009) Seja G a matriz de iteração do método iterativo
2.2. Então,
ek → 0 para todo vetor inicial x0 ⇔ ρ(G) < 1.
Sobre a convergência de métodos iterativos diante da tipologia dos splittings
usando apenas teoria matricial, o leitor pode consultar (AXELSSON, 1996). Nesse
texto, ademais Axelsson estuda algumas propriedades gerais de M -matrizes e fa-
mílias gerais de splittings convergentes. Também discute vários princípios para
comparar a taxa de convergência de diferentes splittings. Para uma abordagem so-
bre a convergência de alguns métodos iterativos como uma aplicação do Teorema
do Ponto Fixo, veja (ALBRECHT, 1973), (ALVES, 1999).
26
Seguem algumas definições e resultados importantes que serão utilizadas nas
próximas partes do trabalho.
2.1.2.1 Conceitos de Cálculo Numérico e de Álgebra Linear
Usaremos a norma-2 vetorial, definida por ‖x‖2 =n∑i=1
√|xi|2.
Definição 2.6 Dada ‖ · ‖ uma norma vetorial em Rn, ela induz uma norma ma-
tricial através da definição
‖A‖ = max‖x‖=1
‖Ax‖. (2.4)
Definição 2.7 O número de condição de uma matriz A ∈Mn não singular, para
uma norma matricial ‖.‖ é dado por
Cond(A) = ||A||.||A−1||
.
Para a norma-2, o número de condição depende dos valores singulares σi não
negativos com i = 1, · · · , n, especificadamente, Cond(A) =σ1σn
onde σi > σi+1.
É importante observar o número de condição pois ele nos informa sobre o
quanto mal condicionado pode estar o problema Ax = b considerado. Quando o
valor do número de condição é alto, diz-se que A é mal condicionada. Isso significa
que pequenas pertubações em A ou em b podem resultar em alterações significati-
vas no vetor solução aproximado.
Definição 2.8 Dada A ∈Mn, dizemos que λ1 é um autovalor dominante de A se
|λ1| > |λi|, ∀i = 2, · · · , n.
27
O Método da Potência Clássico (veja a Proposição 2.1 abaixo) é importante
para justificar o fato de uma matriz de Krylov não ser uma boa opção para uma
base para o subespaço de Krylov. Considera-se o método da potência clássico que
trata do caso onde as matrizes possuem um único autovalor dominante, isto é,
|λ1| > |λi|, ∀i = 2, · · · , n.
Proposição 2.1 (ARAUJO, 2012) Seja A ∈ Mn diagonalizável e com um único
autovalor dominante λ1. Então, para quase todo valor inicial b ∈ Rn dado, a
sequência de vetores (xk) definida por
xk+1 =Axk‖Axk‖
, para todo k = 0, 1, · · · e x0 = b
tende a um autovetor associado ao autovalor dominante de A.
Demonstração. 2.1 Suponha que A seja diagonalizável. Então, existe uma base
β = {x1, · · · , xn} de autovetores unitários de Cn. Logo, Axi = λixi para i =
1, 2, . . . , n e seja λ1 o autovalor dominante.
Dado um vetor b, podemos escrever b como uma combinação linear dos vetores
de β, ou seja,
b =n∑i=1
αixi com αi ∈ Cn e suponha α1 6= 0.
Pré-multiplicando b por Ak, tem-se
Akb =n∑i=1
αiAkxi.
Afirmação: se Av = λv então Akv = λkv.
De fato, fazendo indução sobre k, claramente, a expressão Akv = λkv é válida
para k = 1. Suponha que essa expressão vale para k. Mostremos que vale também
28
para k + 1, então
Ak+1v = Ak(Av) = Ak(λv) = λ(Akv) = λ(λkv) = λk+1v.
Logo, Akv = λkv é válida.
Por essa afirmação,
Akb =n∑i=1
αiλki xi.
Pondo λk1 em evidência, tem-se
Akb = λk1
(α1x1 +
n∑i=2
αi
(λiλ1
)kxi
).
Sendo λ1 o autovalor dominante, isto é, |λ1| > |λi| para todo i = 2, · · · , n,
então(λiλ1
)< 1.
Então,(λiλ1
)k→ 0 quando k →∞ implica que
Akb
λk1→ α1x1.
Logo, xk ≈α1λ
k1x1
‖α1λk1x1‖= cx1, com c ∈ C, onde cx1 é autovetor para λ1.
�
A proposicao fica válida mesmo se a matriz A não for diagonalizável.
Uma exceção ocorre se α1 = 0, onde xk converge para zero. Esta é a única
exceção no caso diagonalizável; no caso não diagonalizável, de fato, a proposição
segue valendo, porém, pode acontecer que Akb = 0 para algum k, donde o algoritmo
não pode ser continuado. Pode-se ver que os vetores b para os quais α1 6= 0 e Akb
e não nulo para todo k formam um conjunto aberto e denso em Rn, justificando a
palavra ”quase” no teorema.
29
2.2 Algumas classes matriciais importantes
Nesta seção, apresentamos e discutimos algumas classes de matrizes, em es-
pecial, as Z-matrizes. Muitos problemas de diversas áreas podem ser reduzidos a
problemas envolvendo matrizes com uma determinada estrutura especial e, conse-
quentemente, pertencentes a classes especiais de matrizes como as dasM -matrizes.
Definiremos tais classes que serão mencionadas durante o trabalho e em seguida,
deremo-nos a algumas questões e resultados interessantes sobre elas.
Definição 2.9 A = (aij) ∈Mn(R) é não negativa se aij > 0, ∀i, j.
Definição 2.10 A matriz P = (Pij)16i,j6n é uma matriz estocástica se
i) pij > 0 para todos i, j;
ii) Para todo i,n∑j=1
pij = 1.
Em outras palavras, todas as entradas de uma matriz estocástica são não
negativas e qualquer linha tem soma um.
O espectro de matrizes não negativas é discutido pelo Teorema de Perron-
Frobenius, veja (AXELSSON, 1996). O estudo destas matrizes é motivado pelo es-
tudo de Cadeias de Markov onde aparecem matrizes estocásticas.
Definição 2.11 A é Z-matriz se aij 6 0, ∀i 6= j.
Em outras palavras, A é Z-matriz se, e somente se, A = sI − B com s ∈ Re B não negativa. As Z-matrizes estudadas neste trabalho terão sempre diagonal
estritamente positiva.
Definição 2.12 A é M-matriz se A = sI −B com B não negativa e s > ρ(B).
30
Resulta que cada M -matriz é também Z-matriz.
Alguns chamam de M -matrizes o que chamamos M -matriz inversível, veja
(MESSAOUDI, 1995).
As M -matrizes foram introduzidos em 1937 por Alexander M. Ostrowski, em
(OSTROWSKI, 1937), em (PLEMMONS, 1977).
Ainda sobre este brilhante matemático, devido à diversas contribuições em
difentes áreas da Matemática como a Álgebra Linear, Teoria dos Números, Geo-
metria, Topologia, Análise Numérica, Equações Diferenciais etc; encontra-se um
trabalho sobre "His life, work, and students"(GAUTSCHI, 2010) donde vale desta-
car:
"The theory of M -matrices and the related theory of H-matrices, stemming
from Ostrowski’s 1937 paper, have proved to be powerful tools in the analysis of
iterative methods for solving large systems of linear equations. In addition, this
theory forms the basis for the general theory of eigenvalue inclusion regions for
matrices, as in the case of the well-known Gershgorin Theorem."
De fato,M -matrizes surgem em diversos campos científicos, entre eles: métodos
de elementos finitos ou de diferenças de EDPs, análise input-output em economia
e cadeias de Markov em processos estocásticos (PLEMMONS, 1977).
Mais detalhes sobre outras classes de matrizes com inversa positiva e B-
matrizes, estreitamente relacionadas com as M -matrizes e um histórico sobre os
problemas antecedentes da área podem ser encontrados em (RODRIGUEZ, 2012).
A fatoração incompleta LU (ILU) consiste em conseguir um splitting da matriz
esparsa A em que A = LU − R, onde L é uma matriz triangular inferior e U ,
triangular superior e R é a matriz residual, idealmente com padrão predeterminado
‖R‖ << 1, ver (MEIJERINK; VORST, 1977). O caso particular clássico de fatoracao
LU , ocorre quando R = 0.
Teorema 2.2 Seja A uma Z-matriz. Então, são equivalentes:
31
1. A é M-matriz invertível;
2. A possui menores principais positivos;
3. A admite fatoração LU ;
4. A−1 existe e é não negativa;
5. Existe um splitting A = C − R com C−1, N não negativas e ρ(C−1R) < 1
implicando convergência do método iterativo 2.3.
Para este resultado, veja (PLEMMONS, 1977), onde são acrescentadas outras
condições equivalentes a mais.
Definição 2.13 A matriz de comparaçãoM(A) = (bij) para uma matriz arbitrá-
ria A ∈Mn(C) com A = (aij) é definida por
bij =
|aij| se i = j
−|aij| se i 6= j.(2.5)
Em (BRU et al., 2008), na literatura sobre métodos iterativos de sistemas li-
neares, H-matrizes são amplamente utilizadas porque elas aparecem em muitas
aplicações envolvendo discretização de certas equações parabólicas não lineares e
no LPC. Além disso, H-matrizes estão intimamente relacionados comM -matrizes.
Definição 2.14 A ∈Mn(C) é uma H-matriz seM(A) é uma M-matriz.
Entre as razões pelas quais a teoria matricial é assunto de interesse da comu-
nidade científica é devido às diversas aplicações onde surgem matrizes com certas
propriedades especiais. Um exemplo importante é o problema do LPC (Problema
da Complementariedade Linear) usado em problemas logísticos de grande porte
da programação linear. Para mais detalhes, ver (MURTY; YU, 1988).
32
Em 2010, no texto de Cottle, ”Over the years, many authors have compiled lists
of classes related to the LCP, and a few authors have created diagrams indicating
the inclusion relationships between most of the matrix classes known at the time“,
ver (COTTLE, 2010).
Em geral, nota-se que há muitos trabalhos direcionados à determinação de pro-
priedades das matrizes pertencentes a certa classe, mas poucos trabalhos feitos, no
sentido de mostrar diagramas de inclusões e também de se criar técnicas computa-
cionais eficientes para determinar se uma matriz pertence ou não a alguma classe.
Para mais detalhes sobre abordagens em termos de caracterizações o leitor pode
consultar os seguintes clássicos: (ROTHBLUM, 1979), (PLEMMONS, 1977).
A verificação eficiente se uma matriz pertence ou não a uma determinada classe
é uma tarefa muito importante tanto teórica como prática. Em particular, a veri-
ficação das propriedades M ou H pode ser complicada, por exemplo, por requerer
o cálculo de A−1. Não nos debruçaremos sobre esta questão. Conforme (POOLE;
BOULLION, 1974), “Most of the work in M -matrices has been in the area of deter-
mining the properties of such matrices. Some work has been done in determining
which matrices from a particular class of matrices are M -matrices.“
Em (PEÑA, 2004), é apresentado um teste estável para verificar se uma matriz
é uma M -matrix não singular. Recentemente, em (GUILLEARD; ANTONIO, 2015),
discute-se sobre determinação e caracterizações de H-matrizes, expõe um levanta-
mento sobre algoritmos propostos na literatura que buscam estabelecer de maneira
automática se uma dada matriz é ou não H-matriz.
Neste trabalho, não faremos estudos sobre questões relacionadas a esparsi-
dade, operações matriciais, invertibilidade, convergência de splittings ou métodos
iterativos envolvendo matrizes dessas classes.
Vejamos agora algumas considerações relacionadas à estabilidade da fatoração
LU baseadas nos textos de (HIGHAM, 2002), (MESSAOUDI, 1995), (IPSEN, 2009).
33
Existe vasta literatura sobre a estabilidade da fatoração LU . Como parâmetro
principal, considera-se a razão
α =‖L.U‖‖A‖
(para qualquer norma matricial) onde A = LU é a fatoração dada e L e U são
obtidas de L e de U usando o valor absoluto termo a termo.
Na literatura, podemos encontrar limitantes para α para várias classes ma-
triciais intimamente relacionadas com as Z-matrizes, como as M -matrizes, as H-
matrizes, matrizes não negativas, entre outras; mas não para as Z-matrizes (onde
a fatoração LU não é garantida). Em particular, veja o seguinte teorema:
Teorema 2.3 (MESSAOUDI, 1995),(MEIJERINK; VORST, 1977) A fatoração LU
incompleta de uma H-matriz é tão estável como a fatoração LU incompleta de sua
matriz de comparaçãoM(A).
Existe também resultados sobre a estabilidade de algumas classes de matrizes
esparsas, como as matrizes de Hessenberg, de banda, em particular, para matrizes
tridiagonais. Para mais detalhes, o leitor pode consultar (SAAD, 2003).
Há muitos trabalhos sobre fatorações LU ou ILU (LU incompleta) para a clas-
ses dasM -matrizes e H-matrizes, ver (MEIJERINK; VORST, 1977). Entre eles, men-
cionamos trabalhos sobre a fatoração LU para M -matrizes (VARGA; CAI, 1981),
estatibilidade da fatoração LU para H-matrizes (AHAC; BUONI; OLESKY, 1988), so-
bre a estabilidade das fatorações LU incompletas e caracterizações de H-matrizes,
(MESSAOUDI, 1995).
Na sequência, definiremos as matrizes denotadas por K, sendo geradas de tal
forma a não serem mais Z-matrizes.
Definição 2.15 Dadas duas Z-matrizes, Z1 e Z2, e um número positivo β, pode-
34
mos gerar uma matriz K da seguinte forma
K =Z1 − βZ2
1 + β.
Esta construção será útil quando formos discutir sobre a influência nos algorit-
mos numéricos quanto à estrutura das matrizes, em particular, K terá aproxima-
damente o mesmo padrão de esparsidade de Z1 e de Z2. Porém, K não será mais
Z-matriz. Para matrizes aleatórias Z1, Z2 com a mesma distribuição dos termos,
a melhor escolha a priori é β = 1 pois não teremos uma preferência quanto aos
sinais dos elementos de Z1 e de Z2.
Agora, discutiremos sobre precondicionadores onde faremos o uso da fatoração
LU incompleta.
2.3 Precondicionadores
Ao lado do splitting, outra técnica para resolver sistemas grandes, esparsos ou
mal condicionados, Ax = b, é pré- (ou pós-) multiplicação de A por uma matriz
M−1 que, de um lado, aproxima A−1 e, portanto, acelera a convergência e, por
outro lado, mais fácil de se construir assim que seu uso não torne o sistema mais
complicado ou mude suas características (e.g., esparso).
Precondicionamento é uma técnica usada para acelerar um método iterativo.
A idéia é reduzir o número de condição da matriz do sistema linear. Idealmente, o
precondicionador da matriz A é uma matrizM tal queM−1A deve ter um número
de condição menor
Cond(M−1A) < Cond(A).
Além disso, diminuir a dispersão espectral. Seu uso é indicado para matrizes mal
condicionadas e/ou de grande porte.
Algebricamente, precondicionar um sistema linear do tipo Ax = b seria aplicar
35
uma das tranformações: pela esquerda,M−1Ax =M−1b; pela direita, AM−1y = b,
com M−1y = x; ou ambos os lados. No caso do GMRES, o precondicionador é
usado durante o procedimento de Arnoldi, para mais detalhes, veja (CARVALHO et
al., 2010).
Neste trabalho, a técnica de precondicionamento é usada à esquerda e considera-
se o precondicionador ILU(0) onde M = LU .
O início da história dos precondicionadores é marcado pelo trabalho de Cesari
em 1937, ver (FERRONATO, 2012), (MEDEIROS, 2014). Existem vários candidatos
de precondicionador na literatura, por exemplo, (BENZI, 2002), (VORST, 2003),
(FERRONATO, 2012), porém ainda não existe uma teoria unificada justificando o
sucesso de seu uso com quaisquer matrizes e aplicado ao GMRES. Dessa forma,
podemos tentar fazer o uso de determinados precondicionadores além do método
baseado na fatoração ILU(0) para certos problemas e tentar encontrar algum
padrão de convergência. Em geral, outras fatorações incompletas, inversa aproxi-
mada, decomposição de domínio, multigrid são alguns exemplos clássicos de classes
de precondicionadores na literatura, (CARVALHO et al., 2010), (FERRONATO, 2012).
2.3.1 Fatoração incompleta LU (ILU)
Existem várias variações desse tipo de fatoração onde se impõe certas restrições
sobre a matriz R como ter zeros em certas posições em que A tem elementos não
nulos. Entre elas, existe a fatoração de preenchimento zero (zero fill-in), ILU(0); a
fatoração ILU(l) com nível de preenchimento l, esta não descarta tantos elementos
como a ILU(0) e pode ser mais precisa; a fatoração ILU modificada,MILU ; entre
outras.
Na fatoração ILU(0), descarta-se todos os preenchimentos por coefientes não
nulos em posições originalmente nulas. Dessa forma, espera-se que o conjunto dos
elementos não nulos da matriz A e o da LU sejam iguais e assim, quanto ao número
de elementos não nulos, temos nz(A) = nz(LU) que pode ser facilmente verificado
36
no MATLAB. Isto é sempre verdade quando A = LU .
Um dos motivos de fazer modificações nessa fatoração é a questão de preservar
a estrutura da matriz A tal como o grau de esparsidade após uma fatoração . É
de se esperar, muitas vezes, que ocorra um preenchimento conhecido como fill-
in onde os elementos não nulos surgem de R após a fatoração em posições na
matriz A onde originalmente tinham elementos nulos, com isso, diminui o grau
de esparsidade de A e consequentemente, exige-se mais espaço de memória para
armazenar A aumentando o custo computacional.
Sobre precondicionadores e certas classes matriciais, veja (BROYDEN; VES-
PUCCI, 2004), ”Thus if A is an M -matrix or an H-matrix, not only is incomplete
factorisation always possible but this factorisation will provide a workable pre-
conditioner. Since many important applications derived from partial differential
equations give rise to just such matrices, the results of Meijerink, van der Vorst
and Manteuffel are of very considerable practical and theoretical importance.“
Em (CHEN, 2005), Chen também relata sobre a fatoração ILU para certas
classes de matrizes.
A seguir, veremos um pouco sobre métodos de Krylov, entre eles, o GMRES,
o GMRES(m).
2.4 Métodos de Krylov
Os Métodos de Krylov são centrais no processamento de sistemas lineares de
grande porte. Por exemplo, (DONGARRA; SULLIVAN, 2000) os consideram entre
os 10 algoritmos mais importantes do século XX: ”We tried to assemble the 10
algorithms with the greatest influence on the development and practice of science
and engineering in the 20th century”. Para mais detalhes, veja (CIPRA, 2000).
Sejam A ∈Mn(R) e 0 6= b ∈Mn×1(R), define-se por:
37
Definição 2.16 Sequência de Krylov
(b, Ab,A2b, . . . , Aj−1b)
Definição 2.17 Dada A ∈ Mn e um vetor não nulo b ∈ Rn, definimos o subes-
paço de Krylov por
Kj = span{b, Ab,A2b, . . . , Aj−1b}.
Definição 2.18 Matriz de Krylov
Kn×j =[b Ab A2b . . . Aj−1b
]2.4.1 Base para subespaço de Krylov
Uma matriz de Krylov Kn×j que contem uma base para o subespaço de Krylov
Kj não é adequada para a implementação numérica pois com o aumento de j as
colunas ficam mais próximas da dependência linear, pela Proposição 2.1. Suponha
λ1 seja um autovalor dominante, sendo o quocienteλk−1λ1
pequeno, espera-se um
mal condicionamento de Kn×j uma vez que duas colunas tornam-se quase linear-
mente dependentes. Assim, não basta tentar ortogonalizar a base do subespaço,
pois como os vetores são quase linearmente dependentes, o processo de ortogonali-
zação seria numericamente instável. Uma solução para esse problema será discutida
onde apresentaremos o método de Arnoldi.
Dado Ax0 = b, pela Proposição 2.1, veja que (enquanto Axj−1 6= 0)
k = j − 1 xj =Axj−1‖Axj−1‖
=Aj−1b
‖Aj−1b‖. (2.6)
O processo de Arnoldi é um algoritmo para construir uma base ortogonal do
subespaço de Krylov Kl. Uma variante desse método é a seguinte:
Algoritmo: Arnoldi
Escolha um vetor v1 , tal que ‖v1‖2 = 1
38
Para j = 1, 2, · · · ,m Faça:
Calcule hij = 〈Avj, vi〉 para i = 1, 2, · · · , j
Calcule wj := Avj −j∑i=1
hijvi
hj+1,j = ‖wj‖2Se hj+1,j = 0 então Para
vj+1 =wj
hj+1,j
Fim Faça
Agora, veremos sobre métodos de projeção.
2.4.2 Métodos de projeção
A maioria dos métodos iterativos para resolução de sistemas lineares de grande
porte usam algum processo de projeção para obter, de maneira canônica, a melhor
solução aproximada dentro de um subespaço aproximado e de dimensão menor,
conhecido como subespaço de busca. Para uma visão mais geral sobre métodos de
projeção, consulte (SAAD, 2003), (ARAUJO, 2011).
39
Figura 2: A ideia é buscar a solução aproximada de um sistema de equações Ax = b
em um subespaço de dimensão menor.
Veja que
xn ∈ x0 +Kk, rn ∈ ro + Ln
onde as restrições desejadas para determinar xn são dadas por
rn ⊥ Ln, L⊥n ⊕ Ln = Rn,
Kn é o subespaço de busca e Ln é o subespaço de restrição.
r0 = r0 |AKn +r0 |L⊥n= r0 |AKn +rn, r0 ∈ K⊥n .
Nosso tratatamento do subespaços de Krylov acima é baseado em (STRAKOŠ
et al., 2009).
Normalmente, a escolha é uma das seguintes: se Ln = Kn temos uma projeção
ortogonal; se Ln = AKn, a projeção é chamada oblíqua.
40
Figura 3: Projeção de r, resíduo, sobre K e ortogonal a L.
Métodos que fornecem melhores aproximações em subespaços de Krylov são
conhecidos como Métodos de Krylov (MK), isto é, utilizam o subespaço de Krylov
como subespaço de busca, ver (VORST, 2003). Para uma abordagem sobre a evo-
lução desses métodos de projeção, em particular, os de Kylov, veja (EIERMANN;
ERNST, 2001).
Os métodos de Krylov para encontrar xl ∈ Kl são divididos em quatro classes
de projeção de acordo com a condição imposta, a saber,
1. de Ritz-Galerkin: Ll = Kl = (A, r0), isto é, busca xl ∈ Kl tal que rl ⊥ Kl;
2. da norma mínima residual: busca xl ∈ Kl tal que ‖rn‖2 é mínima sobre
Kl = (A, r0);
3. de Petrov-Galerkin: Ll = AKl e Kl = Kl(A, r0), isto é, busca rl ⊥ Ll e
x ∈ Kl;
4. da norma mínima do erro: Ll = Kl(AT , r0) e Kl = Kl(A, r0), isto, é deter-
mina xl ∈ ATKk(A, r0) tal que ‖xl − x‖2 seja mínima.
Note, então, que as diferentes versões dos Métodos de Krylov decorrem, prin-
cipalmente, das diferentes escolhas de Ln e do produto interno considerado. Por
41
exemplo, se tomarmos a condição de Ritz-Galerkin, que define um problema a ser
resolvido, temos um algoritmo específico para tal solução, temos o FOM (Método
da Ortogonalização Completa) dependendo do produto interno considerado; se a
escolha for a condição 3., entre os métodos mais conhecidos dessa classe, temos o
GMRES, objeto de estudo desse trabalho.
Figura 4: Representação esquemática da condição de ortogonalidade do resíduo do
GMRES. Essa figura é a mesma encontrada em (CARVALHO et al., 2010) porém, a
reproduzimos colocando tais cores.
A seguir, descreveremos brevemente o GMRES.
2.4.3 GMRES
O GMRES ((SAAD; SCHULTZ, 1986)) é um método de projeção baseado em
tomar K = Km e L = AKm, no qual Km é o m-ésimo subespaço de Krylov, com
v1 =r0‖r0‖2
. É uma técnica que minimiza norma residual sobre todos os vetores
x0 +Km.
Usando a relação de Arnoldi (AVm = Vm+1Hm onde Hm é uma matriz de
Hessenberg), temos que qualquer vector x em x0 +Km pode ser escrita como
x = x0 + Vmy,
42
onde y ∈ Rm. Definindo
‖b− Ax‖2 = ‖b− A(x0 + Vmy)‖2,
da relação de Arnoldi,
rm = b− Axm
= b− A(x0 + Vmym)
= r0 − AVmym
= r0 − Vm+1Hmym
= Vm+1(‖r0‖2e1 + Hmym)
Desde que as colunas de Vm+1 sejam ortonormais, então
‖rm‖2 = ‖‖r0‖2e1 − Hmym‖2
Temos então que resolver o sistema linear de ordem reduzida
Hmym = ‖r0‖2e1.
Algoritmo do GMRES(m)
1. Início: Escolha x0 e calcule r0 = b− Ax0 e v1 =r0‖r0‖
.
∗ Processo de Arnoldi.
2. Itere: Para j = 1, . . . ,m faça:
3. hij = 〈Avj, vi〉, i = 1, . . . , j,
43
4. vj+1 = Avj −j∑i=1
hijvi
5. hj+1,j = ‖vj+1‖, e
6. vj+1 =vj+1
hj+1,j
7. Forme a solução aproximada: x = X0 + Vmym onde ym minimiza ||βe1−Hmym||, ym ∈ Rm, β = ||r0|| e e1 = (1, 0, · · · , 0)t um vetor.
8. Recomeço: Calcule rm = b−Axm; se o critério de convergência for satisfeito
Pare
9. senão compute x0 := xm, v1 := rm/||rm||.
10. Volte para a linha 2.
Observe que o algoritimo acima é chamado apenasGMRES quando desconsidera-
se a atualização em item 9.
O precondicionamento do GMRES à esquerda resolve
M−1Ax =M−1b
em vez de resolver Ax = b.
O precondicionamento no MATLAB é feito de modo que o precondicionador
M é dado por uma matriz ou são dadas duas matrizes M1 e M2 tais que M =
M1.M2 e aplica-se M−1Ax = M−1b à Ax = b. No caso, quando o GMRES(m) é
precondicionado com ILU(0), tem-se M1 = L e M2 = U .
No caso do GMRES(m) precondicionado com uma matriz M à esquerda, na
linha 1., inicia-se com r0 =M−1(b−Ax0) e na linha 3., no lugar de Avj, calcula-se
M−1Avj.
Sobre o uso do GMRES(m) precondicionado aplicado a sistemas lineares com
M -matrizes não singulares, encontramos o artigo do (WANG; SONG, 2009), onde os
44
autores sugerem que, em geral, o GMRES(m) precondicionado funcione melhor que
o GMRES(m). Também há outro trabalho envolvendo sistemas singulares surgidos
da modelagem de cadeias de Markov onde aplica-se o GMRES(m) precondicionado
em que matriz do sistema possivelmente éM -matriz singular, (BENZI; UÇAR, 2007).
Em (VIRNIK, 2007), trabalha-se com o GMRES precondicionado para resolver
sistemas lineares grandes singulares do tipo (I − T t)x = 0 onde T é assumida
como a matriz de transição de um processo de Markov. Observe que T (matriz
estocástica) satisfaz ρ(T ) = 1 assim que I − T t é uma matriz M .
No entanto, há poucos trabalhos envolvendo o GMRES(m) precondicionado
aplicado a certas classes especiais como essas.
Sobre resultados relacionados à convergência do GMRES e do GMRES(m),
o leitor pode consultar (SAAD; SCHULTZ, 1986), (STRIKWERDA; STODDER, 1995),
(SIMONCINI; SZYLD, 2007), (MEURANT, 2012), (MEURANT, 2014), (TEBBENS et al.,
2014) e (TEBBENS; MEURANT, 2015).
Neste trabalho, encontramos alguns resultados numéricos interessantes para o
conjunto de dados que trabalhamos onde alguns padrões de repetem. No próximo
capítulo, nos deteremos a esses resultados.
45
3 Experimentos numéricos
Neste capítulo, observam-se algumas relações importantes entre as proprie-
dades estruturais e numéricas da matriz dos coeficientes dos problemas Ax = b
considerados nos casos particulares em que A = Z1, A = Z2, A = K, as defi-
nições de matrizes encontram-se na seção 2.2. Em seguida, procuramos algumas
relações dessas propriedades entre o comportamento dos métodos GMRES, GM-
RES precondicionado com ILU(0), GMRES(m), GMRES(m) precondicionado com
ILU(0), quanto as variáveis consideradas: o número de iterações (nit), o tempo
de execução em segundos de CPU (time), a norma do resíduo relativo (res) e a
bandeira de convergência (flag).
Apresentaremos apenas os gráficos das variáveis que mostram alguma relação
interessante e as tabelas com os dados numéricos deste capítulo encontram-se no
Apêndice A.
3.1 Sobre a matriz dos coeficientes dos problemas
Nesta seção, serão destacadas algumas propriedades estruturais, numéricas e
espectrais das matrizes Z1, Z2 e K, onde Z1 e Z2 são Z-matrizes esparsas com o
mesmo padrão de esparsidade (NZ(Z1) = NZ(Z2)) e K =Z1 − Z2
2é matriz geral
com, essencialmente NZ(K) = NZ(Z1) = NZ(Z2) onde NZ(Z1) = {(i, j), 1 6i, j 6 n; zij 6= 0} . Esse é o conjunto das posições dos elementos não nulos da
matriz Z1. .
46
3.1.1 Propriedades estruturais
Consideramos as matrizes Z1, Z2 e K estruturalmente idêntidas no sentido de
serem não simétricas (Z1 6= ZT1 ), terem elementos não nulos distintos nas mesmas
posições e, consequentemente, possuem praticamente o mesmo grau de esparsidade
após serem geradas.
Todas as matrizes Z1 deste trabalho foram geradas da seguinte forma:
1. Gera-se uma matriz “R” com densidade uniforme d ∼ U [0, 1] (densidade d
com distribuição uniforme no intervalo [0, 1]);
2. Os elementos da diagonal nulos são substituídos por números positivos ale-
atórios com a mesma densidade e os negativos são substituídos por menos o
módulo de seu valor;
3. Feitas tais modificações na matriz R, tem-se a matriz Z1.
E assim, foi contruída a matriz Z1 (Z-matriz).
Para as matrizes Z2, temos:
1. Gera-se uma matriz “S” com a mesma densidade d de Z1;
2. É feito o mesmo processo 2 feito para a matriz Z1, porém, acrescenta-se a
condição que para os elementos não nulos fora da diagonal estes estejam nas
mesmas posições da matriz Z1 e os elementos positivos fora da diagonal são
substituídos pelos seus negativos. Caso, não estejam, esses números não nulos
são substituídos por zero.
3. Feitas tais modificações na matriz S, obtem-se a matriz Z2.
O objetivo de acrescentar tal condição no item 2 é que a matriz K (combinação
linear de Z1 e de Z2) tenha praticamente mesma esparsidade de Z1 e Z2 para
possibilitar certas comparações da variação do grau de esparsidade com outras
47
variáveis consideradas neste trabalho. A ideia é que estejamos trabalhando com o
mesmo grau para Z1, Z2 e a combinação linear destas que é a matriz K.
Note que quando gera-se a matriz Z1 e suponha que gerassemos a Z2 da mesma
forma que a Z1 sem acrescentar tal condição no item 2., embora que com a mesma
densidade da Z1, teríamos K muito mais densa.
Exemplo. 3.1
Z1 =
0.2 0 −0.70 0.25 0
0 0 0.5
Z2 =
0.3 0 0
−0.1 0.2 0
0 0 0.9
(3.1)
Se K = 0.5Z1 − 0.5Z2, tem-se
K =
−0.1 0 −0.350.05 0.025 0
0 0 −0.2
(3.2)
Nesse caso, Z1 e Z2 mas K não tem o mesmo grau de esparsidade. E isso
dificultaria certas comparações importantes. Portanto, a condição do padrão de
esparsidade no item 2 para Z2 evita este aumento de densidade K.
3.1.2 Propriedades numéricas
Sobre as propriedades numéricas para as matrizes Z1, Z2 e K, atentaremos
para o grau de esparsidade (ge(·)) e o número de condicionamento (cond(·)).
Note que à medida que o valor da densidade (d) aumenta, o grau de esparsidade
(ge) diminui e assim, as matrizes ficarão menos esparsas. São medidas inversamente
proporcionais pois a densidade trata da razão entre o número de elementos não
nulos e o número total de elementos da matriz, já o grau de esparsidade é a
razão entre o número de elementos nulos e o número total de elementos da matriz
48
multiplicado por 100 para sair o valor em %.
Como foram feitas modificações nas matrizes geradas aleatoriamente com certa
densidade d trocando-se elementos nulos por não nulos na diagonal das matrizes
geradas, calculamos também o grau de esparsidade. Optamos, então, por usar
apenas o grau de esparsidade da matriz devido a essas alterações.
3.2 Resultados numéricos
Apresentaremos os principais resultados obtidos, levando em conta diversas
análises. Todos os experimentos numéricos foram realizados no software MA-
TLAB R2013, 64-bit, instalado em uma máquina com processador Intel Core i5
2.60GHz×4 e 4Gb de memória RAM.
3.2.1 Configurações para as simulações numéricas
A tolerância tol usada para o GMRES em todos as simulações numéricas foi
de‖rk‖2‖b‖
= 10−6.
Para as matrizes de ordem 300, sempre que trabalhamos com o GMRES(m)
precondicionado ou não, utilizamos m = 60. Adotamos arbitrariamente esse valor
e assim, foi fixado tal valor para todos os problemas. A norma do resíduo relativo
é dada por‖b− Ax‖2‖b‖2
. Para o GMRES(m), precondicionado ou não, fixamos em
10 o número máximo de iterações seguindo a opcão DEFAULT de MATLAB. Para
cada sistema, a solução exata é conhecida e o erro obtido em relação a solução
exata pode ser visto nas tabelas apresentadas no Apêndice A. O erro é dado por‖x− x∗‖2‖x∗‖2
onde x é a solução exata do problema e x∗ é a solução aproximada
obtida pelo método considerado.
A configuração utilizada para a fatoração ILU(0) no MATLAB encontra-se no
Apêndice B onde constam os códigos com a programação feita no MATLAB.
49
Denotaremos apenas por
1. GMRES(60) para o método GMRES(60) sem precondicionador;
2. GMRES(60)/ILU(0) para GMRES(60) precondicionado com ILU(0);
3. GMRES para o método GMRES sem precondicionador;
4. GMRES/ILU(0) para GMRES precondicionado com ILU(0).
As barras coloridas ao lado dos gráficos de dispersão exibem o mapa de cores
corrente e indicam o mapeamento dos valores dos graus de esparsidade para o
mapa de cores. Ou seja, cada ponto colorido representa um problema diferente
onde a essa cor indica o grau de esparsidade do problema considerado.
Apresentaremos agora os resultados que obtivemos.
3.2.2 Gráficos de dispersão
Apresentaremos os gráficos onde encontramos relações significativas entre o
raio espectral das matrizes dos coeficientes, o grau de esparsidade e as normas do
resíduo relativo para as matrizes Z1, Z2 e K. Como os resultados para as matrizes
Z2 foram no estilo dos resultados para as matrizes Z1, então, por esse motivo,
vamos expor apenas tais resultados para as matrizes Z1 e K.
Para o conjunto de todas matrizes de ordem 300 usadas neste trabalho, temos
matrizes Z1, Z2 e K, onde cada uma das 50 triplas dessas de matrizes tem um
certo grau de esparsidade. E, por sua vez, essas triplas tem grau de esparsidade
variando de 90.26% a 99.57%. Para cada tripla, geramos um vetor aleatório b com
densidade uniforme em [0, 1] e o chute inicial x0 é o vetor nulo, onde resolveremos
os sistemas Z1x = b, Z2x = b e Kx = b, no caso, por 4 métodos numéricos.
Sobre o padrão de esparsidade, veja os spy’s de duas matrizes Z1, a primeira
matriz é que tem o menor grau de esparsidade e segunda é a que tem o maior grau.
50
0 50 100 150 200 250 300
0
50
100
150
200
250
300
nz = 8764
Figura 5: spy da matriz Z1 com grau de esparsidade 90.26%.
0 50 100 150 200 250 300
0
50
100
150
200
250
300
nz = 390
Figura 6: spy da matriz Z1 com grau de esparsidade 99.57%.
Para as matrizes Z1, encontramos uma relação entre as variáveis grau de espar-
sidade e a norma do resíduo relativo quando aplicado o GMRES ou GMRES(60)
aos problemas Z1x = b, onde temos 50 matrizes Z1 com o grau de esparsidade
variando no intervalo mencionado acima. Isto é, quando a matriz torna-se mais es-
parsa, a norma do resíduo relativo também aumentou. Isto sugere uma influência
51
do grau de esparsidade quanto aos resíduos obtidos pelo GMRES ou GMRES(60).
Nos casos em que fizemos o uso de precondicionador, não observamos tais relações.
90 91 92 93 94 95 96 97 98 99 1000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1x 10
−6
Grau de esparsidade
Norm
a d
o r
esid
uo
rela
tivo
Z1 − GMRES
91
92
93
94
95
96
97
98
99
Figura 7: Gráfico do grau de esparsidade × Norma residual relativa do GMRES.
Matrizes Z1 de ordem 300.
Observamos, no gráfico acima, que quanto mais esparsos os problemas, maiores
foram os valores das normas do resíduos relativos quando utilizamos o GMRES
para essas Z-matrizes. Nota-se uma relação não linear um pouco acentuada.
52
90 91 92 93 94 95 96 97 98 99 1000
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
Grau de esparsidade
No
rma d
o r
esid
uo r
ela
tivo
Z1 − GMRES(60)
91
92
93
94
95
96
97
98
99
Figura 8: Gráfico do grau de esparsidade × Norma residual relativa do GM-
RES(60). Matrizes Z1 de ordem 300.
Ainda há uma relação não linear bastante acentuada. Quanto mais esparsos
foram os problemas, maiores foram os resíduos. O que sugere que a esparsidade
dos problemas exerce alguma influência na norma do resíduo relativo do método
considerado.
53
90 91 92 93 94 95 96 97 98 99 1000
1
2
3
4
5
6
7
8
9x 10
−7
Grau de esparsidade
No
rma d
o r
esid
uo r
ela
tivo
K − GMRES
91
92
93
94
95
96
97
98
99
Figura 9: Gráfico do grau de esparsidade × Norma residual relativa do GMRES.
Matriz K de ordem 300.
Para a matriz K, note que o resíduo não oscilou muito e ficou muito alto,
mesmo com a esparsidade variando.
90 91 92 93 94 95 96 97 98 99 1000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Grau de esparsidade
Norm
a d
o r
esid
uo
rela
tivo
K − GMRES(60)
91
92
93
94
95
96
97
98
99
Figura 10: Gráfico da norma residual relativa da matriz K × Norma residual
relativa do GMRES(60). Matriz K de ordem 300.
54
Veja no gráfico acima que não há muita oscilação da norma do resíduo relativo
à medida que varia-se o grau de esparsidade e os valores dessas normas foram
muito altos. As matrizes K, que não pertencem mais ao conjunto das Z-matrizes,
não apresentam resultados tão bons no sentido de poder sugerir relações lineares
ou não lineares fortes entre essas variáveis. Isso é bastante notável ao observarmos
as figuras 8 e 10. Assim, ressaltamos a forte influência da estrutura matricial nos
resultados obtidos a fim de encontrar certos “padrões”.
Também observamos uma relação linear forte entre o grau de esparsidade das
matrizes e o raio espectral da matriz ρ(Z1) para as matrizes Z1.
90 91 92 93 94 95 96 97 98 99 1000
2
4
6
8
10
12
14
Grau de esparsidade
Raio
espectr
al da m
atr
iz Z
1
Z1
91
92
93
94
95
96
97
98
99
Figura 11: Gráfico do grau de esparsidade da matriz Z1 × Raio espectral da matriz
Z1.
Veja que quando a matriz é mais esparsa, o ρ diminui.
Para as matrizes K como se pode observar no gráfico abaixo:
55
90 91 92 93 94 95 96 97 98 99 1000.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
Grau de esparsidade
Ra
io e
spe
ctr
al d
a m
atr
iz K
K
91
92
93
94
95
96
97
98
99
Figura 12: Gráfico do grau de esparsidade da matriz K × Raio espectral da matriz
K.
Veja que quando a matriz é mais esparsa, o ρ diminui, porém há maior varia-
bilidade nos dados do que para a matriz Z1.
Se plotarmos, o gráfico com o raio espectral dessas matrizes Z1 pela norma
do resíduo obtido pelo GMRES ou GMRES(60), teremos gráficos no estilo dos
anteriores a esses dois gráficos acima. Isso acontece por conta dessa relação linear
que há esse raio espectral e o grau de esparsidade.
Os gráficos de dispersão apresentados mostram similaridade dos resultados
obtidos com o GMRES e o GMRES(60). No mesmo tempo, eles mostram uma
diferença significativa entre as matrizes Z1 e as matrizes K.
3.2.3 Análise dos resíduos para Z1, Z2 e K
A seguir, plotaremos as curvas de convergência para a tripla de matrizes (Z1,
Z2,K) no mesmo gráfico que possuem o mesmo grau de esparsidade.
A partir do primeiro gráfico dos 50 plotados, observamos um certo padrão
56
nas curvas de convergência dessas triplas para o GMRES ou para o GMRES(60).
Notamos qua à medida que as matrizes ficam menos esparsas, a curva da matriz
K tende a se afastar das curvas das matrizes Z1 e Z2.
Veja o gráfico envolvendo as matrizes mais esparsas:
0 50 100 150 200 250 30010
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Numero de iteracoes
No
rma d
o r
esid
uo r
ela
tivo
GMRES aplicado a matrizes com ge(⋅)=99.5667%
Z1
Z2
K
Figura 13: Gráfico referente às matrizes Z1, Z2 e K com o GMRES. Matrizes de
ordem 300.
E nos casos de matrizes menos esparsas, o estilo dos gráficos é parecido com
esse abaixo
57
0 50 100 150 200 250 30010
−5
10−4
10−3
10−2
10−1
100
Numero de iteracoes
No
rma d
o r
esid
uo r
ela
tivo
GMRES aplicado a matrizes com ge(⋅)=90.2533%
Z1
Z2
K
Figura 14: Gráfico referente às matrizes Z1, Z2 e K menos esparsas consideradas
com o GMRES. Matrizes de ordem 300.
Averiguamos que algo semelhante aconteceu para esses mesmos casos anterio-
res, porém, considerando o GMRES(60).
0 50 100 150 200 250 300 35010
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Numero de iteracoes
Norm
a d
o r
esid
uo
rela
tivo
GMRES(60) aplicado a matrizes com ge(⋅)=99.5667%
Z1
Z2
K
Figura 15: Gráfico referente às matrizes Z1, Z2 e K com o GMRES. Matrizes de
ordem 300.
58
E nos casos de matrizes menos esparsas, o estilo dos gráficos é parecido com
esse abaixo
0 50 100 150 200 250 300 35010
−2
10−1
100
Numero de iteracoes
No
rma d
o r
esid
uo r
ela
tivo
GMRES(60) aplicado a matrizes com ge(⋅)=90.2533%
Z1
Z2
K
Figura 16: Gráfico referente às matrizes Z1, Z2 e K menos esparsas consideradas
com o GMRES. Matrizes de ordem 300.
É notável que nestes gráficos as diferenças em padrão de convergência entre as
duas classes de matrizes. Z1, Z2 de um lado (Z-matrizes) e K do outro lado (não
Z-matrizes).
A seguir, consideraremos outras combinações lineares das matrizes Z1 e Z2.
3.2.4 Análise dos resíduos para outras matrizes K
Nesta seção, analizaremos de forma similar a seção anterior, mas acrescen-
tando 4 novas matrizes. Veremos o que acontece quando perturbamos gradativa-
mente uma matriz K. Então, aos gráficos anteriores, acrescentaremos essas 4 novas
matrizes.
Considere as seguintes matrizes dadas por
59
K4 =Z1 − 4Z2
1 + 4
K2 =Z1 − 2Z2
1 + 2
K1/2 =Z1 − 0.5Z2
1 + 0.5
K1/4 =Z1 − 0.25Z2
1 + 0.25.
No caso, consideramos β = 4, 2,1
2,1
4de acordo com a expressão 2.6.
Enfatizamos o quanto a estrutura do problema influência bastante nas curvas
de convergência conforme esperávamos. Pois quanto mais “próxima” a estrutura da
matriz K for da matriz Z1 (ou Z2) mais próxima será sua curva de convergência
da matriz Z1. No caso, a matriz K1/4 se aproxima da matriz Z1 e a curva de
convergência da matriz K1/4 tende a ficar mais próxima da matriz Z1 do que a
curva da matriz K.
Abaixo, considerando os problemas mais esparsos aos menos esparsos, vejamos
o gráfico do oitavo problema mais esparso para o método GMRES.
60
0 50 100 150 200 250 30010
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Numero de iteracoes
Norm
a d
o r
esid
uo r
ela
tivo
GMRES sem precondicionador − ge(.)=98.1833%
Z1
Z2
K4
K2
K
K1/2
K1/4
Figura 17: Gráfico para GMRES. Problemas mais esparsos. Matrizes de ordem
300.
A partir do oitavo gráfico, observe que as curvas das matrizesK4, K2, K1/2, K1/4
ficam próximas das curvas de Z1 e de Z2, enquanto que a curva da matriz K se
mantem mais afastada das demais e o número de iterações do GMRES para esta
matriz é maior do que o das demais nos casos mais esparsos.
Em seguida, veja o caso dos problemas menos esparsos.
61
0 50 100 150 200 250 30010
−6
10−5
10−4
10−3
10−2
10−1
100
Numero de iteracoes
Norm
a d
o r
esid
uo r
ela
tivo
GMRES sem precondicionador − ge(.)=90.2533%
Z1
Z2
K4
K2
K
K1/2
K1/4
Figura 18: Gráfico para GMRES. Problemas menos esparsos. Matrizes de ordem
300.
Observamos que a curva da matriz K está quase sempre acima das demais
em todos os problemas considerados, desde os problemas mais esparsos até os
menos esparsos. Além disso, observe que quanto menos esparsos os problemas, mais
iterações ocorreram usando GMRES para todas as matrizes. Ou seja, à medida que
variou o grau de esparsidade das matrizes K4, K2, K1/2, K1/4, Z1, Z2 (do caso mais
esparso para o menos esparso), notamos um aumento no número de iterações do
GMRES para os problemas envolvendo estas matrizes. Quanto a matrizK, tivemos
sempre um número elevado de iterações, em torno de 300, não influenciando a
variação do grau de esparsidade dos 50 problemas considerados envolvendo essa
matriz.
62
Agora, vejamos o quinto gráfico dos problemas mais esparsos para o método
GMRES(60).
0 50 100 150 200 250 300 350
100
Numero de iteracoes
Resid
uo r
ela
tivo
gmres(60) sem precondicionador − ge(.)=98.7778%
Z1
Z2
K4
K2
K
K1/2
K1/4
Figura 19: Gráfico para GMRES(60). Problemas mais esparsos. Matrizes de ordem
300.
A partir desse gráfico, observamos que as curvas das matrizesK4, K2, K1/2, K1/4
ficam próximas das curvas de Z1 e de Z2, ocorrendo estagnação depois da iteração
70, aproximadamente.
Em seguida, veja o caso dos problemas menos esparsos.
63
0 50 100 150 200 250 300 35010
−2
10−1
100
Numero de iteracoes
Re
sid
uo
rela
tivo
gmres(60) sem precondicionador − ge(.)=90.2533%
Z1
Z2
K4
K2
K
K1/2
K1/4
Figura 20: Gráfico para GMRES(60). Problemas menos esparsos. Matrizes de or-
dem 300.
Nesse caso dos problemas menos esparsos, temos praticamente a mesma situ-
ação do gráfico anterior (Figura 19), porém a curva da matriz K ficou ainda mais
distante das demais.
Para o GMRES(60) ou o GMRES ambos com precondicionador ILU(0) não
observamos tais relações.
Portanto, observamos por meio desses gráficos que pequenas pertubações nas
Z-matrizes não influenciam muito nas curvas de convergência para o GMRES (ou
GMRES(m)) sem precondicionador.
3.3 Perfil de desempenho
A ideia do perfil de desempenho é avaliar e comparar o desempenho do conjunto
de algoritmos S em um conjunto de testes P . Segue uma breve apresentação desse
método extraído do artigo onde foi proposto (DOLAN; MORÉ, 2002).
Assuma que temos ns solvers e np problemas. Estamos interessados em avaliar,
64
por exemplo, o tempo de CPU como uma medida de desempenho. Para cada
problema p e solver s, definimos
tp,s = tempo necessário de processamento para resolver o problema p por s solvers.
A fim de comparar o desempenho no problema p pelo solver s com melhor
desempenho por qualquer solver aplicado a este problema, usamos o raio de de-
sempenho dado por
rp,s =tp,s
min{tp,s; s ∈ S}.
Assuma que parâmetro rM > rp,s para todo p, s escolhidos e rp,s = rM se, e
somente se, o solver s não soluciona o problema p.
Deseja-se obter uma avaliação global do desempenho do solver. Se definirmos
ρs(τ) =1
np#{p ∈ P ; rp,s 6 τ},
então ρs é a probabilidade do solver s ∈ S que do raio de desempenho rp,sé com um fator τ ∈ R do melhor raio possível. A função ρs é uma função de
distribuição acumulada para o raio de desempenho.
O perfil de desempenho ρs : R→ [0, 1] para um solucionador é não decrescente,
constante por partes e contínua à direita em cada ponto de descontinuidade. O
valor de ρs(1) é a probabilidade que o solver ganhou sobre o restante dos solvers.
Assim, se estamos interessados apenas no número de vitórias, precisamos apenas
para comparar os valores de ρs(1) para todos os solucionadores.
Veja os gráficos de perfil de desempenho para 50 problemas Z1x = b resolvidos
por quatro métodos numéricos (listados no Apêndice A).
65
10 20 30 40 50 600
0.2
0.4
0.6
0.8
1
τ
ρ
s(τ
)
Z1 − Numero de iteracoes
GMRES(60)
GMRES(60)/ILU(0)
GMRES
GMRES/ILU(0)
Figura 21: Perfil de desempenho para o número de iterações com 50 problemas
envolvendo a matriz Z1. Matrizes de ordem 300.
A curva que apresenta o menor numero de iterações é a do GMRES/ILU(0). As-
sim, com relação ao número de iterações, quando τ = 1, veja que o GMRES/ILU(0)
foi melhor, seguido do GMRES(60)/ILU(0) com mais de 95%. Em seguida, temos
o GMRES com um pouco mais de 15%. Notemos que o GMRES e o GMRES(60)
resolveram cerca de 30% dos problemas apenas.
66
2 4 6 8 10 120
0.2
0.4
0.6
0.8
1
τ
ρ
s(τ
)
Z1 − Tempo
GMRES(60)
GMRES(60)/ILU(0)
GMRES
GMRES/ILU(0)
Figura 22: Perfil de desempenho para o tempo com 50 problemas envolvendo a
matriz Z1. Matrizes de ordem 300.
Nos experimentos numéricos, consideramos o tempo gasto de apenas uma exe-
cução do algoritmo.
Os valores à esquerda com τ = 1 no gráfico mostram que o GMRES/ILU(0)
alcançou solução ótima em mais de 80% dos problemas envolvendo as matrizes Z1
utilizando menor tempo de execução de CPU(s) se comparado aos demais métodos.
Em seguida, temos o GMRES com um pouco mais de 15%.
Agora, vejamos os gráficos para os problemas Kx = b. Para as matrizes K
temos praticamente as mesmas observações feitas para as matrizes Z1.
67
10 20 30 40 50 600
0.2
0.4
0.6
0.8
1
τ
ρ
s(τ
)
K − Numero de iteracoes
GMRES(60)
GMRES(60)/ILU(0)
GMRES
GMRES/ILU(0)
Figura 23: Perfil de desempenho para o número de iterações com 50 problemas
envolvendo a matriz K. Matrizes de ordem 300.
Os valores à esquerda com τ = 1 no gráfico mostram que o GMRES/ILU(0)
alcançou solução ótima em 100% dos problemas envolvendo as matrizes K uti-
lizando menor número de iterações se comparado aos demais métodos, seguido
do GMRES(60)/ILU(0) com um pouco mais de 95%. Observe que o GMRES e o
GMRES(60) resolveram cerca de 40% dos problemas apenas.
68
2 4 6 8 10 120
0.2
0.4
0.6
0.8
1
τ
ρ
s(τ
)
K − Tempo
GMRES(60)
GMRES(60)/ILU(0)
GMRES
GMRES/ILU(0)
Figura 24: Perfil de desempenho para o tempo com 50 problemas envolvendo a
matriz K. Matrizes de ordem 300.
Os valores à esquerda com τ = 1 no gráfico mostram que o GMRES(60)/ILU(0)
alcançou solução ótima em mais de 80% dos problemas envolvendo as matrizes K
utilizando menor tempo de execução de CPU(s) se comparado aos demais métodos.
Em seguida, temos o GMRES/ILU(0) com um pouco mais de 18%.
Observamos, então, que o método GMRES/ILU(0) e GMRES(60) foram os
melhores com relação ao tempo e também como relação ao número de iterações.
Isso tanto para as matrizes Z1 com para as matrizes K.
E sobre as tabelas 2, 4, 6 e 8 (veja Apêndice A), nota-se que houve con-
vergência para a maioria dos problemas onde usamos GMRES/ILU(0) e o GM-
RES(60)/ILU(0), ver figuras 21, 22, 23, 24. O que reforça a importância do uso de
precondicionadores.
69
4 Considerações finais
4.1 Conclusão
Neste trabalho, consideramos algumas versões do algoritmo GMRES para ma-
trizes esparsas de ordem 300 de dois tipos: Z-matrizes e as matrizes K delas cons-
truídas. Consideramos matrizes de vários graus de esparsidade criadas de forma
aleatória dentro de seu respectivo padrão de esparsidade.
Nossa observação principal é que a taxa de convergência dos algoritmos sem
condicionador foi bem maior para as Z-matrizes, ou seja, as matrizes “estrutura-
das”, comparando com as matrizes K. Vale mencionar que esta diferença dimunuiu
à medida que aumentou a esparsidade das matrizes, e nao foi observada em maneira
clara na versão com precondicionador.
Observou-se também uma relação não linear entre o grau de esparsidade e o
resíduo obtido pelo GMRES e pelo GMRES(60) sem precondicionador incluindo
todos os problemas (convergiram ou não) envolvendo a matriz Z. Para as matrizes
K, esse fenômeno não é muito acentuado; ao passo que entre o grau de esparsidade
e o raio espectral das matrizes dos coeficientes observa-se uma relação linear.
Podemos concluir dos graficos de pefil dedesempenho 22 e 24 (tempo) que os
metodos de GMRES(60)/ILU(0) e GMRES/ILU(0) apresentaram melhor desem-
penho no que se refere a otimalidade. Eles tiveram menor tempo de resolução.
Por outro lado cabe destacar que o desempenho do metodo GMRES(60)/ILU(0)
70
foi o que apresentou melhor desempenho quanto à otimalidade e robustez. Como
pode ser observado nos gráficos da seção 3.3. Em todos os casos a curva do GM-
RES(60)/ILU(0) (curva azul) está acima das demais e da curva referente ao mé-
todo GMRES(60) (curva vermelha). Com isto temos uma gama de exemplos de
Z-matrizes e K-matrizes esparsas onde o uso de precondicionadores se mostrou
mais eficiente quando comparada a um método sem precondicionador.
4.2 Trabalhos futuros
Ver outras variações dos métodos numéricos envolvidos: outros métodos de
Krylov; outras técnicas de precondicionamento, por exemplo, ver outras versões
da fatoração LU incompleta para esses problemas; variações no valor dom. Investi-
gar outras classes matrizes e sua influência sobre esses algoritmos. Complementar
o estudo atual acrescentando mais testes numéricos envolvendo outras matrizes
provenientes de algum banco de dados, por exemplo, UF Sparse Matrix Collec-
tion.
Realizar experimentos numéricos nos mesmos cenários mas considerando ma-
trizes de ordens diferentes para ver se tais observações feitas para as matrizes
pequenas (de ordem 300) também serão mantidas para essas com nova ordem.
Fazer o uso de uma técnica estatística chamada análise de variância a fim de
analisar com uma riqueza maior de detalhes e de forma mais precisa os vários
dados obtidos neste trabalho. E também, comparar com as conclusões tiradas com
o perfil de desempenho.
71
Referências
AHAC, A. A.; BUONI, J. J.; OLESKY, D. Stable LU factorization of H-matrices.Linear Algebra and its Applications, Elsevier, v. 99, p. 97–110, 1988.
ALBRECHT, P. Análise numérica: um curso moderno. [S.l.]: LTC, 1973.
ALVES, C. J. Fundamentos de Análise Numérica. Associaçao dos Estudantes doInstituto Superior Técnico-Secçao de Folhas, 1999.
ARAUJO, F. O. d. Método de Projeções Ortogonais. Universidade Federal doRio Grande do Norte, 2011.
ARAUJO, T. J. d. Métodos numéricos para resolução de equações diferenciaisordinárias lineares baseados em interpolação por spline. Universidade Federal doRio Grande do Norte, 2012.
AXELSSON, O. Iterative solution methods. [S.l.]: Cambridge university press,1996.
BENZI, M. Preconditioning techniques for large linear systems: a survey. Journalof computational Physics, Elsevier, v. 182, n. 2, p. 418–477, 2002.
BENZI, M.; UÇAR, B. Block triangular preconditioners for M-matrices andMarkov chains. Electronic Transactions on Numerical Analysis, v. 26, p. 209–227,2007.
BIEZUNER, R. J. Notas de Aula Algebra Linear Numérica. 2009.
BROYDEN, C. G.; VESPUCCI, M. T. Krylov Solvers for Linear AlgebraicSystems: Krylov Solvers. [S.l.]: Elsevier, 2004.
BRU, R. et al. Classes of general H-matrices. Linear Algebra and Its Applications,Elsevier, v. 429, n. 10, p. 2358–2366, 2008.
CARVALHO, L. M. et al. Álgebra Linear Numérica e Computacional - Métodosde Krylov para a Solução de Sistemas Lineares. Ciência Moderna, 2010.
72
CHEN, K. Matrix preconditioning techniques and applications. [S.l.]: CambridgeUniversity Press, 2005.
CIPRA, B. A. The best of the 20th century: editors name top 10 algorithms.SIAM news, v. 33, n. 4, p. 1–2, 2000.
COTTLE, R. W. A field guide to the matrix classes found in the literature of thelinear complementarity problem. Journal of Global Optimization, Springer, v. 46,n. 4, p. 571–580, 2010.
CUMINATO, J. A.; MENEGUETTE, M. Discretização de equações diferenciaisparciais: técnicas de diferenças finitas. [S.l.: s.n.], 2013.
DOLAN, E. D.; MORÉ, J. J. Benchmarking optimization software withperformance profiles. Mathematical programming, Springer, v. 91, n. 2, p.201–213, 2002.
DONGARRA, J.; SULLIVAN, F. Guest editors’ introduction: The top 10algorithms. Computing in Science & Engineering, AIP Publishing, v. 2, n. 1, p.22–23, 2000.
EIERMANN, M.; ERNST, O. G. Geometric aspects of the theory of Krylovsubspace methods. Acta Numerica 2001, Cambridge Univ Press, v. 10, p. 251–312,2001.
FERRONATO, M. Preconditioning for sparse linear systems at the dawn ofthe 21st century: history, current developments, and future perspectives. ISRNApplied Mathematics, Hindawi Publishing Corporation, 2012.
GAUTSCHI, W. Alexander M. Ostrowski (1893–1986): His life, work, andstudents. math. ch/100, p. 257–278, 2010.
GREENBAUM, A. Iterative methods for solving linear systems. [S.l.]: Siam, 1997.
GUILLEARD, S.; ANTONIO, J. Determinación y propiedades de H-matrices.Tese (Doutorado), 2015.
HIGGINS, J. Introducing GMRes: a simple analysis of the algorithm. Tese(Doutorado) — Master’s thesis, South Dakota School of Mines and Technology,Rapid City, South Dakota 57701, 2004.
HIGHAM, N. J. Accuracy and stability of numerical algorithms. [S.l.]: Siam, 2002.
IPSEN, I. C. Numerical matrix analysis: Linear systems and least squares. [S.l.]:Siam, 2009.
73
MEDEIROS, E. N. d. NI-GMRES precondicionado. Universidade Federal do RioGrande do Norte, 2014.
MEIJERINK, J. A.; VORST, H. A. van der. An iterative solution methodfor linear systems of which the coefficient matrix is a symmetric M-matrix.Mathematics of computation, v. 31, n. 137, p. 148–162, 1977.
MESSAOUDI, A. On the stability of the incomplete LU-factorizations andcharacterizations of H-matrices. Numerische Mathematik, Springer, v. 69, n. 3, p.321–331, 1995.
MEURANT, G. The complete stagnation of GMRES for n 6 4. ElectronicTransactions on Numerical Analysis, v. 39, p. 75–101, 2012.
MEURANT, G. Necessary and sufficient conditions for GMRES complete andpartial stagnation. Applied Numerical Mathematics, Elsevier, v. 75, p. 100–107,2014.
MURTY, K. G.; YU, F.-T. Linear complementarity, linear and nonlinearprogramming. [S.l.]: Citeseer, 1988.
OSTROWSKI, A. Über die Determinanten mit überwiegender Hauptdiagonale.Commentarii Mathematici Helvetici, Springer, v. 10, n. 1, p. 69–96, 1937.
PEÑA, J. A stable test to check if a matrix is a nonsingular M-matrix.Mathematics of computation, v. 73, n. 247, p. 1385–1392, 2004.
PISSANETZKY, S. Sparse Matrix Technology-electronic edition. [S.l.]: AcademicPress, 1984.
PLEMMONS, R. J. M-matrix characterizations. I–nonsingular M-matrices.Linear Algebra and its Applications, Elsevier, v. 18, n. 2, p. 175–188, 1977.
POOLE, G.; BOULLION, T. A survey on M-matrices. SIAM review, SIAM,v. 16, n. 4, p. 419–427, 1974.
PRADA, R. B. Um Solucionador Iterativo Para Sistemas-Lineares: Aplicação noProblema do Fluxo de Carga. Tese (Doutorado) — PUC-Rio, 2010.
RODRIGUEZ, M. F. A. Algunos resultados sobre B-matrices y matrices coninversa positiva. Tese (Doutorado), 2012.
ROTHBLUM, U. G. An index classification of M-matrices. Linear Algebra andits Applications, Elsevier, v. 23, p. 1–12, 1979.
74
RUGGIERO, M. A. G.; LOPES, V. L. d. R. Cálculo numérico: aspectos teóricose computacionais. [S.l.]: Makron Books do Brasil, 1997.
SAAD, Y. Iterative methods for sparse linear systems. [S.l.]: Siam, 2003.
SAAD, Y.; SCHULTZ, M. H. GMRES: A generalized minimal residual algorithmfor solving nonsymmetric linear systems. SIAM Journal on scientific andstatistical computing, SIAM, v. 7, n. 3, p. 856–869, 1986.
SIMONCINI, V.; SZYLD, D. B. Recent computational developments in Krylovsubspace methods for linear systems. Numerical Linear Algebra with Applications,Wiley Online Library, v. 14, n. 1, p. 1–59, 2007.
STERN, J. M. Esparsidade, Estrutura, Estabilidade e Escalamento em ÁlgebraLinear Computacional. 1994.
STRAKOŠ, Z. et al. Analysis of Krylov subspace methods: Moments, errorestimators, numerical stability and unexpected consequences. Winter School: NewTrends in Scientific Computing, CIRM, p. 2–3, 2009.
STRIKWERDA, J. C.; STODDER, S. C. Convergence results for GMRES(m).Department of Computer Sciences, University of Wisconsin, 1995.
TEBBENS, J. D.; MEURANT, G. On the admissible convergence curves forrestarted GMRES. [S.l.]: submitted, 2015.
TEBBENS, J. D. et al. On investigating gmres convergence using unitarymatrices. Linear Algebra and its Applications, Elsevier, v. 450, p. 83–107, 2014.
VARGA, R. S.; CAI, D.-Y. On the LU factorization of M-matrices. NumerischeMathematik, Springer, v. 38, n. 2, p. 179–192, 1981.
VIRNIK, E. An algebraic multigrid preconditioner for a class of singularM-matrices. SIAM Journal on Scientific Computing, SIAM, v. 29, n. 5, p.1982–1991, 2007.
VORST, H. A. V. d. Lecture notes on iterative methods. [S.l.]: Citeseer, 1993.1–4 p.
VORST, H. A. V. d. Iterative Krylov methods for large linear systems. [S.l.]:Cambridge University Press, 2003.
WANG, L.; SONG, Y. Preconditioned AOR iterative methods for M-matrices.Journal of Computational and Applied Mathematics, Elsevier, v. 226, n. 1, p.114–124, 2009.
75
WOŹNICKI, Z. I. Matrix splitting principles. International Journal ofMathematics and Mathematical Sciences, Hindawi Publishing Corporation, v. 28,n. 5, p. 251–284, 2001.
76
Apêndice A - Tabelas
Apresentaremos alguns dos resultados obtidos pelos métodos considerados.
Como cada matriz é unicamente determinada pelo seu grau de esparsidade, dis-
tinguiremos cada problema pelo seu grau de esparsidade e não por algum nome
específico para a matriz.
Denotaremos nas tabelas:
• ge(.)→ Grau de esparsidade;
• cond → Número de condição (condest em MATLAB);
• flag → Bandeira de convergência;
• erro → Erro relativo;
• res → Norma do resíduo relativo do método numérico considerado;
• nit → Número de iterações;
• tempo → Tempo (s) gasto pelo método numérico (tempo só do solver, não
envolve o tempo gasto na contrução de precondicionador nos casos onde
houve seu uso).
Quanto as bandeiras:
• flag = 0→ GMRES converge com a tolerância desejada até o número de
iterações definido;
• flag = 1→ GMRES não converge até o número de iterações definido.
77
Utilizaremos apenas três casas decimais nos valores apresentados nas tabelas
abaixo.
A.1 Matrizes Z1
Tabela 1: Resultados numéricos para as matrizes Z1.
Problemas GMRES(60)
ge(z1) cond(z1) flag relres nit time erro
9.96e+01 3.5e+03 0 8.35e-07 79 1.08e-01 8.03e-05
9.94e+01 3.3e+05 0 8.72e-07 177 1.44e-01 5.06e-03
9.92e+01 2.4e+07 1 1.49e-01 300 2.15e-01 4.14e+01
9.90e+01 5.3e+06 1 3.55e-01 300 2.21e-01 1.87e+00
9.88e+01 2.1e+05 1 4.04e-01 300 2.22e-01 1.20e+00
9.86e+01 3.3e+06 1 3.22e-01 300 2.15e-01 1.02e+00
9.84e+01 1.2e+05 1 3.47e-01 300 2.46e-01 8.40e-01
9.82e+01 3.7e+04 1 2.48e-01 300 2.47e-01 7.90e-01
9.80e+01 2.4e+04 1 2.38e-01 300 2.34e-01 7.42e-01
9.78e+01 4.6e+03 1 2.62e-01 300 2.50e-01 6.88e-01
9.76e+01 1.1e+05 1 2.10e-01 300 2.31e-01 7.34e-01
9.74e+01 4.1e+04 1 2.51e-01 300 2.73e-01 8.68e-01
9.72e+01 9.5e+04 1 2.02e-01 300 2.17e-01 6.51e-01
9.70e+01 6.5e+03 1 1.95e-01 300 2.25e-01 6.91e-01
9.68e+01 5.9e+03 1 1.72e-01 300 2.56e-01 6.58e-01
9.66e+01 1.3e+04 1 2.11e-01 300 2.20e-01 6.27e-01
9.64e+01 4.4e+04 1 1.72e-01 300 2.15e-01 6.54e-01
9.62e+01 2.2e+04 1 1.77e-01 300 2.16e-01 6.49e-01
9.61e+01 5.4e+04 1 1.84e-01 300 2.19e-01 6.06e-01
9.59e+01 4.8e+04 1 1.53e-01 300 2.16e-01 6.00e-01
78
9.57e+01 2.5e+04 1 1.68e-01 300 2.15e-01 6.45e-01
9.55e+01 6.9e+03 1 1.39e-01 300 2.18e-01 5.85e-01
9.53e+01 9.6e+04 1 1.35e-01 300 2.66e-01 5.79e-01
9.51e+01 5.9e+03 1 1.35e-01 300 2.18e-01 6.22e-01
9.49e+01 4.9e+03 1 1.42e-01 300 2.25e-01 5.70e-01
9.47e+01 8.7e+03 1 1.23e-01 300 2.21e-01 5.44e-01
9.45e+01 1.7e+04 1 1.32e-01 300 2.16e-01 5.56e-01
9.43e+01 1.1e+04 1 1.29e-01 300 2.25e-01 5.59e-01
9.41e+01 5.0e+03 1 1.33e-01 300 2.17e-01 5.97e-01
9.39e+01 1.2e+04 1 1.19e-01 300 2.77e-01 5.60e-01
9.38e+01 2.2e+04 1 1.30e-01 300 2.21e-01 5.59e-01
9.36e+01 2.1e+04 1 1.14e-01 300 2.16e-01 5.36e-01
9.34e+01 1.5e+05 1 1.15e-01 300 2.32e-01 5.52e-01
9.32e+01 6.8e+04 1 1.23e-01 300 2.17e-01 5.75e-01
9.30e+01 5.1e+03 1 1.21e-01 300 2.38e-01 5.52e-01
9.29e+01 4.2e+03 1 1.33e-01 300 2.28e-01 5.88e-01
9.27e+01 4.5e+03 1 1.10e-01 300 2.22e-01 5.56e-01
9.25e+01 5.7e+03 1 1.14e-01 300 2.41e-01 5.63e-01
9.23e+01 1.1e+05 1 1.03e-01 300 2.16e-01 5.70e-01
9.21e+01 7.4e+03 1 9.97e-02 300 2.49e-01 4.88e-01
9.19e+01 1.6e+05 1 1.05e-01 300 2.16e-01 5.39e-01
9.17e+01 2.6e+04 1 1.15e-01 300 2.46e-01 5.82e-01
9.15e+01 5.5e+03 1 1.05e-01 300 2.17e-01 5.62e-01
9.13e+01 1.8e+04 1 1.01e-01 300 2.57e-01 5.65e-01
9.12e+01 1.5e+04 1 1.09e-01 300 2.49e-01 6.07e-01
9.10e+01 2.9e+05 1 1.02e-01 300 2.26e-01 5.23e-01
9.08e+01 4.0e+03 1 1.05e-01 300 2.16e-01 5.70e-01
9.07e+01 4.8e+03 1 9.59e-02 300 2.39e-01 5.35e-01
9.04e+01 1.1e+05 1 9.12e-02 300 2.18e-01 5.62e-01
79
9.03e+01 5.4e+03 1 9.71e-02 300 2.43e-01 5.43e-01
Tabela 2: Continuação dos resultados numéricos para as
matrizes Z1.
Problemas GMRES(60)/ILU(0)
ge(z1) flag relres nit time erro
9.96e+01 0 3.66e-17 3 2.349e-02 5.90e-15
9.94e+01 0 3.08e-17 8 2.421e-02 6.80e-15
9.92e+01 0 2.94e-07 28 3.748e-02 8.03e-02
9.90e+01 0 4.86e-07 48 5.350e-02 6.50e+00
9.88e+01 0 9.82e-07 56 6.194e-02 2.58e+01
9.86e+01 1 1.63e-05 300 2.229e-01 1.73e+01
9.84e+01 0 9.12e-07 14 3.410e-02 2.88e+01
9.82e+01 0 5.09e-07 14 3.117e-02 1.89e+01
9.80e+01 0 3.18e-07 9 2.823e-02 1.21e+02
9.78e+01 0 8.23e-07 8 2.770e-02 1.63e+02
9.76e+01 0 1.25e-08 3 2.597e-02 2.63e+01
9.74e+01 0 5.25e-08 2 2.581e-02 3.60e+01
9.72e+01 0 3.46e-07 11 2.880e-02 1.06e+02
9.70e+01 0 8.49e-07 7 2.704e-02 1.05e+02
9.68e+01 0 8.52e-07 8 2.788e-02 3.90e+01
9.66e+01 0 3.20e-07 11 2.902e-02 8.91e+01
9.64e+01 0 3.00e-07 4 2.670e-02 2.37e+02
9.62e+01 0 4.62e-07 4 2.684e-02 4.31e+00
9.61e+01 0 6.42e-07 4 2.655e-02 4.11e+01
9.59e+01 0 2.67e-08 3 2.671e-02 1.83e+01
80
9.57e+01 0 4.01e-08 4 2.666e-02 1.28e+02
9.55e+01 0 9.36e-09 1 2.562e-02 4.47e+03
9.53e+01 0 1.38e-07 3 2.631e-02 3.40e+01
9.51e+01 0 5.29e-13 1 2.561e-02 5.68e+01
9.49e+01 0 5.45e-07 2 3.313e-02 6.62e+00
9.47e+01 0 7.47e-10 1 2.583e-02 6.16e+01
9.45e+01 0 9.01e-07 1 2.700e-02 2.57e+01
9.43e+01 0 4.50e-12 2 2.573e-02 2.99e+02
9.41e+01 0 6.54e-09 4 2.635e-02 7.15e+02
9.39e+01 0 1.24e-08 1 2.564e-02 1.86e+01
9.38e+01 0 4.97e-07 1 2.561e-02 5.87e+01
9.36e+01 0 8.10e-16 2 2.608e-02 1.55e+01
9.34e+01 0 9.70e-07 1 2.566e-02 3.62e+01
9.32e+01 0 3.44e-08 1 2.565e-02 1.78e+01
9.30e+01 0 4.52e-08 1 2.565e-02 5.82e+01
9.29e+01 0 3.25e-10 1 2.846e-02 4.92e+00
9.27e+01 0 1.01e-11 1 2.574e-02 1.66e+01
9.25e+01 0 8.65e-12 1 2.578e-02 1.10e+01
9.23e+01 0 1.73e-09 1 2.549e-02 4.75e+01
9.21e+01 0 1.56e-15 1 2.559e-02 2.87e+02
9.19e+01 0 6.36e-11 1 2.565e-02 1.39e+02
9.17e+01 0 1.55e-08 1 2.554e-02 1.78e+01
9.15e+01 0 3.69e-09 1 2.565e-02 4.96e+01
9.13e+01 0 5.49e-09 1 2.851e-02 3.19e+01
9.12e+01 0 1.89e-13 2 2.642e-02 5.04e+01
9.10e+01 0 8.95e-07 1 2.690e-02 9.68e+01
9.08e+01 0 1.38e-15 1 2.518e-02 5.80e+00
9.07e+01 0 1.23e-15 1 2.573e-02 1.67e+01
9.04e+01 0 1.12e-15 1 2.586e-02 1.31e+01
81
9.03e+01 0 2.47e-13 1 2.555e-02 1.71e+02
Tabela 3: Continuação dos resultados numéricos para as
matrizes Z1.
Problemas GMRES
ge(z1) flag relres nit time erro
9.96e+01 0 8.16e-07 73 7.447e-02 3.93e-05
9.94e+01 0 9.98e-07 105 1.185e-01 7.33e-03
9.92e+01 0 9.25e-07 135 1.792e-01 1.69e-01
9.90e+01 0 5.74e-07 213 4.177e-01 2.05e-02
9.88e+01 0 9.78e-07 238 5.254e-01 2.79e-04
9.86e+01 0 8.35e-07 264 6.251e-01 2.01e-02
9.84e+01 0 7.19e-07 269 6.389e-01 3.33e-04
9.82e+01 0 8.98e-07 275 6.687e-01 2.14e-04
9.80e+01 0 8.59e-07 273 6.443e-01 7.80e-05
9.78e+01 0 7.20e-07 284 7.069e-01 9.53e-05
9.76e+01 0 9.42e-07 291 7.335e-01 1.08e-03
9.74e+01 0 2.83e-07 294 7.483e-01 1.51e-03
9.72e+01 0 5.77e-07 291 7.303e-01 1.50e-04
9.70e+01 0 4.48e-07 294 7.373e-01 3.55e-05
9.68e+01 0 4.64e-07 292 7.338e-01 9.24e-05
9.66e+01 0 3.47e-07 297 7.854e-01 7.01e-05
9.64e+01 0 9.90e-07 299 7.663e-01 5.59e-04
9.62e+01 0 5.25e-07 298 7.658e-01 2.44e-04
9.61e+01 0 6.24e-07 297 7.881e-01 8.08e-04
9.59e+01 0 1.58e-08 299 7.702e-01 4.09e-05
82
9.57e+01 0 2.45e-07 298 7.612e-01 2.15e-04
9.55e+01 0 1.82e-07 298 7.790e-01 3.47e-05
9.53e+01 0 4.58e-07 299 7.683e-01 5.78e-04
9.51e+01 0 5.45e-07 298 7.644e-01 1.54e-04
9.49e+01 0 6.96e-07 295 7.517e-01 3.23e-04
9.47e+01 0 6.03e-07 299 7.694e-01 5.71e-04
9.45e+01 0 0.00e+00 299 7.796e-01 2.18e-14
9.43e+01 0 8.79e-07 298 7.619e-01 1.43e-04
9.41e+01 0 2.97e-09 299 7.641e-01 6.42e-07
9.39e+01 0 1.26e-07 299 7.920e-01 5.09e-05
9.38e+01 0 0.00e+00 299 7.759e-01 4.44e-13
9.36e+01 0 6.97e-07 299 7.718e-01 2.33e-04
9.34e+01 0 0.00e+00 299 7.958e-01 3.37e-14
9.32e+01 0 0.00e+00 299 7.815e-01 7.38e-13
9.30e+01 0 0.00e+00 299 7.800e-01 2.34e-14
9.29e+01 0 0.00e+00 299 7.787e-01 1.79e-14
9.27e+01 0 0.00e+00 299 7.790e-01 3.77e-14
9.25e+01 0 1.08e-07 299 7.919e-01 6.67e-05
9.23e+01 0 0.00e+00 299 7.763e-01 3.18e-13
9.21e+01 0 0.00e+00 299 7.786e-01 9.24e-14
9.19e+01 0 0.00e+00 299 7.960e-01 6.43e-13
9.17e+01 0 0.00e+00 299 7.778e-01 8.74e-14
9.15e+01 0 0.00e+00 299 7.769e-01 1.64e-14
9.13e+01 0 0.00e+00 299 7.861e-01 1.91e-13
9.12e+01 0 0.00e+00 299 7.877e-01 1.40e-13
9.10e+01 0 0.00e+00 299 7.884e-01 1.79e-12
9.08e+01 0 2.94e-07 299 7.700e-01 6.46e-05
9.07e+01 0 0.00e+00 299 7.725e-01 2.15e-14
9.04e+01 0 0.00e+00 299 7.961e-01 3.63e-13
83
9.03e+01 0 0.00e+00 299 7.833e-01 1.25e-13
Tabela 4: Continuação dos resultados numéricos para as
matrizes Z1.
Problemas GMRES/ILU(0)
ge(z1) flag relres nit time erro
9.96e+01 0 3.66e-17 3 2.327e-02 5.90e-15
9.94e+01 0 3.08e-17 8 2.440e-02 6.80e-15
9.92e+01 0 2.94e-07 28 5.434e-02 8.03e-02
9.90e+01 0 4.86e-07 48 8.060e-02 6.50e+00
9.88e+01 0 9.82e-07 56 6.355e-02 2.58e+01
9.86e+01 0 8.83e-07 78 1.131e-01 4.34e+00
9.84e+01 0 9.12e-07 14 4.226e-02 2.88e+01
9.82e+01 0 5.09e-07 14 4.145e-02 1.89e+01
9.80e+01 0 3.18e-07 9 3.928e-02 1.21e+02
9.78e+01 0 8.23e-07 8 4.848e-02 1.63e+02
9.76e+01 0 1.25e-08 3 2.669e-02 2.63e+01
9.74e+01 0 5.25e-08 2 2.636e-02 3.60e+01
9.72e+01 0 3.46e-07 11 3.560e-02 1.06e+02
9.70e+01 0 8.49e-07 7 2.827e-02 1.05e+02
9.68e+01 0 8.52e-07 8 2.827e-02 3.90e+01
9.66e+01 0 3.20e-07 11 2.914e-02 8.91e+01
9.64e+01 0 3.00e-07 4 2.839e-02 2.37e+02
9.62e+01 0 4.62e-07 4 2.699e-02 4.31e+00
9.61e+01 0 6.42e-07 4 2.693e-02 4.11e+01
9.59e+01 0 2.67e-08 3 2.661e-02 1.83e+01
84
9.57e+01 0 4.01e-08 4 2.699e-02 1.28e+02
9.55e+01 0 9.36e-09 1 2.593e-02 4.47e+03
9.53e+01 0 1.38e-07 3 2.685e-02 3.40e+01
9.51e+01 0 5.29e-13 1 2.590e-02 5.68e+01
9.49e+01 0 5.45e-07 2 2.632e-02 6.62e+00
9.47e+01 0 7.47e-10 1 2.598e-02 6.16e+01
9.45e+01 0 9.01e-07 1 2.518e-02 2.57e+01
9.43e+01 0 4.50e-12 2 2.676e-02 2.99e+02
9.41e+01 0 6.54e-09 4 2.710e-02 7.15e+02
9.39e+01 0 1.24e-08 1 3.566e-02 1.86e+01
9.38e+01 0 4.97e-07 1 2.513e-02 5.87e+01
9.36e+01 0 8.10e-16 2 3.637e-02 1.55e+01
9.34e+01 0 9.70e-07 1 2.534e-02 3.62e+01
9.32e+01 0 3.44e-08 1 3.619e-02 1.78e+01
9.30e+01 0 4.52e-08 1 3.395e-02 5.82e+01
9.29e+01 0 3.25e-10 1 3.568e-02 4.92e+00
9.27e+01 0 1.01e-11 1 3.568e-02 1.66e+01
9.25e+01 0 8.65e-12 1 3.114e-02 1.10e+01
9.23e+01 0 1.73e-09 1 3.585e-02 4.75e+01
9.21e+01 0 1.56e-15 1 3.577e-02 2.87e+02
9.19e+01 0 6.36e-11 1 3.585e-02 1.39e+02
9.17e+01 0 1.55e-08 1 3.578e-02 1.78e+01
9.15e+01 0 3.69e-09 1 3.582e-02 4.96e+01
9.13e+01 0 5.49e-09 1 3.571e-02 3.19e+01
9.12e+01 0 1.89e-13 2 3.652e-02 5.04e+01
9.10e+01 0 8.95e-07 1 2.490e-02 9.68e+01
9.08e+01 0 1.38e-15 1 3.615e-02 5.80e+00
9.07e+01 0 1.23e-15 1 3.529e-02 1.67e+01
9.04e+01 0 1.12e-15 1 3.600e-02 1.31e+01
85
9.03e+01 0 2.47e-13 1 3.527e-02 1.71e+02
A.2 Matrizes K
Tabela 5: Resultados numéricos para as matrizes K.
Problemas GMRES(60)
ge(k) cond(k) flag relres nit time erro
9.96e+01 1.1e+03 1 1.71e-03 301 2.64e-01 1.62e-01
9.94e+01 6.1e+06 1 1.26e-02 301 2.15e-01 3.04e+02
9.92e+01 5.9e+06 1 3.99e-01 301 2.29e-01 5.27e+00
9.90e+01 1.9e+06 1 5.52e-01 301 2.17e-01 1.35e+00
9.88e+01 1.1e+05 1 6.24e-01 301 2.53e-01 1.12e+00
9.86e+01 1.6e+07 1 6.83e-01 301 2.17e-01 1.05e+00
9.84e+01 1.2e+05 1 6.07e-01 301 2.14e-01 9.62e-01
9.82e+01 1.3e+04 1 6.68e-01 301 2.19e-01 1.13e+00
9.80e+01 4.6e+04 1 6.80e-01 301 2.27e-01 1.01e+00
9.78e+01 2.4e+04 1 7.54e-01 301 2.25e-01 1.04e+00
9.76e+01 1.7e+04 1 7.21e-01 301 2.28e-01 9.59e-01
9.74e+01 1.0e+04 1 6.74e-01 301 2.32e-01 1.00e+00
9.72e+01 1.1e+04 1 7.58e-01 301 2.19e-01 1.05e+00
9.70e+01 3.5e+04 1 7.32e-01 301 2.32e-01 1.06e+00
9.68e+01 1.2e+05 1 7.30e-01 301 2.30e-01 1.04e+00
9.66e+01 2.3e+04 1 7.51e-01 301 2.34e-01 1.03e+00
9.64e+01 1.2e+04 1 7.11e-01 301 2.30e-01 1.01e+00
9.62e+01 4.6e+03 1 7.74e-01 301 2.26e-01 1.01e+00
9.61e+01 1.3e+04 1 7.74e-01 301 2.62e-01 1.00e+00
86
9.59e+01 6.5e+03 1 6.87e-01 301 2.29e-01 1.01e+00
9.57e+01 5.3e+03 1 7.40e-01 301 2.33e-01 1.02e+00
9.55e+01 9.0e+03 1 7.44e-01 301 2.27e-01 1.06e+00
9.53e+01 7.4e+03 1 7.51e-01 301 2.30e-01 1.02e+00
9.51e+01 9.9e+04 1 7.75e-01 301 2.29e-01 9.95e-01
9.49e+01 5.1e+04 1 7.59e-01 301 2.32e-01 1.04e+00
9.47e+01 7.1e+03 1 8.05e-01 301 2.31e-01 9.76e-01
9.45e+01 5.9e+03 1 8.24e-01 301 2.27e-01 1.05e+00
9.43e+01 3.5e+03 1 7.58e-01 301 2.32e-01 9.52e-01
9.41e+01 9.4e+03 1 7.57e-01 301 2.37e-01 1.05e+00
9.39e+01 2.1e+04 1 7.59e-01 301 2.33e-01 1.02e+00
9.38e+01 9.0e+03 1 8.22e-01 301 2.29e-01 1.01e+00
9.36e+01 2.8e+04 1 7.93e-01 301 2.31e-01 1.02e+00
9.34e+01 4.2e+03 1 7.24e-01 301 3.15e-01 1.00e+00
9.32e+01 4.1e+04 1 7.25e-01 301 2.20e-01 9.69e-01
9.30e+01 5.7e+03 1 7.38e-01 301 2.33e-01 9.97e-01
9.29e+01 2.9e+03 1 7.80e-01 301 2.17e-01 9.83e-01
9.27e+01 3.1e+03 1 8.12e-01 301 2.34e-01 1.04e+00
9.25e+01 8.4e+03 1 7.90e-01 301 2.34e-01 1.01e+00
9.23e+01 9.3e+03 1 7.89e-01 301 2.33e-01 9.98e-01
9.21e+01 3.6e+04 1 8.23e-01 301 2.28e-01 1.02e+00
9.19e+01 2.9e+04 1 7.26e-01 301 2.33e-01 9.78e-01
9.17e+01 9.7e+04 1 8.35e-01 301 2.36e-01 9.93e-01
9.15e+01 2.3e+04 1 7.75e-01 301 2.98e-01 1.04e+00
9.13e+01 6.2e+03 1 7.18e-01 301 2.21e-01 9.83e-01
9.12e+01 3.1e+04 1 7.90e-01 301 2.29e-01 9.89e-01
9.10e+01 2.7e+04 1 8.24e-01 301 2.41e-01 9.91e-01
9.08e+01 1.2e+04 1 7.85e-01 301 2.32e-01 1.06e+00
9.07e+01 8.8e+03 1 8.47e-01 301 2.31e-01 1.03e+00
87
9.04e+01 1.2e+04 1 7.75e-01 301 2.32e-01 1.06e+00
9.03e+01 2.6e+04 1 7.43e-01 301 2.29e-01 9.80e-01
Tabela 6: Continuação dos resultados numéricos para as
matrizes K.
Problemas GMRES(60)/ILU(0)
ge(k) flag relres nit time erro
9.96e+01 0 1.96e-17 4 2.350e-02 1.50e-15
9.94e+01 0 1.59e-17 9 2.441e-02 1.89e-13
9.92e+01 0 7.62e-07 30 3.776e-02 2.19e-03
9.90e+01 0 7.45e-07 50 5.457e-02 8.57e+00
9.88e+01 0 9.24e-07 35 4.234e-02 1.63e+01
9.86e+01 1 5.96e-06 301 2.199e-01 2.90e+01
9.84e+01 1 3.21e-06 301 2.232e-01 1.34e+01
9.82e+01 0 7.11e-07 33 4.506e-02 8.57e+00
9.80e+01 0 9.11e-07 38 4.365e-02 6.13e+01
9.78e+01 0 9.63e-07 17 3.064e-02 1.85e+01
9.76e+01 0 9.54e-07 40 4.576e-02 1.22e+02
9.74e+01 0 4.66e-07 11 2.749e-02 3.09e+01
9.72e+01 0 3.44e-07 11 2.775e-02 8.98e+01
9.70e+01 0 8.54e-07 9 2.713e-02 6.91e+01
9.68e+01 0 1.93e-07 6 2.653e-02 1.96e+01
9.66e+01 0 2.27e-07 9 2.733e-02 4.20e+01
9.64e+01 0 2.22e-07 6 2.636e-02 1.50e+01
9.62e+01 0 2.59e-07 6 2.709e-02 5.35e+02
9.61e+01 0 3.22e-10 6 2.628e-02 4.17e+01
88
9.59e+01 0 5.69e-09 3 2.555e-02 2.93e+01
9.57e+01 0 5.08e-07 3 2.510e-02 3.90e+02
9.55e+01 0 8.80e-07 4 2.581e-02 4.21e+00
9.53e+01 0 6.72e-07 2 2.460e-02 3.79e+00
9.51e+01 0 3.11e-07 5 3.397e-02 7.56e+01
9.49e+01 0 2.38e-09 3 2.563e-02 1.88e+02
9.47e+01 0 7.63e-07 4 2.578e-02 4.54e+00
9.45e+01 0 4.19e-08 4 2.600e-02 4.81e+02
9.43e+01 0 5.49e-10 3 2.560e-02 1.28e+02
9.41e+01 0 1.15e-08 2 2.490e-02 1.77e+01
9.39e+01 0 7.56e-07 2 2.500e-02 2.36e+00
9.38e+01 0 4.61e-07 2 2.488e-02 1.21e+00
9.36e+01 0 5.98e-14 2 2.471e-02 7.97e+01
9.34e+01 0 6.09e-12 3 4.174e-02 1.29e+03
9.32e+01 0 7.06e-17 2 2.550e-02 1.21e+02
9.30e+01 0 7.03e-07 2 2.472e-02 1.54e+01
9.29e+01 0 4.16e-13 3 2.583e-02 2.08e+02
9.27e+01 0 6.70e-10 2 2.526e-02 5.80e+01
9.25e+01 0 8.16e-08 2 2.499e-02 1.31e+01
9.23e+01 0 8.25e-13 2 2.565e-02 6.12e+00
9.21e+01 0 1.64e-12 2 2.505e-02 3.38e+02
9.19e+01 0 7.18e-09 3 2.517e-02 1.06e+01
9.17e+01 0 4.59e-10 2 2.653e-02 1.89e+01
9.15e+01 0 2.09e-13 2 3.843e-02 2.64e+00
9.13e+01 0 2.88e-08 3 2.543e-02 7.15e+00
9.12e+01 0 1.74e-11 2 2.571e-02 1.04e+00
9.10e+01 0 1.55e-15 2 2.533e-02 3.51e+01
9.08e+01 0 1.90e-08 2 2.539e-02 6.82e+00
9.07e+01 0 9.18e-16 2 2.572e-02 5.35e+01
89
9.04e+01 0 5.83e-10 2 2.507e-02 1.83e+00
9.03e+01 0 7.90e-17 2 2.506e-02 6.72e+01
Tabela 7: Continuação dos resultados numéricos para as
matrizes K.
Problemas GMRES
ge(k) flag relres nit time erro
9.96e+01 0 0.00e+00 300 7.862e-01 6.25e-15
9.94e+01 0 8.83e-07 288 7.254e-01 2.67e-01
9.92e+01 0 0.00e+00 300 7.849e-01 7.11e-13
9.90e+01 0 3.32e-07 300 7.756e-01 4.07e-03
9.88e+01 0 0.00e+00 300 7.877e-01 5.10e-13
9.86e+01 0 0.00e+00 300 7.859e-01 5.04e-12
9.84e+01 0 0.00e+00 300 8.182e-01 2.53e-14
9.82e+01 0 0.00e+00 300 7.846e-01 3.03e-14
9.80e+01 0 0.00e+00 300 7.818e-01 2.64e-13
9.78e+01 0 0.00e+00 300 8.194e-01 4.58e-14
9.76e+01 0 0.00e+00 300 7.801e-01 8.92e-14
9.74e+01 0 0.00e+00 300 8.265e-01 2.39e-14
9.72e+01 0 0.00e+00 300 7.812e-01 2.34e-14
9.70e+01 0 0.00e+00 300 7.898e-01 3.44e-14
9.68e+01 0 0.00e+00 300 8.098e-01 2.67e-13
9.66e+01 0 0.00e+00 300 7.836e-01 3.58e-14
9.64e+01 0 0.00e+00 300 7.870e-01 4.98e-14
9.62e+01 0 0.00e+00 300 7.824e-01 2.90e-14
9.61e+01 0 0.00e+00 300 7.869e-01 6.97e-14
90
9.59e+01 0 0.00e+00 300 7.857e-01 2.37e-14
9.57e+01 0 0.00e+00 300 8.122e-01 9.72e-15
9.55e+01 0 0.00e+00 300 7.947e-01 2.53e-14
9.53e+01 0 0.00e+00 300 7.767e-01 3.10e-14
9.51e+01 0 0.00e+00 300 8.100e-01 6.17e-14
9.49e+01 0 0.00e+00 300 7.829e-01 2.43e-13
9.47e+01 0 0.00e+00 300 8.045e-01 6.26e-15
9.45e+01 0 0.00e+00 300 7.880e-01 2.54e-14
9.43e+01 0 0.00e+00 300 8.198e-01 2.08e-14
9.41e+01 0 0.00e+00 300 7.931e-01 4.05e-14
9.39e+01 0 0.00e+00 300 7.862e-01 1.23e-14
9.38e+01 0 0.00e+00 300 7.905e-01 1.35e-14
9.36e+01 0 0.00e+00 300 8.350e-01 3.11e-14
9.34e+01 0 0.00e+00 300 8.958e-01 3.50e-14
9.32e+01 0 0.00e+00 300 8.275e-01 3.63e-14
9.30e+01 0 0.00e+00 300 8.596e-01 1.20e-14
9.29e+01 0 0.00e+00 300 7.929e-01 2.14e-14
9.27e+01 0 0.00e+00 300 7.866e-01 2.34e-14
9.25e+01 0 0.00e+00 300 7.798e-01 8.45e-15
9.23e+01 0 0.00e+00 300 8.142e-01 1.10e-14
9.21e+01 0 0.00e+00 300 7.853e-01 7.40e-14
9.19e+01 0 0.00e+00 300 7.855e-01 5.63e-14
9.17e+01 0 0.00e+00 300 8.407e-01 9.63e-14
9.15e+01 0 0.00e+00 300 8.086e-01 6.18e-14
9.13e+01 0 0.00e+00 300 7.857e-01 2.31e-14
9.12e+01 0 0.00e+00 300 8.060e-01 8.32e-14
9.10e+01 0 0.00e+00 300 7.856e-01 2.43e-14
9.08e+01 0 0.00e+00 300 7.846e-01 6.26e-14
9.07e+01 0 0.00e+00 300 8.124e-01 7.10e-15
91
9.04e+01 0 0.00e+00 300 7.832e-01 3.48e-14
9.03e+01 0 0.00e+00 300 8.339e-01 4.18e-14
Tabela 8: Continuação dos resultados numéricos para as
matrizes K.
Problemas GMRES/ILU(0)
ge(k) flag relres nit time erro
9.96e+01 0 1.96e-17 4 2.395e-02 1.50e-15
9.94e+01 0 1.59e-17 9 2.560e-02 1.89e-13
9.92e+01 0 7.62e-07 30 3.850e-02 2.19e-03
9.90e+01 0 7.45e-07 50 6.137e-02 8.57e+00
9.88e+01 0 9.24e-07 35 5.063e-02 1.63e+01
9.86e+01 0 9.81e-07 77 8.617e-02 7.42e+00
9.84e+01 0 8.85e-07 70 8.020e-02 7.97e+00
9.82e+01 0 7.11e-07 33 4.074e-02 8.57e+00
9.80e+01 0 9.11e-07 38 4.359e-02 6.13e+01
9.78e+01 0 9.63e-07 17 3.110e-02 1.85e+01
9.76e+01 0 9.54e-07 40 4.689e-02 1.22e+02
9.74e+01 0 4.66e-07 11 2.852e-02 3.09e+01
9.72e+01 0 3.44e-07 11 2.854e-02 8.98e+01
9.70e+01 0 8.54e-07 9 2.786e-02 6.91e+01
9.68e+01 0 1.93e-07 6 2.677e-02 1.96e+01
9.66e+01 0 2.27e-07 9 2.819e-02 4.20e+01
9.64e+01 0 2.22e-07 6 2.613e-02 1.50e+01
9.62e+01 0 2.59e-07 6 2.936e-02 5.35e+02
9.61e+01 0 3.22e-10 6 2.677e-02 4.17e+01
92
9.59e+01 0 5.69e-09 3 2.601e-02 2.93e+01
9.57e+01 0 5.08e-07 3 2.603e-02 3.90e+02
9.55e+01 0 8.80e-07 4 2.637e-02 4.21e+00
9.53e+01 0 6.72e-07 2 2.564e-02 3.79e+00
9.51e+01 0 3.11e-07 5 2.657e-02 7.56e+01
9.49e+01 0 2.38e-09 3 2.612e-02 1.88e+02
9.47e+01 0 7.63e-07 4 4.188e-02 4.54e+00
9.45e+01 0 4.19e-08 4 2.637e-02 4.81e+02
9.43e+01 0 5.49e-10 3 2.694e-02 1.28e+02
9.41e+01 0 1.15e-08 2 2.556e-02 1.77e+01
9.39e+01 0 7.56e-07 2 2.551e-02 2.36e+00
9.38e+01 0 4.61e-07 2 2.562e-02 1.21e+00
9.36e+01 0 5.98e-14 2 3.306e-02 7.97e+01
9.34e+01 0 6.09e-12 3 2.604e-02 1.29e+03
9.32e+01 0 7.06e-17 2 2.572e-02 1.21e+02
9.30e+01 0 7.03e-07 2 3.671e-02 1.54e+01
9.29e+01 0 4.16e-13 3 2.615e-02 2.08e+02
9.27e+01 0 6.70e-10 2 3.236e-02 5.80e+01
9.25e+01 0 8.16e-08 2 2.558e-02 1.31e+01
9.23e+01 0 8.25e-13 2 2.627e-02 6.12e+00
9.21e+01 0 1.64e-12 2 2.550e-02 3.38e+02
9.19e+01 0 7.18e-09 3 2.672e-02 1.06e+01
9.17e+01 0 4.59e-10 2 4.590e-02 1.89e+01
9.15e+01 0 2.09e-13 2 2.712e-02 2.64e+00
9.13e+01 0 2.88e-08 3 2.610e-02 7.15e+00
9.12e+01 0 1.74e-11 2 2.573e-02 1.04e+00
9.10e+01 0 1.55e-15 2 2.566e-02 3.51e+01
9.08e+01 0 1.90e-08 2 2.549e-02 6.82e+00
9.07e+01 0 9.18e-16 2 2.552e-02 5.35e+01
93
9.04e+01 0 5.83e-10 2 2.552e-02 1.83e+00
9.03e+01 0 7.90e-17 2 2.768e-02 6.72e+01
94
Apêndice B - Programação no
Matlab
Seguem-se alguns dos scripts utilizados nesse trabalho na linguagemMATLAB:
1. Geração dos bancos de dados e sub-rotinas;
2. Matriz para perfil de desempenho;
3. Perfil de desempenho para matriz Z1.
B.1 Geraçao dos bancos de dados
1 % data_generate.m
2
3 clear all
4 clc
5
6 rng(1)
7
8 dimension = 300;
9 fileQtty = 100;
10
11 % Gerando arquivos
12
13 for i=1:2:fileQtty
95
14 density = i * 1e-3;
15
16 Z1 = negateNonDiagonal(generateMatrix(dimension, density));
17 sparsity_degre_z1 = (dimension^2-nnz(Z1))/dimension^2;
18 ge_z1 = sparsity_degre_z1*100;
19
20 Z2 = generateZ2(Z1, generateMatrix(dimension, density));
21 sparsity_degre_z2 = (dimension^2-nnz(Z2))/dimension^2;
22 ge_z2 = sparsity_degre_z2*100;
23
24 K = 0.5*Z1 - 0.5*Z2;
25 sparsity_degre_k = (dimension^2-nnz(K))/dimension^2;
26 ge_k = sparsity_degre_k*100;
27
28 x_z1 = rand(dimension,1);
29 x_z2 = rand(dimension,1);
30 x_k = rand(dimension,1);
31 b_z1 = Z1*x_z1;
32 b_z2 = Z2*x_z2;
33 b_k = K*x_k;
34
35 % Decomposicoes ILU
36 setup.type = ’nofill’;
37 setup.milu = ’off’;
38 [L_Z1,U_Z1] = ilu(Z1,setup);
39 [L_Z2,U_Z2] = ilu(Z2,setup);
40 [L_K,U_K] = ilu(K,setup);
41
42 I = eye(dimension);
43
96
44 save(sprintf(’o%03d_dados%04d’,dimension,i),’dimension’,...
45 ’density’,’Z1’,’sparsity_degre_z1’,’ge_z1’,...
46 ’sparsity_degre_z2’,’ge_z2’,’sparsity_degre_k’,...
47 ’ge_k’,’Z2’,’K’,’x_z1’,’x_z2’,’x_k’,’b_z1’,...
48 ’b_z2’,’b_k’,’L_Z1’,’U_Z1’,’L_Z2’,’U_Z2’,’L_K’,...
49 ’U_K’,’I’);
50
51 end
Seguem as sub-rotinas utilizadas no programa acima para gerar as matrizes.
1 % negateNonDiagonal.m
2 % Troca o sinal do elemento fora da diagonal. Se for positivo,
ficará negativo.
3 function [m] = negateNonDiagonal(m2)
4 m = m2;
5 [i,j] = find(m);
6
7 for i=1:length(m)
8 for j=1:length(m)
9 if i~=j
10 m(i,j)= -abs(m(i,j));
11 end
12 end
13 end
14 end
15
16 % generateMatrix.m
17 % Gera matriz aleatoria de ordem n com densidade d e onde tiver
18 % elemento nulo na diagonal, substitui por um número aleatório.
19 function [m] = generateMatrix(n, d)
97
20 m = sprand(n, n, d);
21 for i=1:n
22 if (m(i, i) == 0)
23 m(i, i) = rand(1);
24 end
25 end
26 end
27
28 % generatez2
29 % Baseado nas posições fora da diagonal onde há elementos não nulos
30 % de $Z_1$, cria-se a matriz $Z_2$
31 function [z2] = generatez2(z1, m)
32 z2 = m;
33 [i,j] = find(z1);
34
35 for i=1:length(z1)
36 for j=1:length(z1)
37 if (i==j)
38 continue;
39 end
40 if (z1(i,j) == 0)
41 z2(i, j) = 0;
42 elseif (m(i, j) ~= 0)
43 z2(i, j) = -abs(m(i, j));
44 else
45 z2(i, j) = -abs(rand(1));
46 end
47 end
48 end
49 end
98
B.2 Matriz para perfil de desempenho
1 % matrix_perf.m
2 clear all
3
4 fileQtty = 100;
5 dimension = 300;
6
7 % Cria uma matriz com numero de iteracoes e
8 % outra com o tempo para cada problema e para
9 % todos os metodos.
10
11 for i=1:2:fileQtty
12 load(sprintf(’results_Z1_gm%04d’,i));
13
14 for j = ((i+1)/2):50
15 time_matrix_z1(j,1) = time1_z1;
16 iterin_matrix_z1(j,1) = nit1_z1;
17 time_matrix_z1(j,2) = time2_z1;
18 iterin_matrix_z1(j,2) = nit2_z1;
19 time_matrix_z1(j,3) = time3_z1;
20 iterin_matrix_z1(j,3) = nit3_z1;
21 time_matrix_z1(j,4) = time4_z1;
22 iterin_matrix_z1(j,4) = nit4_z1;
23 end
24
25 clearvars -except fileQtty dimension i j time_matrix_z1...
26 iterin_matrix_z1
27 end
28
99
29 save time_matrix_z1
30 save iterin_matrix_z1
B.3 Perfil de desempenho para matriz Z1
1 % performance_profile1.m
2 % Performance profile
3
4 clear all
5
6 load(’time_matrix_z1.mat’);
7 load(’iterin_matrix_z1.mat’);
8
9 % Tamanho do passo de cada "tau"
10 passo1= 0.1;
11 passo2= 0.1;
12
13 % Tau maximo permitido para este tipo de razao (dos tempos)
14 M1 = 9;
15 M2 = 70;
16
17 % Numero de problemas testados
18 np = 50;
19
20 % Numero de metodos usados
21 ns = 4;
22
23 % Criando as matrizes das razoes de cada ’metrica’
24 for i=1:np
100
25 min_time = min(time_matrix_z1(i,:));
26 min_GM = min(iterin_matrix_z1(i,:));
27 for j= 1:ns
28 Rte(i,j) = time_matrix_z1(i,j)*(1/min_time);
29 RGM(i,j) = iterin_matrix_z1(i,j)*(1/min_GM);
30 end
31 clear min_te
32 clear min_GM
33 end
34
35 % Criando a funcao distribuicao P1 com respeito a ’metrica do
tempo’
36 x1=1:passo1:M1;
37
38 for j= 1: ns
39 for jj = 1: max(size(x1))
40 c1 = 0;
41 for i = 1: np
42 if( Rte(i,j) <= x1(jj))
43 c1 = c1+1;
44 end
45 end
46 P11(j,jj) = (1/np)*c1;
47 end
48 end
49
50 % Criando a funcao distribuicao P2
51 % com respeito a "metrica do # GMRES"
52
53 x2=1:passo2:M2;
101
54
55 for j= 1: ns
56 for jj = 1: max(size(x2))
57 c2 = 0;
58 for i = 1: np
59 if( RGM(i,j) <= x2(jj))
60 c2 = c2+1;
61 end
62 end
63 P22(j,jj) = (1/np)*c2;
64 end
65 end
66
67 % Graficos
68
69 figure(1)
70 plot(x1,P11(1,:),’--r’,x1,P11(2,:),’--b’,x1,P11(3,:),’-g’,...
71 x1,P11(4,:),’-m’,’LineWidth’,1)
72 axis([1 M1 0 1.1])
73 legend(’GMRES(60)’,’GMRES(60)/ILU(0)’,’GMRES’,’GMRES/ILU(0)’);
74 title(’Z_1 - Tempo’);
75 xlabel(’\tau’)
76 ylabel(’\rho_s(\tau)’);
77
78 figure(2)
79 plot(x2,P22(1,:),’--r’,x2,P22(2,:),’--b’,x2,P22(3,:),’-g’,...
80 x2,P22(4,:),’-m’,’LineWidth’,1)
81 axis([1 M2 0 1.1])
82 legend(’GMRES(60)’,’GMRES(60)/ILU(0)’,’GMRES’,’GMRES/ILU(0)’);
83 title(’Z_1 - Numero de iteracoes’);
102
84 xlabel(’\tau’)
85 ylabel(’\rho_s(\tau)’);