Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
UFRN Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Solução de Sistemas de Equações Lineares Parte III: Métodos Iterativos ECT1303 – Computação Numérica • Manter o telefone celular sempre desligado/silencioso quando estiver em sala de aula; • Nunca atender o celular na sala de aula. Objetivos Discutir os métodos iterativos de resolução de sistemas lineares; Saber em que casos eles são melhores que os métodos exatos; Saber quais suas vantagens e desvantagens. Introdução Métodos como: método de eliminação de Gauss método de decomposição LU são ditos exatos: obtêm a solução final após um número exatos de passos. Processos Estacionários Um método é iterativo quando fornece uma sequência de estimativas da solução, cada uma das quais obtida das anteriores pela repetição do mesmo tipo de processo. Um método iterativo é estacionário se cada estimativa é obtida do anterior sempre pelo mesmo processo. Precisamos sempre saber se a sequência que estamos obtendo está convergindo ou não para a solução desejada. Introdução Vantagens dos métodos iterativos: São melhores que os exatos em casos onde a matriz dos coeficientes é esparsa (muitos elementos iguais a zero); Utilizam menos memória do computador; Podem ser usados para reduzir erros de arredondamento proveniente dos métodos exatos; Sob certas condições, podem ser usados para resolver um conjunto de equações não-lineares. Introdução Porém, há também desvantagens: Contrariamente aos métodos exatos, não é sempre que um método iterativo tem sucesso. A convergência dos métodos iterativos acontece somente na presença de certas condições. Métodos iterativos: como funcionam? As equações são escritas na forma explícita: O processo de solução começa com a escolha de valores iniciais para as incógnitas. Na 1ª iteração, a primeira solução é substituída no lado direito das equações, obtendo-se a segunda solução. Na 2ª iteração, a segunda solução é substituída de volta nas equações, gerando a terceira solução. As iterações continuam da mesma forma até convergir para a solução real (nem sempre converge!) 3323213113 2232312122 1131321211 )]([ )]([ )]([ axaxabx axaxabx axaxabx +−= +−= +−= 3333232131 2323222121 1313212111 bxaxaxa bxaxaxa bxaxaxa =++ =++ =++ Convergência Definição Dados uma sequência de vetores x(k)∈ E e uma norma sobre E, onde E é um espaço vetorial, dizemos que a sequência {x(k)} converge para x ∈ E se || x(k) – x || → 0, quando k → ∞. i ni xx ≤≤∞ = 1 max Para obtermos a solução com uma determinada precisão devemos, durante o processo iterativo, efetuar o seguinte teste: onde ε é uma precisão pré-fixada; x(k) e x(k+1) são duas aproximações consecutivas para x. Se a condição é satisfeita, então x(k+1) é a solução procurada, isto é, tomamos Processo de parada ε< − ∞ + ∞ + )1( )()1( k kk x xx Erro relativo ⇒ Método de Jacobi Métodos Iterativos Dado o sistema Ax = b, o método de Jacobi consiste na determinação de uma sequência de aproximações na (k+1)-ésima iteração a partir da k-ésima estimativa usando: Inicia-se com os valores iniciais: Pode-se assumir que o valor inicial de todas as incógnitas seja igual a zero. Método de Jacobi nixab a x nj ij j k jiji ii k i ,...,2,1 1 1 )(1 = −= ∑ = ≠ = + Os valores das incógnitas são atualizados todos de uma vez no final de cada iteração. É fácil ver que, no método de Jacobi, as equações são mudadas simultaneamente usando-se o valor mais recente do vetor x, por causa disso esse método também é conhecido por Método dos Deslocamentos Simultâneos. Método de Jacobi Resolver o sistema: Pelo Método de Jacobi com x(0) = (0.7, -1.6, 0.6)t e ε < 10-2. Exemplo 1 Solução Dividindo cada equação pelo correspondente da diagonal principal, temos: Temos que as iterações são definidas por: Solução A partir de x(0), obtemos os seguinte valores para x(1) : Continuando as iterações, obtemos a tabela: Solução Desde que: Temos: Segue que a solução do sistema com ε < 10-2 é: • Exercício: Resolva o seguinte sistema, utilizando Jacobi, com ∈= 0,5 e depois calcule o resíduo � �� − 0,25�� − 0,25�� = 0−0,25�� + �� − 0,25�� = 0−0,25�� + �� − 0,25�� = 0,25−0,25�� + �� = 0,25 Exercício Método de Gauss-Seidel Métodos Iterativos No método de Gauss-Seidel, valores iniciais também são assumidos para as incógnitas: Pode-se assumir que o valor inicial de todas as incógnitas seja igual a zero. O método de Gauss-Seidel é fundamentado na simples constatação de que o cálculo de necessita dos valores de calculados na iteração precedente. Ora, na iteração k+1, nós já temos em mãos uma melhor aproximação de , i.e., Método de Gauss-Seidel 1 2 +kx k n kk xxx ,...,, 31 1x 1 1 +kx Da mesma forma, no momento cálculo de podemos utilizar e que já foram calculados. De forma geral, para o cálculo de , podemos utilizar já calculados na iteração atual e da iteração precedente. Método de Gauss-Seidel 1 3 +kx 1 1 +kx 12 +kx 1+k ix 1 1 1 2 1 1 ,...,, + − ++ k i kk xxx k n k i k i xxx ,...,, 21 ++ A aplicação do método de Gauss-Seidel, leva à fórmula iterativa: Método de Gauss-Seidel −= −= +−= −= ∑ ∑∑ ∑ −= = ++ = += −= = ++ = = + 1 1 )1(1 1 )( 1 1 )1(1 2 )( 11 11 1 1 1 1,...,2 1 1 nj j k jnjn nn k n nj ij k jij ij j k jiji ii k i nj j k jj k xab a x nixaxab a x xab a x Esse método difere do processo de Jacobi por utilizar para o cálculo de uma componente de x(k+1) o valor mais recente das demais componentes. Por esse motivo, o método de Gauss Seidel é conhecido por Método dos Deslocamentos Sucessivos. Método de Gauss-Seidel Exemplo 2 Resolver o sistema: pelo método de Gauss-Seidel com ε < 10-2. Solução Temos que as iterações são definidas por: E a partir de x(0) = (0, 0, 0)t , obtemos para x(1) os seguintes valores: Solução Continuando as iterações obtemos a tabela: Temos: Solução E, portanto, temos: Segue que a solução do sistema para ε < 10-2, é: Exercício • Resolva o sistema pelo método de Gauss-Seidel com ∈= 0,2 �2�� − �� = 1�� + 2�� = 3 Para determinar a solução de um sistema linear por métodos iterativos, é preciso transformar o sistema dado em um outro sistema onde possa ser definido um processo iterativo. Seja um sistema linear Ax = b determinado, onde A é uma matriz n x n; x e b são vetores n x 1. Suponha então que o sistema Ax = b tenha sido transformado num sistema equivalente da forma: x = Bx + g, de maneira que a solução desse sistema seja também solução de Ax = b. Convergência *x Seja uma aproximação inicial para . Obtemos as aproximações sucessivas , usando o processo iterativo estacionário definido por: Se a sequência converge para , então coincide com a solução . Passando-se ao limite ambos os membros da equação anterior, obtém-se: Pela equivalência, é também solução de . Convergência x(0) *x x(k ) gxBx kk += − )1()( x(k ){ } *x Ax = b gxBx += * * Ax = b *x *x Corolário – Critério Geral da Convergência O processo iterativo definido anteriormente é convergente se, para alguma norma de matrizes, Convergência B <1 Prova do Critério Geral da Convergência Seja o vetor erro . Subtraindo de , obtemos: e portanto: Podemos escrever E por aplicações sucessivas, temos que: )()( * kk xxe −= e(k ) = B e(k−1) x(k ) = B x(k−1) + g gxBx += * * ( ))1()( * * −−=− kk xxBxx e(k−1) = B e(k−2)⇒ e(k ) = B2 e(k−2) e(k ) = Bk e(0) erro inicial Prova do Critério Geral da Convergência Pelas propriedades de normas de matrizes , segue que: Portanto: Vemos, que se então tende a zero. Bke(0) ≤ B k e(0) e(k ) ≤ B k e(0) B <1 e(k ) Se para alguma norma, então o processo iterativo definido por converge. B <1 x(k ) = B x(k−1) + g Exemplo 3 Seja Verificar se um sistema Ax = b que tenha a matriz B acima como matriz de iteração convergirá para a solução. Solução Calculando , obtemos e nada podemos concluir. Calculando , obtemos e podemos agora afirmar que o processo iterativo com essa matriz é convergente. B ∞ 2,1= ∞ B B 1 19,01 <=B B ∞ =max 1≤ i≤n aij j=1 n ∑ B 1 =max1≤ j≤n aij i=1 n ∑ Convergência do Método de Jacobi O método de Jacobi pode ser descrito sob a forma matricial: Para isto, decompomos a matriz A na forma: A = L + D + R onde L = D = R = gxBx kk += − )1()( Convergência do Método de Jacobi Assim, o sistema Ax = b, se torna: (D+L+R)x = b ou ainda: Dx = -(L+R)x + b e finalmente : x = -D-1(L+R)x + D-1b que está na forma do processo iterativo com: B = -D-1(L+R) e g = D-1b. Logo, o método de Jacobi pode ser escrito como: x(k+1) = −D−1(L + R)x(k ) + D−1b Convergência do Método de Jacobi Supondo det(D) ≠ 0, temos aii ≠ 0 para i=1,...n. Podemos, então, antes de decompor a matriz A, dividir cada equação pelo elemento correspondente da diagonal principal, resultando assim: A* = L* + I + R* Assim, o método de Jacobi pode ser descrito como: x(k+1) = −(L*+R*)x(k ) + b* Critérios de Convergência Fazendo B = -(L*+R*) e escolhendo as normas e , obtemos condições suficientes de convergência para o método de Jacobi. O método converge se: O critério das linhas for satisfeito: Ou o critério das colunas for satisfeito: onde max 1≤ i≤n aij * j=1 j≠ i n ∑ <1 max 1≤ j≤n aij * i=1 i≠ j n ∑ <1 aij * = aij aii Matrizes de diagonais estritamente dominantes Definição Uma matriz A tem diagonal estritamente dominante se: aij j=1 j≠ i n ∑ < aii , i =1,2,...n Critérios de Convergência Dada a definição anterior, podemos observar que, se a matriz for estritamente diagonalmente dominante, então o critério das linhas é satisfeito. Se dividirmos cada equação pelo correspondente elemento da diagonal principal segue que: Portanto, podemos também verificar a convergência do método de Jacobi testando se a matriz dos coeficientes tem diagonal estritamente dominante. Exemplo 4: Teste de convergência Voltemos ao sistema: Antes de aplicar o método de Jacobi, devemos testar se temos garantia de convergência. Nesse caso, verificamos que a matriz dos coeficientes tem diagonal estritamente dominante, pois: convergência garantida! Convergência do Método de Gauss-Seidel Como para o método de Jacobi, suponha que o sistema linear Ax = b seja escrito na forma: (L* + I + R*) x = b* Transformamos esse sistema como segue: (L* + I)x = -R*x + b* x = -(L* + I)-1R*x + (L* + I)-1b* que está na forma do processo iterativo definido anteriormente com: B = -(L*+I) -1R* e g = (L*+I) -1b. Convergência do Método de Gauss-Seidel O método de Gauss-Seidel é definido pelo seguinte processo iterativo: Multiplicando ambos os lados por (L* + I), segue que: x (k+1) = −(L *+I)−1R* x(k ) + (L *+I)−1b* (L *+I)x(k+1) = −R* x(k ) + b* x(k+1) = −L* x(k+1) − R* x(k ) + b* Critérios de Convergência Fazendo B = -(L*+I)-1R* no critério geral de convergência, o método de Gauss-Seidel converge se: 1. O critério de Sassenfeld for satisfeito: onde max 1≤ i≤n βi <1 β1 = aij* j= 2 n ∑ βi = aij* j=1 i−1 ∑ β j + aij* j= i+1 n ∑ , i = 2,...,n Critérios de Convergência 2. O critério das linhas for satisfeito: ou a matriz dos coeficientes tiver diagonal estritamente dominante: aij j=1 j≠ i n ∑ < aii , i =1,2,...n max 1≤ i≤n aij * j=1 j≠ i n ∑ <1 Exemplo 5: Teste de convergência Voltemos ao sistema: Antes de aplicar o método de Gauss-Seidel, devemos testar se temos garantia de convergência. Como a matriz não tem diagonal estritamente dominante, por esse critério nada podemos concluir em relação à convergência do processo de Gauss-Seidel. Exemplo 5: Teste de convergência Dividindo cada equação pelo correspondente elemento da diagonal principal obtemos: Vimos que, se a matriz dos coeficientes não tiver diagonal estritamente dominante, então o critério das linhas também não será satisfeito, como mostrado a seguir: Exemplo 5: Teste de convergência E portanto, nada podemos concluir em relação à convergência. Aplicando o critério de Sassenfeld, temos: Logo, como o critério de Sassenfeld foi satisfeito e o mesmo é condição suficiente para convergência, podemos garantir que o processo de Gauss-Seidel converge. Observações 1. Para um dado sistema linear, o método de Jacobi pode convergir enquanto que o de Gauss-Seidel diverge e vice-versa. 2. Se não for muito menor que 1, a convergência pode ser bastante lenta. 3. A convergência para ambos os métodos não depende da solução inicial x(0). 4. Normalmente, tomamos x(0)=0 para o método de Gauss-Seidel e x(0)=b* para o método de Jacobi. B • Verifique a convergência e em seguida resolva o seguinte sistema utilizando Gauss-Seidel � �� + 4�� + �� = 10−6�� + 2�� + �� = −3−�� − �� + 3��= −6 Atividade Solução – Teste do critério das linhas • Para a primeira linha: 1 > 4+1 ? Não. Falhou! – Sassenfeld • Para a prmeira linha: 1 > 4+1 ? Não. Falhou! – Podemos tentar rearranjar as linhas do sistema: �−6�� + 2�� + �� = −3�� + 4�� + �� = 10−�� − �� + 3��= −6 – Teste do critério das linhas • Para a primeira linha: 6 > 2+1 ? Sim! • Para a segunda linha: 4 > 1+1 ? Sim! • Para a terceira linha: 3 > 1+1 ? Sim! Passou! – Resolver normalmente por Gauss-Seidel Atividade Usando o método de Jacobi, obter a solução do sistema abaixo, com precisão de 3 casas decimais. Atividade Dado o sistema: Resolvê-lo pelo método de Gauss-Seidel com ε < 10-2 Atividade Comparação entre os métodos diretos e iterativos • Métodos diretos • Recomendados para sistemas de pequeno porte com matrizes de coeficiente densas • Métodos Iterativos • Bastante vatajosos para sistemas de grande porte cuja matriz de coeficiente seja esparsa. • Necessário verificar condições de convergencia