Você está na página 1de 8

Aluno:

Matrícula:
Disciplina: Computação Científica

Esse trabalho pretende observar o comportamento do Método dos


Gradientes Conjugados para um conjunto de matrizes esparsas da SuiteSparse
Matrix Collection.

Todos os resultados apresentados foram obtidos pelo programa Octave,


instalado em um computador com sistema operacional 32 Bits, Windows 7
Professional, processador Intel® Core ™ i3-3240 CPU @3.4GHz e memória
RAM de 4,00GB (utilizável: 3,40GB).

As matrizes simétricas definidas positivas estudadas foram:

Figura 1 - mesh3em5 Figura 4 - s1rmq4m1

Figura 2 - plat362 Figura 5 - bcsstk36

Figura 3 - 662_bus Figura 6 - pdb1HYS


Figura 7 - Dubcova3

Para cada matrix apresentada, havia como objetivos específicos:

1) Resolver o sistema linear Ax = b, sendo b = A*ones(n,1) pelo


Método dos Gradientes Conjugados, assumindo tolerância (tol) e número
máximo de iterações (maxit) adequados;
2) Plotar o gráfico do resíduo;
3) Discutir as características do processo iterativo quanto à
convergência, levando em consideração as características da matriz dos
coeficientes e as características do Método dos Gradientes Conjugados;
4) Construir uma tabela contendo métricas importantes do processo.

Foram considerados um tol definido num intervalo fechado de 10-11 a 10-


6
(tol[10-11,10-6]) e um maxit menor ou igual a 10000 (maxit ≤ 10000) para as
observações.

Iniciou-se a procura variando o maxit para cada tol e para cada matriz.
Contudo, notou-se que o processo seria desgastante, uma que a quantidade de
gráficos exagerados seria excessiva, outra que, uma vez que fixado o maxit no
máximo considerado para a análise, chances de alguma matriz do rol não
convergir antes seria menor do que estipular um maxit menor do que o
suficiente para a convergência das matrizes. Por esses motivos, optou-se pelo
maxit fixado em 10000 e os tol’s variando em 10-11, 10-9 e 10-6, gerando os
gráficos expoente da norma residual x iteração de cada matriz para cada faixa
pré-determinada (anexo 1).

Para uma análise mais adequada desses gráficos, visto o método


utilizado, construiu-se uma tabela (anexo 2) contendo as informações julgadas
pertinentes ao processo. Todas as considerações a cerca do experimento
serão baseadas exclusivamente e unicamente nos anexos 1 e 2. Os mesmos
não serão mais referenciados ao longo do trabalho. No anexo 3, foi reservado o
espaço para a apresentação do script da programação computacional do
método iterativo método dos gradientes conjugados.

Preferiu-se, por ser um fator facilitador, decompor as observações por


matrizes. Assim sendo, a ordem de análise seguirá pela ordem crescente da
ordem das matrizes. Vale ressaltar que essa ordenança é aleatória e em nada
altera a conclusão da investigação.
Para todas as matrizes, as métricas consideradas foram:

 Diagonal dominante;
 Ordem da matriz;
 Número de elementos não nulos;
 Grau de esparsidade da matriz (%);
 Condicionamento da matriz;
 Resíduo final relativo;
 Norma do máximo da solução;
 Tempo de convergência;
 Número de iterações;
 Flag.

Matriz “mesh3em5”

A matriz “mesh3em5” é uma matriz dominante de ordem 289, grau de


esparsidade de 98,351% e possui 1377 elementos não nulos. Seu
condicionamento é de 4,966, ou seja, é bem condicionada.

É notável que houve convergência para todas as combinações de tol e


maxit. Esse fato é interessante, uma vez que demonstra que a convergência se
estabelece com poucas iterações, sendo desnecessário um maxit maior que
100 com esse método iterativo para essa matriz. A qualidade da solução se
mostrou melhor ao passo que se reduziu a tolerância até o limite mínimo do
intervalo estudado. O resíduo final relativo corrobora com esse fato, assim
como os seus gráficos, uma vez que seu valor decaiu consideravelmente ao
passo que as tolerâncias foram refinadas.

