Você está na página 1de 6

Universidade Federal do Esp rito Santo Departamento de Inform atica Trabalho de Algoritmos Num ericos - 2012/2 Sistemas Lineares

Objetivo
Implementar algoritmos de solu c ao de sistemas esparsos utilizando m etodos diretos e iterativos.

Descri c ao
Frequentemente os processos de solu c ao de problemas das mais diversas areas do conhecimento recaem na necessidade de resolver sistemas lineares. Na maioria das vezes esses sistemas s ao esparsos e de grande porte. O armazenamento otimizado e crucial na eci encia do m etodo num erico considerado, tanto em economia de mem oria, quanto em n umero de opera c oes de ponto utuante, que impactam diretamente no tempo de processamento. Considerando uma matriz A de ordem n n com nnz <<< n2 coecientes n ao nulos, neste trabalho vamos considerar dois tipos de armazenamento: o armazenamento denso, onde para uma matriz A de ordem n e necess ario 2 armazenar n coecientes. o armazenamento CSR (Compress Sparse Row) que armazena somente os coecientes n ao nulos de A em um vetor ordenado linha por linha. Al em desse vetor, e necess ario armazenar informa c oes adicionais das colunas e localiza c ao dos coecientes nas linhas (maiores detalhes ver descri c ao detalhada na p agina do curso), totalizando o n umero total de coecientes igual a 2 nnz + 1. Este trabalho tem por objetivo implementar e analizar o comportamento dos algoritmos Decomposi c ao LU e SOR na solu c ao de sistemas lineares considerando os armazenamentos denso e CSR para matrizes esparsas.

Implementa c ao com armazenamento denso


Dado um sistema Ax = b e a matriz A armazenada na forma densa: 1. Implemente na linguagem Octave o algoritmo do M etodo Decomposi c ao LU, tendo como par ametros de entrada: matriz esparsa A, vetor dos termos independentes b.

2. Implemente na linguagem Octave o algoritmo do M etodo Iterativo SOR, tendo como par ametros de entrada: matriz esparsa A, vetor dos termos independentes b, toler ancia , n umero m aximo de itera c oes N max, fator de relaxa c ao . Observe que se = 1, tem-se o m etodo Seidel.

Implementa c ao com armazenamento CSR


Dado um sistema Ax = b e a matriz A armazenada na forma CSR: 1. Implemente na linguagem Octave o algoritmo do M etodo Iterativo SOR, tendo como par ametros de entrada: matriz esparsa A, vetor dos termos independentes b, toler ancia , n umero m aximo de itera c oes N max, fator de relaxa c ao . Observe que se = 1, tem-se o m etodo Seidel.

Valida c ao
Para valida c ao dos algoritmos implementados deve ser usado o reposit orio Matrix Market (1 ) que disponibiliza uma quantidade consider avel de matrizes esparsas oriundas das mais variadas areas para apoio a estudos comparativos de algoritmos num ericos. Exemplos de matrizes depositadas no Matrix Market podem ser observadas na Fig. 1. A Tab. 1 apresenta algumas caracter sticas dessas matrizes. Tabela 1: Propriedades das matrizes. Matriz BCSSTK03 HOR131 GR3030 ORSIRR1 PLAT1919 SHERMAN5
1

Cole c ao/Conjunto Harwell-Boeing/BCSSTRUC1 Harwell-Boeing/NNCENG Harwell-Boeing/LAPLACE Harwell-Boeing/OILGEN Harwell-Boeing/PLATZ Harwell-Boeing/SHERMAN

n nnz Area de Aplica c ao Engenharia Estrutural 112 376 Conserva c ao de Energia 434 4710 Discretiza c ao do Laplaciano 900 4322 Simula c ao de Reservat orios 1030 6858 Modelo Oceanogr aco 1919 17159 Recupera c ao de Petr oleo 3312 20793

http://math.nist.gov/MatrixMarket

(a) BCSSTK03, n = 112, nnz = 376 (b) HOR131, n = 434, nnz = 4710

(c) GR3030, n = 900, nnz = 4322 (d) ORSIRR1, n = 1030, nnz = 6858

(e) PLAT1919, n = 1919, nnz = (f) SHERMAN5, n = 3312, nnz= 17159 20793

Figura 1: Exemplos de matrizes do reposit orio MatrixMarket.

