Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial

Documentos relacionados
Indexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto.

Universidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1

Lista de Exercícios. 3x 1 + 2x 2 5x 3 = 0 2x 1 3x 2 + x 3 = 0 x 1 + 4x 2 x 3 = 4. 3x 1 + 4x 2 + 3x 3 = 10 x 1 + 5x 2 x 3 = 7 6x 1 + 3x 2 + 7x 3 = 15

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 17/2 Sistemas Lineares

CI-202-D. Trabalho Prático 2 o Semestre 2015

Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos I - 14/2 Sistemas Lineares

MAP Primeiro exercício programa Método de Diferenças Finitas para solução de problemas de contorno de equações diferenciais ordinárias

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Fundamentos IV. Sistemas Lineares. Gustavo Vinhal. August 18, Departamento de Computação

Sistemas Lineares. Métodos Iterativos Estacionários

Métodos iterativos para sistemas lineares.

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Universidade Federal do Espírito Santo DI/PPGEM/PPGI 2 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1

SME300 - Cálculo Numérico - Turma Elétrica/Automação - Prof. Murilo F. Tomé. Lista 1: Solução Numérica de Sistema Lineares A = MÉTODOS DIRETOS.

SME602 - Cálculo Numérico - - Prof. Murilo F. Tomé. Solução Numérica de Sistema Lineares A = MÉTODOS DIRETOS. x y z

SISTEMAS LINEARES PROF. EDÉZIO

Métodos Numéricos - Notas de Aula

Universidade Federal do Espírito Santo - UFES

Data de entrega: 30 de junho de 2015

Resolução de Sistemas Lineares. Ana Paula

Sistemas Lineares - Métodos Iterativos : Jacobi e Gauss-Seidel. Profa. Cynthia de O. Lage Ferreira Métodos Numéricos e Computacionais I - SME0305

Disciplina: Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer. Aula 6 - Solução de Sistema de Equações Algébricas

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados

Cálculo Numérico. Sistemas lineares Métodos Iterativos: Introdução Método Iterativo de Jacobi-Richardson

Introdução aos Métodos Numéricos

Universidade Federal do Rio Grande do Norte. Métodos Computacionais Marcelo Nogueira

SME0300 Cálculo Numérico Aula 11

Métodos numéricos para soluções de sistemas lineares

Resolução de Sistemas Lineares. Método de Gauss. O algoritimo conhecido como Método de Gauss é desenvolvido a partir de dois ingredientes básicos:

Cálculo Numérico BCC760

ÁLGEBRA LINEAR AULA 5 MÉTODOS ITERATIVOS


Universidade Federal do Espírito Santo Departamento de Informática 1 o Trabalho de Algoritmos Numéricos - 11/1. Sistemas Lineares

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres

Parte 0: Normas de Vetor e Matriz

Cálculo Numérico Algoritmos

Fundamentos IV. Gustavo Vinhal. September 13, Escola de Ciências Exatas e Computação

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos

Data de entrega: 19 de junho de 2016

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel

Prof. MSc. David Roza José 1/35

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Figura : Monitoria. Monitoria Cálculo Numérico

Laboratório de Simulação Matemática. Parte 7 2

Fatoração LU André Luís M. Martinez UTFPR

Tema: Método da Eliminação de Gauss

Capítulo III: Sistemas de equações. III.1 - Condicionamento de sistemas lineares

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade

Universidade de São Paulo

Sistemas de equações lineares

3 o Trabalho de Algoritmos Numéricos II /1 Algoritmos de Avanço no Tempo para problemas Parabólicos Data de entrega:

Algoritmos e Estruturas de Dados II. Trabalho Prático 3

A = Utilizando ponto flutuante com 2 algarismos significativos, 2 = 0, x (0)

Sistemas de Equações Lineares

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

Capítulo III Sistemas de equações

MÉTODO DE ELEMENTOS FINITOS (MEF)

INTRODUÇÃO AOS MÉTODOS NUMÉRICOS. Solução de Sistemas Lineares

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

Matemática Computacional - Exercícios

EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL: PRIMEIRO BIMESTRE: EDGARD JAMHOUR. QUESTÃO 1: Indique as afirmativas verdadeiras.

UNIVERSIDADE FEDERAL DO ABC