Matriz “plat362”

A matriz “plat362” não é uma matriz dominante e possui ordem de 362,


grau de esparsidade de 95,585% e possui 5786 elementos não nulos. Seu
número de condicionamento, tendo em vista a matriz anterior, é bem maior, na
ordem de 1011, ou seja, é uma matriz mal condicionada.

Para essa matriz, a convergência somente ocorreu para o maxit máximo.


Quando ela foi submetida no programa para os outros dois valores de maxit, a
mesma convergiu somente para o máximo da tolerância, gerando flag 1 para
os demais casos, ou seja, a matriz atingia o seu número máximo de iterações
sem convergir para a tolerância, apesar de seus números de iterações ficarem
bem próximos ao estabelecido como máximo de parada.

Essa ausência de convergência fez com que a qualidade da solução


ficasse pior e isso é notado quando se busca a sua norma máxima. Mesmo a
matriz convergendio com um maxit maior, a sua solução ainda não foi muito
boa. Considerando os gráficos gerados e os resíduos finais relativos, percebe-
se, visivelmemente, que a matriz sofreu muitas oscilações ao longo das
iterações feitas e não houve um decaimento apreciável ao passo de mais
iterações. O custo operacional dessa matriz é encarecida conforme é requerido
mais iterações para a sua convergência.

Matriz “622_bus”

A matriz “622_bus” não é uma matriz dominante e possui ordem de 662,


grau de esparsidade de 99,435% e possui 2474 elementos não nulos. Seu
número de condicionamento, tendo em vista a matriz anterior, é bem menor, na
ordem de 105.

A presente matriz somente não convergiu para o maxit mínimo,


convergindo para os demais casos. O número de iterações, quando houve
convergência, variou bem com o refinamento das tolerâncias e,
consequentemente, melhorando a qualidade da solução.

Pelos gráficos, constatou-se uma oscilação não muito grande por parte
dos resíduos relativos e menor isso era quando o tol era refinado. Vale
destacar o decaimento acentuado dos resíduos ao passo que a tolerância era
menor, e com um custo computacional aproximadamente iguais.

Matriz “s1rmq4m1”

A matriz “s1rmq4m1” não é uma matriz dominante e possui ordem de


5489, grau de esparsidade de 99,129% e possui 262411 elementos não nulos.
Seu número de condicionamento, tendo em vista a matriz anterior, é bem
maior, na ordem de 106.

Notadamente a qualidade da solução foi melhor para o maxit máximo,


onde houve convergência. Para os demais casos, a convergência não ocorreu,
tornando a solução bem aquém do ideal, apesar de seus gráficos manterem
um decaimento considerável, embora com uma leve oscilamento.

Identifica-se nos gráficos pertinentes a essa matriz uma diferença cada


vez menor entre os resíduos relativos de cada iteração, ou seja, uma menor
oscilação ao longo da curva. Isso pode ser corroborado usando os valores da
norma da solução, visto que para o maxit máximo, o tol refina a solução.

Matriz “bcsstk36”

A matriz “bcsstk36” não é uma matriz dominante e possui ordem de


23052, grau de esparsidade de 99,785% e possui 1143140 elementos não
nulos. Seu número de condicionamento, tendo em vista a matriz anterior, é
bem maior, na ordem de 1017.

Nota-se claramente que os intervalos estabelecidos para o maxit e para


a tolerância não foram suficientes para a matriz convergir. Em todos as casos o
número máximo de iterações foi atingido antes da convergência. Além disso, a
qualidade da solução em todos os casos foi péssima, com um custo
computacional cada vez maior conforme o maxit era aumentado.

O número de iterações da matriz ficou muito próximo ao maxit


estabelecido, mesmo gerando flag 1 para todos. Comparando seus gráficos,
nota-se nenhuma diferença aparente entre eles, onde em todas, as tolerâncias,
com o maxit máximo estabelecido, houve um decaimento acentuado no início
das iterações e isso foi se perdendo ao passo que as iterações aconteciam.

