Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade de Brasília – UnB Faculdade UnB Gama – FGA Métodos Numéricos para Engenharia Prof. Ricardo Fragelli AULA 09 Métodos Iterativos para Resolução de Sistemas Lineares 1. Métodos iterativos: Gauss-Jacobi e Gauss-Seidel Até agora vimos métodos diretos para determinação dos valores das incógnitas de um sistema linear. Mas, que tal fazermos uma mágica antes de continuarmos a descobrir novos métodos? Considere o seguinte sistema que resolvemos na aula 08: { Note que podemos isolar as incógnitas nas equações com certa facilidade: { Eu aprendi muito cedo que fazer contas com zero é bom demais, então se fôssemos chutar uma solução para o problema, seria , e . Vamos ver se acertamos substituindo esses valores nas equações nas quais isolamos cada uma das incógnitas? { Que tal tentarmos substituir os novos valores obtidos nas equações? Se fizermos isso, teríamos o seguinte resultado: { Se fizermos isso mais algumas vezes (as figuras 1 e 2 dão uma dica de como fazer os cálculos no Matlab), teríamos a seguinte sequência de resultados: Então foi possível encontrar a solução do sistema de equações sem fazer a manipulação de matrizes? Que maravilha! Trata-se de um método iterativo para solução de sistemas lineares conhecido como Método de Gauss-Jacobi. Para sistemas pequenos como o que acabamos de resolver, métodos diretos são mais aconselhados pois o número de operações é menor, contudo, para sistemas grandes, métodos iterativos podem ter um desempenho melhor. Figura 1 – Calculando os valores das incógnitas. Figura 2 – Fazendo os cálculos do Método Gauss-Jacobi. Mas, observando as figuras 1 e 2, percebemos que foram utilizadas variáveis auxiliares para calcular os valores de , e a cada iteração. Se não tivessem sido utilizadas diretamente as fórmulas de cálculo, então ao se calcular teríamos substituído o valos de calculado no passo anterior e, para ao se calcular , teríamos utilizado os novos valores de e de obtidos nos passos subsequentes. Vou explicar melhor, consideremos o chute inicial de , e . Desse modo, teríamos: Então, por que não utilizar esse novo valor para obter ? Se utilizarmos o novo valor de , teríamos um novo : Seguindo a mesma lógica, teríamos o seguinte cálculo para : A programação no Matlab seria simplificada e a convergência mais rápida como mostra a figura 3. Figura 3 – Método Gauss-Seidel. Aproveite e teste os métodos de Gauss-Jacobi e Gauss-Seidel para os três sistemas seguintes: { { { Após ter resolvido os sistemas anteriores, reflita sobre as seguintes questões: Qual dos métodos teve uma convergência mais rápida? Houve a necessidade de fazer alguma modificação nos sistemas antes de resolvê-los? É possível garantir a convergência do Método Gauss-Jacobi pelo seguinte teorema conhecido como critério de linhas: TEOREMA Seja o sistema linear e o somatório dos coeficientes (em valor absoluto) de uma linha da matriz , com exceção do coeficiente da diagonal dessa mesma linha, dividido pelo coeficiente da diagonal (em valor absoluto), ou seja, ቌ ∑ | | ቍ | | O método Gauss-Jacobi gera uma sequencia que converge para a solução do sistema sempre que o maior valor de for menor que 1. O critério de linhas também garante a convergência para Gauss-Seidel. Para finalizar o estudo dos métodos iterativos, faça um programa que resolva sistemas lineares com base em Gauss-Jacobi e Gauss-Seidel. Utilize como critério de parada a variação dos valores durante as iterações, ou seja, o sistema encontrará a solução se a maior diferença (em módulo) entre os valores de x de uma iteração para outra for inferior a um valor especificado. Um forte abraço e até a próxima!
Compartilhar