Cálculo Numérico Prof. Guilherme Amorim 26/11/2013. Aula 11 Sistemas de Equações Lineares / Parte 4 Convergência e Sistemas mal-condicionados

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

MAP Métodos Numéricos e Aplicações Escola Politécnica 1 Semestre de 2017 EPREC - Entrega em 27 de julho de 2017

Uma equação linear com n variáveis tem a seguinte forma:

Cálculo Numérico. Aula 8 Sistemas de Equações Lineares / Parte /04/2014. Prof. Guilherme Amorim*

INSTITUTO POLITÉCNICO DE SETÚBAL ESCOLA SUPERIOR DE TECNOLOGIA DEPARTAMENTO DE MATEMÁTICA. Exercícios sobre Sistemas de Equações Lineares.

INSTITUTO SUPERIOR TÉCNICO Licenciatura em Engenharia Física Tecnológica Licenciatura em Engenharia e Gestão Industrial Ano Lectivo: 2002/

UNIVERSIDADE FEDERAL DE PERNAMBUCO Resolução Lista / Cálculo Numérico 1ª Unidade

Universidade de Coimbra Departamento de Engenharia Electrotecnica e Computadores Matemática Computacional

MAP Segundo exercício programa Splines cúbicos

Análise Numérica. Trabalho Prático 1 Decomposição LU e Integração Numérica

Correção do Trabalho 1 EC. Grupo Item Descrição Conceito Armazenamento - código

ÁLGEBRA LINEAR AULA 2

Sistemas de Equações Lineares Algébricas

Cálculo Numérico. Resumo e Exercícios P1

Resolução de Sistemas Lineares. Ana Paula

Cálculo Numérico. Aula 10 Sistemas de Equações Lineares / Parte 3 Jacobi & Gauss-Seidel. Prof. Guilherme Amorim

Sistemas de Equações Lineares

2. Descrição do problema

Resolvendo algebricamente um PPL

Modelagem Computacional. Parte 7 2

Parte 1: Exercícios Teóricos

Introdução à Programação Paralela

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Matemática I. Capítulo 3 Matrizes e sistemas de equações lineares

Métodos Numéricos I. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho

Interpolação polinomial

Aula 8 Variações da Eliminação de Gauss/Fatoração LU.

Sistemas Lineares - Decomposição LU

Problema 5a by

decomposição de Cholesky.

Resolução de sistemas de equações lineares: Método do Gradiente

Resolução de Sistemas Lineares. Ana Paula

Métodos Iterativos para a Solução da Equação de Poisson

Métodos Numéricos C. A. Ismael F. Vaz 1. Escola de Engenharia Universidade do Minho Ano lectivo 2007/2008

Transcrição:

Universidade Federal do Espírito Santo Departamento de Informática Algoritmos Numéricos 2016/2 Profa. Claudine Badue Trabalho 1 Objetivos Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial O objetivo deste trabalho é implementar em Octave o método iterativo de Gauss-Seidel para solução de sistemas lineares com matrizes banda usando os métodos de armazenamento tradicional e especial. É também objetivo deste trabalho comparar o desempenho destes dois métodos de armazenamento em termos de tempo de processamento. Matriz Banda Uma matriz banda é uma matriz esparsa cujas entradas não nulas estão confinadas a uma banda diagonal, compreendendo a diagonal principal e zero ou mais diagonais em ambos os lados. Formalmente, considere uma matriz n n A = (a i,j ). Se todos os elementos da matriz são zero fora de uma banda limitada diagonalmente, cuja extensão é determinada por constante k 1 e k 2 : a i,j = 0 se j < i k 1 ou j > i + k 2, k 1, k 2 0, então as quantidades k 1 e k 2 são chamadas de largura de banda inferior e largura de banda superior, respectivamente. A largura de banda da matriz é k = k 1 + k 2 + 1. Uma matriz é chamada matriz banda se sua largura de banda é razoavelmente pequena. Uma matriz banda com k 1 = k 2 = 0 é uma matriz diagonal; uma matriz banda com k 1 = k 2 = 1 é uma matriz tridiagonal; uma matriz banda com k 1 = k 2 = 2 é uma matriz penta-diagonal e assim por diante. Se k 1 = 0 e k 2 = n 1, então a matriz é triangular superior; similarmente, se k 1 = n 1 e k 2 = 0, então a matriz é triangular inferior. Armazenamento Especial Matrizes banda são usualmente armazenadas pela guarda das diagonais na banda; o resto é implicitamente zero. Por exemplo, uma matriz banda com k 1 = 2 e k 2 = 1 tem largura de banda k = 4. A matriz 8 8: pode ser armazenada como a matriz 8 4: a 1,1 a 1,2 0 0 0 0 0 0 a 2,1 a 2,2 a 2,3 0 0 0 0 0 a 3,1 a 3,2 a 3,3 a 3,4 0 0 0 0 0 a 4,2 a 4,3 a 4,4 a 4,5 0 0 0 0 0 a 5,3 a 5,4 a 5,5 a 5,6 0 0 0 0 0 a 6,4 a 6,5 a 6,6 a 6,7 0 0 0 0 0 a 7,5 a 7,6 a 7,7 a 7,8 0 0 0 0 0 a 8,6 a 8,7 a 8,8