Matriz “pdb1HYS”

A matriz “pdb1HYS” não é uma matriz dominante e possui ordem de


36417, grau de esparsidade de 99,672% e possui 4344765 elementos não
nulos. Seu número de condicionamento fica na ordem de 10 17.

Essa matriz, diferente das demais, foi a que mais se comportou de forma
estranha. Devido a esse comportamento, gráficos auxiliares foram cuspidos
pelo Octave a fim de uma melhor análise a cerca disso.

Conforme reparado, variou-se, além das tolerâncias, os máximos de


iterações para 100 e para 1000. Percebe-se o comportamente abrupto que
houve variando os máximos de iterações. Esse comportamente estranho é
corroborado nos resultados das normas e no número de iterações.

Nota-se que para o maxit 100, quando estabelecido para quaisquer


tolerâncias, a curva, ao invés de decair, como é o esperado, ela cresce nos
valores residuais e mantem essa tendência no decorrer das iterações.
Conforme o maxit é aumentado, essa tendência de crescimento começa a
sofrer oscilações e o direcionamento da curva inverte, acontecendo um
decaimento, mesmo que desordenado. O custo operacional, devido a essas
perturbações, consideravelmente aumentou com o maxit refinado.

Matriz “Dubcova3”

A matriz “Dubcova3” não é uma matriz dominante e possui ordem de


146689, grau de esparsidade de 99,983% e possui 3636643 elementos não
nulos. Seu número de condicionamento não foi especificado pelo site e nem
cuspido pelo Octave.

A matriz convergiu de forma suave e com qualidade considerável, exceto


para o maxit mínimo. Mesmo não convergindo para ele, o seu máximo de
iteração atingiu o limitado máximo do programa, além de ter encontrado uma
solução melhor, inclusive, que algumas matrizes anteriores que convergiram.

Outro fato considerável e que vale frisar é, mesmo com um maxit de


1000 e tol mínimo, o número de iterações para a convergência da matriz
ocorreu bem antes ao maxit e com um custo operacional excelente, tendo em
vista a sua ordem. Essa eficiente se mostra visível nos gráficos, onde o
decaimento dos resíduos se dá de forma limpa e eficiente.

Relacionado ao parâmetro tempo de convergência, é aceitável dizer que,


num contexto geral desse estudo, as características de cada matriz, como o
seu grau de condicionamento, assim como os parâmetros adotados
externamente, como sistema operacional do computador e parâmetros de
entradas na programação, influenciam diretamente no custo computacional.
Matrizes mal condicionadas tendem a possuir um tempo maior para a sua
convergência. Em vista do penúltimo caso, onde a matriz teve um
comportamente inesperado, o seu gasto computacional foi o maior de todos,
evidenciando a sua complexividade.

Por fim, numa visão geral, podemos aferir alguns pontos relevantes
notados.

1) O condicionamento da matriz afeta diretamente na solução da


mesma, visto o método utilizado para isso;
2) Variar as tolerâncias é importante quando estabelecido um maxit, e o
contrário é válido, uma vez que não se sabe se a tolerância será
atingida antes do número máximo de iterações determinada;
3) Atingir a tolerância não é sinal de qualidade da solução, uma vez que
alguma característica intrínsica à matriz pode atrapalhar no método;
4) Quanto mais esforço é demandado pela tolerância, mais iterações
consequentemente são necessárias;
5) As principais vantagens dos métodos iterativos estão no fato destes
produzirem boas aproximações com relativamente poucas iterações,
assim sendo, teoricamente, esse método converge para a solução do
sistema em n iterações, entretanto, nem sempre isso aconteceu,
como foi percebido. Isso, possivelmente, acontece em virtude dos
erros de arredondamentos e cancelamentos que fazem com que:
a. O vetor resíduo perca precisão;
b. Os vetores direção deixem de ser .

E isso ocorre quando A é mal condicionada.

Tendo, ainda , assim, a distância f(xi) e f(x*) está


limitada por um termo que é próximo de 1 se k(A) é grande.

ANEXO 1

Você também pode gostar