Todas as informa c oes das matrizes podem ser obtidas navegando pelas cole c oes e referidos conjuntos descritos na Tab. 1. O formato indicado para todas as matrizes e <nome>.mtx. Por exemplo, a matriz BCSSTK03 possui um arquivo tipo mtx como mostrado na Fig. 2. Observe que os coecientes n ao nulos est ao listados coluna a coluna. Lembramos que o formato de armazenamento CSR, armazenam os coecientes n ao nulos linha a linha. Para facilitar, neste trabalho ser a considerada a matriz transposta (At ) como matriz dos coecientes do sistema At x = b onde: A e a matriz oriunda do arquivo tipo mtx, x e o vetor solu c ao. Seu valor exato e x = (1 1 1 ... 1)t , b = At x bi =
n i=1

(1)

aji .

Implemente duas fun c oes: uma que leia um arquivo tipo <nome>.mtx, armazene a matriz At no formato denso e gere o vetor dos termos independentes b, outra que leia um arquivo tipo <nome>.mtx, armazene a matriz At no formato CSR e gere o vetor dos termos independentes b.

Figura 2: Exemplo de arquivo <nome>.mtx das matrizes esparsas do reposit orio Matrix Market.

Experimentos Num ericos


Para o conjunto das 6 matrizes esparsas listadas na Tab. 1 execute os experimentos a seguir:

1. fa ca um estudo emp rico do etodo SOR considerando otimo (0, 2) no m = 105 . (Dicas: (i) considere N max um valor muito elevado, (ii) monte tabela(s) para melhor visualiza c ao de seus experimentos, e (iii) este teste pode ser realizado usando a forma de armazenamento densa ou CSR); 2. encontre a solu c ao do sistema (1) pelos m etodos Decomposi c ao LU (armazenamento denso) e SOR( ) (armazenamento denso e CSR). (Dica: (i) otimo para avaliar a converg encia (e corretude do seu c odigo) e conveniente calcular uma medida para a solu c ao, por exemplo, norma de m axima magnitude, (ii) calcule o tempo de processamento para os dois m etodos, (iii) monte tabelas para melhor visualizar os resultados fazendo compara c oes de tempo de processamento e norma de m axima magnitude da solu c ao, e (iv) Para cada uma das matrizes indique qual e o melhor m etodo de solu c ao.); Observa c oes: bom lembrar Os experimentos num ericos descritos acima s ao obrigat orios. E que outros experimentos podem ser incorporados ao relat orio com o objetivo de enriquecer seu trabalho. Se existirem experimentos n ao convergentes, explicar no relat orio as poss veis causas. O Octave tem uma forma simples de medir tempo de execu c ao usando os comandos tic e toc.

Relat orio
O relat orio dever a conter as seguintes sess oes: Introdu c ao: onde o grupo dever a apresentar a estrutura do trabalho e os objetivos. M etodos Diretos e M etodos Iterativos: onde o grupo apresentar a as principais caracter sticas das duas estrat egias de solu c ao, apresentando vantagens e desvantagens. Armazenamentos Otimizados: onde apresentar a a forma de armazenamento CSR. Implementa c ao: onde ser ao apresentados a estrutura do c odigo e partes signicativas do c odigo comentado. Experimentos Num ericos: onde ser ao apresentados os experimentos num ericos realizados pelo grupo, tanto as entradas para os programas bem como tabelas e gr acos, quando for necess ario. Conclus ao: onde ser ao discutidos os resultados obtidos.

Readme
O grupo deve entregar um arquivo denominado readme.txt dando instru c oes de como executar o c odigo.

Instru c oes para entrega


Os c odigos fonte e o Relat orio devem ser enviados por e-mail para algoritmos.numericos.ufes@gmail.com at e meio-dia da data de entrega. O assunto do e-mail deve ser AlgoNum122:<curso>:trab:<nome1>:<nome2> e conter, em anexo, um arquivo do tipo trab.zip. Neste caso, <curso> deve conter EngEletrica ou EngProducao, e <nome1> e <nome2> deve conter os nomes e u ltimos sobrenomes dos intregrantes do grupo (por exemplo, AlgoNum122:EngEletrica:trab:ClaudineBadue:SergioGoncalves). (Obs: emails com padr oes diferentes ser ao descartados). A f ormula para desconto por atraso na entrega do trabalho e: 2d1 % 0.32 (2)

onde d e o atraso em dias u teis. Note que ap os 5 dias u teis, o trabalho n ao poder a ser mais entregue. Se voc e enviar o seu trabalho m ultiplas vezes, apenas a u ltima vers ao enviada ser a considerada, inclusive para efeito de desconto por atraso.

Você também pode gostar