0 0 a 1,1 a 1,2 0 a 2,1 a 2,2 a 2,3 a 3,1 a 3,2 a 3,3 a 3,4 a 4,2 a 4,3 a 4,4 a 4,5 a 5,3 a 5,4 a 5,5 a 5,6 a 6,4 a 6,5 a 6,6 a 6,7 a 7,5 a 7,6 a 7,7 a 7,8 a 8,6 a 8,7 a 8,8 0 Parte 1 : Gauss-Seidel Usando Armazenamento Tradicional Seja um sistema linear Ax = b, em que A é uma matriz banda n n. 1. Implemente uma função para resolver o sistema Ax = b por Gauss-Seidel. a. A função deve ter como parâmetros de entrada a ordem n, a matriz dos coeficientes A, o vetor dos termos independentes b, a tolerância Toler e o número máximo de iterações IterMax. A função deve ter como parâmetros de saída o vetor solução x, o número de iterações gastas Iter e a condição de erro CondErro para verificar se a solução convergiu. (CondErro = 0 significa que houve convergência e CondErro = 1, que não houve.) b. A função deve processar os elementos nulos de A. c. A matriz A deve ser armazenada usando o armazenamento tradicional. 2. Implemente um script para resolver o sistema por Gauss-Seidel usando a função implementada no item anterior. a. O arquivo do script deve ser denominado Principal.m. b. O script deve ter como dados de entrada a matriz dos coeficientes A, o vetor dos termos independentes b, a tolerância Toler e o número máximo de iterações IterMax. c. O script deve ler os dados de entrada de um arquivo de texto denominado ArquivoEntrada.m. Este arquivo de texto deve ter o formato mostrado na Figura 1 e a sua última linha deve ser uma linha em branco. Para ler os parâmetros de entrada do ArquivoEntrada.m, use o comando: load ArquivoEntrada.m; d. O script deve ter como dados de saída o número de iterações gastas Iter, a condição de erro CondErro e o vetor x. e. O script deve escrever os dados de saída em um arquivo de texto denominado ArquivoSaida.m. Para escrever os parâmetros de entrada no ArquivoSaida.m, use o comando: save ArquivoSaida.m Iter CondErro x; 3. Submeta o seu trabalho com o arquivo de entrada mostrado na Figura 1. # name: A # columns: 8 97 88 0 0 0 0 0 0 71 129 31 0 0 0 0 0 11 6 117 46 0 0 0 0 0 81 85 310 58 0 0 0 0 0 94 36 305 94 0 0 0 0 0 93 34 283 85 0 0 0 0 0 62 95 288 61 0 0 0 0 0 83 49 185

# name: b # columns: 1 44 39 94 60 32 17 34 71 # name: Toler 1e-006 # name: IterMax 1000000 Figura 1: Arquivo de entrada do script de Gauss-Seidel com armazenamento tradicional Parte 2 : Gauss-Seidel Usando Armazenamento Especial 1. Implemente as funções da seção anterior usando armazenamento especial. 2. Submeta o seu trabalho com o arquivo de entrada mostrado na Figura 2. # name: A # columns: 4 0 0 97 88 0 71 129 31 11 6 117 46 81 85 310 58 94 36 305 94 93 34 283 85 62 95 288 61 83 49 185 0 # name: b # columns: 1 44 39 94 60 32 17 34 71 # name: Toler 1e-006 # name: IterMax 1000000 Figura 2: Arquivo de entrada do script de Gauss-Seidel com armazenamento especial

