Fundamentos IV Sistemas Lineares Gustavo Vinhal Departamento de Computação August 18, 2016
Métodos iterativos para a solução de sistema lineares
Métodos iterativos Um sistema Ax = b pode ser resolvido por um processo que gera a partir de um vetor inicial x 0 uma sequência de vetores {x 1, x 2, x 3,..., x k,...} Que deve convergir para a solução x do sistema Esse processo é chamado de iterativo
Método de Jacobi
Carl Gustav Jakob Jacobi/Iacobi Potsdam, 10 de dezembro de 1804 Berlim, 18 de fevereiro de 1851 Matemático alemão que contribuiu com fundamentos para funções eĺıpticas, dinâmica, equações diferenciais e teoria dos números
Método de Jacobi Resolve um sistema linear de n incógnitas Seja o sistema a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2.... a n1 x 1 + a n2 x 2 +... + a nn x n = b n
Parte prática do método Na primeira equação coloca-se em evidência o x 1, na segunda o x 2 e na n ésima o x n
x 1 a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 x 1 = 1 a 11 (b 1 a 12 x 2 a 13 x 3... a 1 x n )
x 2 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2 x 2 = 1 a 22 (b 2 a 21 x 1 a 23 x 3... a 2n x n )
x n a n1 x 1 + a n2 x 2 +... + a nn x n = b n x n = 1 a nn (b n a n1 x 1 a n2 x 2... a nn 1 x n 1 )
Geração de novos valores Um valor novo é gerado a partir de um valor antigo x N 1 = 1 a 11 (b 1 a 12 x A 2 a 13x A 3... a 1x A n ) x N 2 = 1 a 22 (b 2 a 21 x A 1 a 23x A 3... a 2nx A n ). x N n = 1 a nn (b n a n1 x A 1 a n2x A 2... a nn 1x A n 1 )
Exemplo 1 Seja o sistema 5x 1 2x 2 + 3x 3 = 1 3x 1 + 9x 2 + x 3 = 2 2x 1 x 2 7x 3 = 3
Colocando em evidência x1 N = 1 ( 5 1 + 2x A 2 3x3 A ) x2 N = 1 ( 9 2 + 3x A 1 x3 A ) x3 N = 1 ( 7 3 2x A 1 + x2 A )
Chute inicial x A 1 = 0, x A 2 = 0, x A 3 = 0
Primeira iteração x N 1 = 1 5 ( 1 + 2 0 3 0) = 1 5 x N 2 = 1 9 (2 + 3 0 0) = 2 9 x N 3 = 1 7 (3 2 0 + 0) = 3 7
Segunda iteração Consideramos os valores antigos aqueles gerados na primeira iteração x1 N = 1 ( 5 1 + 2( 2 9 ) 3( 3 7 )) = 46 315 x2 N = 1 ( 9 2 + 3( 1 5 ) + 3 ) 7 = 64 315 x3 N = 1 ( 7 3 2( 1 5 ) + 2 ) 9 = 163 315
Terceira iteração x1 N = 1 ( 5 1 + 2( 64 163 315 ) 3( 315 )) = 302 1575 x2 N = 1 ( 9 2 + 3( 46 315 ) + 163 ) 315 = 133 405 x3 N = 1 ( 7 3 2( 46 315 ) + 64 ) 315 = 131 315
Quarta iteração x1 N = 1 5 + 2 5 133 405 3 131 5 ( 315 ) = 2564 14175 x2 N = 2 9 + 3 9 302 1575 1 131 9 ( 315 ) = 673 2025 x3 N = 3 7 + 2 7 302 1575 1 7 133 405 = 41744 99225
Fazemos a quinta, sexta, sétima iterações... Até atingir um critério de parada Geralmente o critério de parada é o erro relativo
Critério de parada relaxado A tabela mostra os resultados até a iteração 7 Observa-se que entre a sexta e sétima iteração não houve alteração relevante
Método de Gauss-Seidel
Johann Carl Friedrich Gauss Braunschweig, 30 de Abril de 1777 Göttingen, 23 de Fevereiro de 1855 Matemático, astrônomo e físico alemão que contribuiu muito em diversas áreas da ciência, dentre elas a teoria dos números, estatística, análise matemática, geometria diferencial, geodésia, geofísica, eletroestática, astronomia e óptica
Philipp Ludwig von Seidel Zweibrücken, 23 de outubro de 1821 Munique, 13 de agosto de 1896 matemático alemão O método de Gauss-Seidel é um método numérico iterativo usual para a solução de sistemas de equações lineares
Método de Gauss-Seidel Resolve um sistema linear de n incógnitas Seja o sistema a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2.... a n1 x 1 + a n2 x 2 +... + a nn x n = b n
Parte prática do método Na primeira equação coloca-se em evidência o x 1, na segunda o x 2 e na n ésima o x n
x 1 a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 x 1 = 1 a 11 (b 1 a 12 x 2 a 13 x 3... a 1 x n )
x 2 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2 x 2 = 1 a 22 (b 2 a 21 x 1 a 23 x 3... a 2n x n )
x n a n1 x 1 + a n2 x 2 +... + a nn x n = b n x n = 1 a nn (b n a n1 x 1 a n2 x 2... a nn 1 x n 1 )
Geração de novos valores Um valor novo é gerado a partir de um valor antigo x N 1 = 1 a 11 (b 1 a 12 x A 2 a 13x A 3... a 1x A n ) x N 2 = 1 a 22 (b 2 a 21 x N 1 a 23x A 3... a 2nx A n ) x N 3 = 1 a 33 (b 3 a 31 x N 1 a 32x N 2 a 34x A 4... a 3nx A n ). x N n = 1 a nn (b n a n1 x N 1 a n2x N 2... a nn 1x N n 1 )
Aumento de velocidade O processo de usar o que foi calculado até o momento produz um aumento de velocidade na convergência do médodo
Exemplo 1 Seja o sistema 5x 1 2x 2 + 3x 3 = 1 3x 1 + 9x 2 + x 3 = 2 2x 1 x 2 7x 3 = 3
Colocando em evidência x1 N = 1 ( 5 1 + 2x A 2 3x3 A ) x2 N = 1 ( 9 2 + 3x N 1 x3 A ) x3 N = 1 ( 7 3 2x N 1 + x2 N )
Chute inicial x A 1 = 0, x A 2 = 0, x A 3 = 0
Primeira iteração x N 1 = 1 5 ( 1 + 2 0 3 0) = 1 5 x2 N = 1 ( 9 2 + 3 ( 1 5 ) 0) = 7 45 x3 N = 1 ( 7 3 2 ( 1 5 ) + 7 ) 45 = 32 63
Segunda iteração Consideramos os valores antigos aqueles gerados na primeira iteração x1 N = 1 ( 5 1 + 2( 7 32 45 ) 3( 64 )) = 363 315 x2 N = 1 ( 9 2 + 3( 263 315 ) + 32 ) 63 = 677 2025 x3 N = 1 ( 7 3 2( 263 1575 ) + 677 ) 2025 = 8506 19845
Convergência Continuando dessa maneira em cinco iterações conseguimos a convergência
Estudo da convergência dos métodos iterativos
Convergência dos métodos iterativos Seja o sistema [ x1 5x 2 = 2 7x 1 x 2 = 6 ]
Aplicando os métodos Aplicando os métodos de Jacobi e Gauss-Seidel, temos o esquema x 1 = 4 + 5x 2 x 2 = 6 + 7x 1
Resultados com Jacobi
Análise Jacobi Observe que os valores estão indo para menos infinito A vírgula está separando as ordens de grandeza dos milhares O método produz valores que não são definitivamente aproximantes da solução
Resultados Gauss-Seidel
Análise Gauss-Seidel Também não é a solução Na quinta iteração -7.503,124 e -52.521,874 estão muito longe da solução real
????? Existe alguma maneira de saber se os métodos vão convergir para um sistema dado?
Sim, existe Matriz diagonalmente dominante a 11 > a 12 + a 13 +... + a 1n a 22 > a 21 + a 23 +... + a 2n. a nn > a n1 + a n2 +... + a nn 1 O elemento da diagonal em módulo é maior que a soma dos outros elementos da mesma linha em módulo
Exemplo 1 3 > 1 5 > 2 3x 1 x 2 = 4 2x 1 + 5x 2 = 2 [ ] 3 1 A = 2 5 A matriz A é diagonalmente dominante Nesse caso temos a certeza que Jacobi e Gauss-Seidel convergem
Exemplo 2 Seja o sistema 4x 1 + 2x 2 x 3 = 1 x 1 + 2x 3 = 4 3x 1 5x 2 + x 3 = 3 4 2 1 A = 1 0 2 3 5 1 Essa matriz não é diagonalmente dominante 0 < 2 + 1, 1 < 5 + 3 Nesse caso não podemos dizer se o sistema converge ou não
Porém... Podemos mudar as linhas da matriz e conseguir a dominância diagonal 4 2 1 A = 3 5 1 1 0 2 A é diagonalmente dominante 2 > 1 + 0, 5 > 3 + 1
Matriz diagonalmente dominante Condição suficiente para a convergência, não é necessária Se a matriz não diagonalmente dominante não podemos concluir se o método vai convergir ou não
O método não converge Seja o sistema Os métodos não convergem x 1 5x 2 = 4 7x 1 x 2 = 6
Execução com Gauss-Seidel [x, iter, ConErro] = gauss seidel(2, [1 5; 7 1], [ 4; 6], 1.0000e 05, 50) x = 1.5974e + 77 1.1182e + 78 iter = 50 ConErro = 1
O método converge Mudando as linhas Os métodos convergem 7x 1 x 2 = 6 x 1 5x 2 = 4
Execução com Gauss-Seidel [x, iter, ConErro] = gauss seidel(2, [7 1; 1 5], [6; 4], 1.0000e 05, 50) x = 1.00000 1.00000 iter = 5 ConErro = 0
Exercícios 1. Use o método de Gauss-Seidel para obter a solução do sistema, com três iterações. Use chute inicial zero. 3x 1 0, 1x 2 0, 2x 3 = 7, 85 0, 1x 1 + 7x 2 0, 3x 3 = 19, 3 0, 3x 1 0, 2x 2 + 10x 3 = 71.4 2. Encontre as duas primeiras iterações para o método de Jacobi para o sistema para o sistema. Use chute inicial zero. 3x 1 x 2 + x 3 = 1 3x 1 + 6x 2 + 2x 3 = 0 3x 1 + 3x 2 + 7x 3 = 4
Exercícios 3. Seja o sistema x 1 + 0x 2 x3 = 0, 2 1 2 + x 2 1 4 x 3 = 1.425 x 1 1 2 x 2 + x 3 = 2 (a) A matriz de coeficentes do sistema é diagonalmente dominante? (b) Use o método iterativo de Gauss-Seidel para aproximar a solução para o sistema linear com tolerância de 10 2 e o máximo de 300 iterações