Métodos iterativos para sistemas lineares. Alan Costa de Souza 7 de Setembro de 2017 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 1 / 46
Introdução. A ideia central é generalizar o método do ponto fixo utilizado na busca por raízes de uma função. Seja o sistema linear A x = b. A é a matriz de coeficientes. x é o vetor de variáveis. b é o vetor de constantes. O sistema é convertido de alguma forma em outro sistema do tipo x = C x + g. Podemos definir φ( x) = C x + g, como uma função de iteração. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 2 / 46
Introdução. Então podemos propor um sistema iterativo: Iniciamos com um vetor x 0. Obtemos uma sequência de vetores através de φ( x). x 1 = C x 0 + g = φ( x 0 ) x 2 = C x 1 + g = φ( x 1 ) x 3 = C x 2 + g = φ( x 2 ) x k+1 = C x k + g = φ( x k ) Se lim k x k = α. α = C α + g. A α = b. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 3 / 46
Testes de parada. O método iterativo segue até x k esteja suficiente próximo de x k+1. O que isso significa? No método do ponto fixo: x k+1 x k < ɛ. E com vetores? podemos utilizar por exemplo a norma infinito. Seja x um vetor, sua norma infinito é: x = max 1 i n x i. Então: x k+1 x k = max 1 i n x k+1 i x k i x k+1 x k < ɛ Outra alternativa é estipular um número de iterações máxima. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 4 / 46
Método iterativos. Veremos nessa aula dois métodos iterativos: Método de Gauss-Jacobi. Método de Gauss-Seidel. A diferença entre eles é a forma como φ( x) é calculada. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 5 / 46
Método de Gauss-Jacobi. Resolver o sistema:, usando com erro máximo ɛ =0,05. x 1 + 2x 2 + 1x 3 = 7 1x 1 + 5x 2 + 1x 3 = 8 2x 1 + 3x 2 + x 3 = 6 x 0 = + 7 8 5 + 6 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 6 / 46
Método de Gauss-Jacobi. x 1 + 2x 2 + 1x 3 = 7 1x 1 + 5x 2 + 1x 3 = 8 2x 1 + 3x 2 + x 3 = 6 x 1 + 2x 2 + 1x 3 = 7 x 1 = 1 (7 2x 2 1x 3 ) x k+1 1 = 1 (7 2x k 2 1x k 3 ) Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 7 / 46
Método de Gauss-Jacobi. x 1 + 2x 2 + 1x 3 = 7 1x 1 + 5x 2 + 1x 3 = 8 2x 1 + 3x 2 + x 3 = 6 1x 1 + 5x 2 + 1x 3 = 8 x 2 = 1 5 ( 8 1x 1 1x 3 ) x k+1 2 = 1 5 ( 8 1x k 1 1x k 3 ) Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 8 / 46
Método de Gauss-Jacobi. x 1 + 2x 2 + 1x 3 = 7 1x 1 + 5x 2 + 1x 3 = 8 2x 1 + 3x 2 + x 3 = 6 2x 1 + 3x 2 + x 3 = 6 x 3 = 1 (6 2x 1 3x 2 ) x k+1 3 = 1 (6 2x k 1 3x k 2 ) Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 9 / 46
x k+1 1 = 1 (7 2x k 2 1x k 3 ) = 0x k 1 2 x k 2 1 x k 3 + 7. x2 k+1 = 1 5 ( 8 1x 1 k 1x3 k ) = 1 5 x 1 k + 0x2 k 1 5 x 3 k 8 5 3 = 1 (6 2x 1 k 3x2 k ) = 2 x 1 k 3 x 2 k + 0x3 k + 6 x k+1 x k+1 1 x k+1 2 x k+1 3 0 2 = 1 5 0 1 5 2 3 0 1 x k+1 = C x k + g. x k 1 x k 2 x k 3 + + 7 8 5 + 6 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 / 46
x 1 = Continua? x 1 = C x 0 + g. 0 2 1 + 7 1 5 0 1 5 8 2 3 5 + 0 + 6 +0, 96 x 1 = 1, 86. +0, 94 x 1 x 0 < 0, 05? + 7 8 5 + 6. x 1 x 0 = +0, 96 1, 86 +0, 94 +0, 7 1, 6 +0, 6 = x 1 x 0 = 0, 34 > 0, 05. +0, 26 0, 26 +0, 34 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 11 / 46
x 2 = Continua? x 2 = C x 1 + g. 0 2 1 +0, 96 1 5 0 1 5 1, 86 + 2 3 0 +0, 94 +0, 978 x 2 = 1, 98. +0, 966 x 2 x 1 < 0, 05? + 7 8 5 + 6. x 2 x 1 = +0, 978 1, 98 +0, 966 +0, 96 1, 86 +0, 94 = x 2 x 1 = 0, 12 > 0, 05. +0, 018 0, 12 +0, 026 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 12 / 46
x 3 = Continua? x 3 = C x 2 + g. 0 2 1 +0, 978 1 5 0 1 5 1, 98 2 3 0 +0, 966 +0, 9994 x 3 = 1, 9888. +0, 9984 + + 7 8 5 + 6. x 3 x 2 < 0, 05? x 3 x 2 = +0, 9994 1, 9888 +0, 9984 +0, 978 1, 98 +0, 966 = x 3 x 2 = 0, 0324 < 0, 05. +0, 0214 0, 0088 +0, 0324 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 13 / 46
x x 3 = +0, 9994 1, 9888 +0, 9984 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 14 / 46
Convergência do método de Gauss-Jacobi. No exemplo anterior usamos x 0 = g A convergência do método é independente do x 0 escolhido. Veremos adiante que a convergência depende apenas da matriz de coeficientes A. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 15 / 46
Teorema 1: Critério das Linhas. Seja A x = b um sistema linear. Seja: n k j=1 α k = a kj. a kk Se α = max 1 k n α k < 1, então o método de Gauss-Jacobi gera uma sequência { x k } que converge para a solução do sistema, independente do x 0 escolhido. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 16 / 46
Exemplo 2 x 1 + 2x 2 + 1x 3 = 7 1x 1 + 5x 2 + 1x 3 = 8 2x 1 + 3x 2 + x 3 = 6 A = 2 1 1 5 1 2 3 α 1 = 2 + 1 = 0, 3 < 1. α 2 = 1 + 1 = 0, 4 < 1. 5 α 3 = 2 + 3 = 0, 5 < 1. max α k = 0, 5 < 1. 1 k 3 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 17 / 46
Exemplo 3 { 1x1 + 1x 2 = 3 1x 1 3x 2 = 3 ( ) 1 1 A = 1 3 α 1 = 1 1 = 1 1. α 2 = 1 = 0, 3 < 1. 3 max α k = 1. 1 k 3 O método de Gauss-Jacobi converge para a solução do sistema: x 1 = x 2 = 1, 5. Isso mostra que a condição do teorema é apenas suficiente. Se o critério for satisfeito, então o método converge. Mas se o critério não for satisfeito, o método pode convergir ou não convergir. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 18 / 46
Exemplo 4 1x 1 + 3x 2 + 1x 3 = 2 5x 1 + 2x 2 + 2x 3 = 3 0x 1 + 6x 2 + 8x 3 = 6 A = α 1 = 3 + 1 1 1 3 1 5 2 2 0 6 8 = 4 > 1. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 19 / 46
A = 5 2 2 1 3 1 0 6 8 α 1 = 2 + 2 = 0, 8 < 1. 5 α 2 = 1 + 1 = 0, 66... < 1. 3 α 3 = 0 + 6 = 0, 75 < 1. 8 Conclusão: Se a matriz A não satisfaz o critério das linhas, podemos permutar linhas ou colunas para tentar obter uma matriz A 2 que satisfaça. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 20 / 46
Método de Gauss-Seidel. Da mesma forma que o método Gauss-Jacobi, o método de Gauss-Seidel consiste em transformar A x = b na forma equivalente x = C x + g. x k+1 = C x k + g A fórmula de iteração é parecida, mas com uma pequena diferença. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 21 / 46
Método de Gauss-Seidel. Resolver o sistema:, usando 5x 1 + 1x 2 + 1x 3 = 5 3x 1 + 4x 2 + 1x 3 = 6 3x 1 + 3x 2 + 6x 3 = 0 x 0 = 0. com erro máximo ɛ =0,05. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 22 / 46
Método de Gauss-Seidel. 5x 1 + 1x 2 + 1x 3 = 5 3x 1 + 4x 2 + 1x 3 = 6 3x 1 + 3x 2 + 6x 3 = 0 5x 1 + 1x 2 + 1x 3 = 5 x 1 = 1 5 (5 x 2 x 3 ) = 1 0, 2x 2 0, 2x 3 x k+1 1 = 1 0, 2x k 2 0, 2x k 3 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 23 / 46
Método de Gauss-Seidel. 5x 1 + 1x 2 + 1x 3 = 5 3x 1 + 4x 2 + 1x 3 = 6 3x 1 + 3x 2 + 6x 3 = 0 3x 1 + 4x 2 + 1x 3 = 6 x 2 = 1 4 (6 3x 1 x 3 ) = 1, 5 0, 75x 1 0, 25x 3 x k+1 2 = 1, 5 0, 75x k+1 1 0, 25x k 3 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 24 / 46
Método de Gauss-Seidel. 5x 1 + 1x 2 + 1x 3 = 5 3x 1 + 4x 2 + 1x 3 = 6 3x 1 + 3x 2 + 6x 3 = 0 3x 1 + 3x 2 + 6x 3 = 0 x 3 = 1 6 (0 3x 1 3x 2 ) = 0 0, 5x 1 0, 5x 2 x3 k+1 = 0 0, 5x1 k+1 0, 5x2 k+1 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 25 / 46
Método de Gauss-Seidel. x k+1 1 = 1 0, 2x k 2 0, 2x k 3 x k+1 2 = 1, 5 0, 75x k+1 1 0, 25x k 3 x3 k+1 = 0 0, 5x1 k+1 0, 5x2 k+1 x 0 1 = 0 x 0 2 = 0 x 0 3 = 0 x 1 1 =? x 1 2 =? x 1 3 =? x 1 1 = 1 0, 2x 0 2 0, 2x 0 3 = 1. x 0 1 = 0 x 0 2 = 0 x 0 3 = 0 x 1 1 = 1 x 1 2 =? x 1 3 =? x 1 2 = 1, 5 0, 75x 1 1 0, 25x 0 3 = 1, 5 0, 75 1 = 0, 75. x 0 1 = 0 x 0 2 = 0 x 0 3 = 0 x 1 1 = 1 x 1 2 = 0, 75 x 1 3 =? x 1 3 = 0 0, 5x 1 1 0, 5x 1 2 = 0, 5 1 0, 5 0, 75 = 0, 875 x 1 1 = 1 x 1 2 = 0, 75 x 1 3 = 0, 875. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 26 / 46
Continua? x 1 x 0 = x 1 x 0 < 0, 05? 1 0, 75 0, 875 0 0 0 = x 1 x 0 = 1 > 0, 05 1 0, 75 0, 875 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 27 / 46
Método de Gauss-Seidel. x1 1 = 1 x2 1 = 0, 75 x3 1 = 0, 875 x1 2 =? x2 2 =? x3 2 =? x1 2 = 1 0, 2x2 1 0, 2x3 1 = 1, 025. x1 1 = 1 x2 1 = 0, 75 x3 1 = 0, 875 x1 2 = 1, 025 x2 2 =? x3 2 =? x2 2 = 1, 5 0, 75x1 2 0, 25x3 1 = 0, 95. x1 1 = 1 x2 1 = 0, 75 x3 1 = 0, 875 x1 2 = 1, 025 x2 2 = 0, 95 x3 2 =? x3 2 = 0 0, 5x1 2 0, 5x2 2 = 0, 9875 x1 2 = 1, 025 x2 2 = 0, 95 x3 2 = 0, 9875. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 28 / 46
Continua? x 2 x 1 = 1, 025 0, 95 0, 9875 x 2 x 1 < 0, 05? 1 0, 75 0, 875 x 2 x 1 = 0, 2 > 0, 05 = 0, 025 0, 2 0, 1125 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 29 / 46
Método de Gauss-Seidel. x1 2 = 1, 025 x2 2 = 0, 95 x3 2 = 0, 9875 x1 3 =? x2 3 =? x3 3 =? x1 3 = 1 0, 2x2 2 0, 2x3 2 = 1, 0075. x1 2 = 1, 025 x2 2 = 0, 95 x3 2 = 0, 9875 x1 3 = 1, 0075 x2 3 =? x3 3 =? x2 3 = 1, 5 0, 75x1 3 0, 25x3 2 = 0, 9912. x1 2 = 1, 025 x2 2 = 0, 95 x3 2 = 0, 9875 x1 3 = 1, 0075 x2 3 = 0, 9912 x3 3 = x3 3 = 0 0, 5x1 3 0, 5x2 3 = 0, 9993 x1 3 = 1, 0075 x2 3 = 0, 9912 x3 3 = 0, 9993. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 30 / 46
Continua? x 3 x 2 = 1, 0075 0, 9912 0, 9993 x 3 x 2 < 0, 05? 1, 025 0, 95 0, 9875 = x 3 x 2 = 0, 0412 < 0, 05. 0, 0175 0, 0412 0, 0118 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 31 / 46
x x 3 = 1, 0075 0, 9912 0, 9993 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 32 / 46
Convergência do método de Gauss-Seidel. Existem dois critérios que estabelecem condições suficientes para a convergência do método de Gauss-Seidel: Critério de Sassenfeld. Critério das linhas. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 33 / 46
Critério de Sassenfeld x 1 + 0, 5x 2 0, 1x 3 + 0, 1x 4 = 0, 2 0, 2x 1 + x 2 0, 2x 3 0, 1x 4 = 2, 6 0, 1x 1 0, 2x 2 + x 3 + 0, 2x 4 = 1 0, 1x 1 + 0, 3x 2 + 0, 2x 3 + x 4 = 2, 5 β 2 = β 1 = a 12 + a 13 + a 14 a 11 β 1 = 0, 5 + 0, 1 + 0, 1 1 = 0, 7 β 2 = a 21 β 1 + a 23 + a 24 a 22 0, 2 0, 7 + 0, 2 + 0, 1 1 = 0, 44 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 34 / 46
Critério de Sassenfeld β 4 = β 3 = x 1 + 0, 5x 2 0, 1x 3 + 0, 1x 4 = 0, 2 0, 2x 1 + x 2 0, 2x 3 0, 1x 4 = 2, 6 0, 1x 1 0, 2x 2 + x 3 + 0, 2x 4 = 1 0, 1x 1 + 0, 3x 2 + 0, 2x 3 + x 4 = 2, 5 β 3 = a 31 β 1 + a 32 β 2 + a 34 a 33 0, 1 0, 7 + 0, 2 0, 44 + 0, 2 1 = 0, 358. β 4 = a 41 β 1 + a 42 β 2 + a 43 β 3 a 44 0, 1 0, 7 + 0, 3 0, 44 + 0, 2 0, 358 1 = 0, 2736. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 35 / 46
β 1 = 0, 7 β 2 = 0, 44 β 3 = 0, 358 β 4 = 0, 2736 max β k = 0, 7 < 1. 1 k 4 Como o máximo entre os b k é menor que um, o método de Gauss-Seidel converge para qualquer aproximação inicial. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 36 / 46
Exemplo 2. 2x 1 + x 2 + 3x 3 = 9 0x 1 x 2 + x 3 = 1 1x 1 + 0x 2 + 3x 3 = 3 β 1 = a 12 + a 13 a 11 β 1 = 1 + 3 2 Viola o critério de Sassenfeld. Não podemos garantir convergência. = 2 > 1. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 37 / 46
Exemplo 2. trocando a primeira equação pela terceira equação: 1x 1 + 0x 2 + 3x 3 = 3 0x 1 x 2 + x 3 = 1 2x 1 + x 2 + 3x 3 = 9 Trocando a primeira coluna pela terceira coluna: 3x 3 + 0x 2 + 1x 1 = 3 x 3 x 2 + 0x 1 = 1 3x 3 + x 2 + 2x 1 = 9 Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 38 / 46
β 2 = 3x 3 + 0x 2 + 1x 1 = 3 x 3 x 2 + 0x 1 = 1 3x 3 + x 2 + 2x 1 = 9 β 1 = a 12 + a 13 a 11 β 1 = 0 + 1 3 = 0, 33... β 2 = a 21 β 1 + a 23 a 22 1 0, 33 + 0 1 = 0, 33... Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 39 / 46
β 3 = 3x 3 + 0x 2 + 1x 1 = 3 x 3 x 2 + 0x 1 = 1 3x 3 + x 2 + 2x 1 = 9 β 3 = a 31 β 1 + a 32 β 2 a 33 3 0, 33 + 1 0, 33 2 max β k = 0, 66... < 1. 1 k 4 = 0, 66... Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 40 / 46
Exemplo 3. { x1 + x 2 = 3 x 1 3x 2 = 3 β 1 = 1 1. O critério de Sassenfeld não é satisfeito. Mas o método de Gauss-Seidel converge. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 41 / 46
Critério das linhas. O critério das linhas usado para verificar a convergência do método de Gauss-Jacobi pode ser usado para verificar a convergência do método de Gauss-Seidel. A prova consiste em demonstrar que satisfazendo o critério das linhas, também satisfaz o critério de Sassenfeld. Logo se se satisfizer o critério das linhas, o método de Gauss-Seidel converge. Mas o método pode não satisfazer o critério das linhas e satisfazer o critério de sassenfeld e portanto convergir. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 42 / 46
Exemplo 1 Viola critério das linhas. 3x 1 + 0x 2 + 1x 3 = 3 x 1 x 2 + 0x 3 = 1 3x 1 + x 2 + 2x 3 = 9 α 1 = 0 + 1 3 α 2 = 1 + 0 1 = 1 3 < 1. = 1. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 43 / 46
Exemplo 1 3x 1 + 0x 2 + 1x 3 = 3 x 1 x 2 + 0x 3 = 1 3x 1 + x 2 + 2x 3 = 9 β 1 = 0 + 1 3 = 1 3 < 1. β 2 = a 21 β 1 + a 23 a 22 β 2 = 1 1 3 + 0 1 = 1 3 < 1. β 3 = a 31 β 1 + a 32 β 2 a 33 β 3 = 3 1 3 + 1 1 3 2 = 2 3 < 1. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 44 / 46
Comparação dos métodos. Convergência: os métodos diretos sempre convergem para a solução do sistema, se o determinante da matriz A for diferente de zero. Já os métodos iterativos convergem apenas sobre determinadas condições. Matrizes esparsas: Uma matriz esparsa é uma matriz que a maior parte dos seus elementos são zeros. Em alguns casos pode-se utilizar estruturas de dados especiais para armazenar apenas as entradas não-nulas e com isso conseguir um ganho de memória. Mas utilizando os métodos diretos, introduz-se na matriz vários elementos não-nulos que não tinham na matriz original enquanto que os métodos iterativos não alteram a matriz. Por isso é mais adequado usar os métodos iterativos para matrizes esparsas. Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 45 / 46
Erros de arredondamento: Os métodos diretos podem gerar grandes erros de arredondamento, que podem ser amenizados com a técnica de pivoteamento. Mas os métodos iterativos uma vez que a convergência é assegurada, sempre converge para a solução do sistema. Portanto os métodos iterativos garantem que a solução encontrada é a solução do sistema Alan Costa de Souza Métodos iterativos para sistemas lineares. 7 de Setembro de 2017 46 / 46