Parte 3 : Comparação dos Armazenamentos Tradicional e Especial 1. Implemente uma função para criar um sistema aleatório de ordem n e largura de banda k, no qual k1 = k/2 e k2 = k/2 1, e os elementos da matriz dos coeficientes A e do vetor dos termos independentes b são obtidos aleatoriamente. a. A função deve ter como parâmetros de entrada a ordem n e a largura de banda k. A função deve ter como parâmetros de saída a matriz dos coeficientes A e o vetor dos termos independentes b. b. A função deve também garantir que a matriz A seja diagonal estritamente dominante. c. A matriz A deve ser armazenada usando o armazenamento tradicional. 2. Implemente a função do item anterior usando armazenamento especial. 3. Implemente um script para avaliar o desempenho de Gauss-Seidel com sistemas aleatórios de ordem e largura de banda crescentes armazenados usando armazenamento tradicional e especial e gerados pelas funções implementadas nos itens anteriores. a. O arquivo do script deve ser denominado Principal.m. b. Use sistemas aleatórios de ordem n = 2 i, i = 4, 5, 6, 7, 8, e largura de banda k = n/2 j, j = 4, 3, 2, 1. c. Use IterMax grande o suficiente para garantir CondErro = 0. d. O script deve ter como dado de saída, para cada ordem n, uma tabela em que a primeira coluna contém a largura de banda k; a segunda, a terceira e a quarta colunas contém o tempo de processamento com armazenamento tradicional com Toler = 10 3, Toler = 10 6, Toler = 10 9, respectivamente; e a quinta, sexta e sétima colunas contém o tempo de processamento com armazenamento especial com Toler = 10 3, Toler = 10 6, Toler = 10 9, respectivamente. Para medir o tempo de processamento de um trecho do código, use o comando: tic (); # trecho de código tempo = toc (); e. O script deve escrever a tabela em um arquivo de texto denominado ArquivoSaida.m. f. Comente comandos de impressão antes de medir o tempo de processamento. Instruções para Entrega 1. Este trabalho deverá ser desenvolvido em grupos de no máximo três alunos. 2. Para credenciar o representante do grupo no sistema de submissão de trabalhos, envie um e-mail como o abaixo: Assunto: [SUBSCRIBE] <nome> Substitua <nome> pelo nome completo do representante do grupo. Não use letras latinas (é, í, ç, etc.) no nome. Por exemplo: Assunto: [SUBSCRIBE] Claudine Santos Badue Goncalves 3. Para credenciar o grupo, envie um e-mail como o abaixo: Assunto: [WORKING GROUP] <nome1>:<nome2>:<nome3>

Substitua <nome1>, <nome2> e <nome3> pelo nome completo do membro 1, membro 2 e membro 3, respectivamente, do grupo. Não use letras latinas (é, í, ç, etc.) no nome. Por exemplo: Assunto: [WORKING GROUP] Claudine Santos Badue Goncalves:Sergio Paulo Tavares Goncalves:Christine Badue Goncalves 4. Para enviar cada parte do trabalho, envie um e-mail como o abaixo até às 23:59 horas da data limite de entrega: Assunto: [SUBMIT] <codigo da atividade> Substitua <codigo da atividade> por ANIEM162T1P1, ANIEM162T1P2, e ANIEM162T1P3 para as Partes 1, 2 e 3, respectivamente. Por exemplo, para a Parte 1: Assunto: [SUBMIT] ANIEM162T1P1 Anexe o arquivo do script principal (Principal.m), os arquivos das funções (*.m), o arquivo de entrada (ArquivoEntrada.m) e o arquivo de saída (ArquivoSaida.m). 5. Partes do trabalho com resultados incorretos não serão avaliadas. Caso o resultado da Parte 1 ou da Parte 2 do trabalho esteja incorreto, a Parte 3 do trabalho não será avaliada. 6. A fórmula para desconto por atraso na entrega do trabalho é: 2 d 1 0,32 % onde d é o atraso em dias. Note que após 5 dias, o trabalho não poderá ser mais entregue. 7. Se você enviar o seu trabalho múltiplas vezes, apenas a última versão enviada será considerada, inclusive para efeito de desconto por atraso. Maiores Detalhes Maiores detalhes serão discutidos em sala de aula. Considerações feitas em sala terão valor superior ao daquelas contidas nesta especificação.