Métodos Numéricos Sistemas Lineares – Métodos Iterativos Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Resolução de Sistemas Lineares Métodos Iterativos – Introdução • É bastante comum encontrar sistemas lineares que envolvem uma grande porcentagem de coeficientes nulos. Esses sistemas são chamados de sistemas esparsos. Para esses tipos de sistemas, o método de Eliminação de Gauss não é o mais apropriado, pois ele não preserva essa esparsidade, que pode ser útil por facilitar a resolução do sistema. • Métodos iterativos são mais econômicos no que tange a memória dos computadores • Podem ser usados para reduzir os erros de arredondamento na solução obtida por métodos exatos • Em alguns casos podem ser aplicados para resolver conjuntos de equações não lineares (Ruggiero, página 154) Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 2 Resolução de Sistemas Lineares Métodos Iterativos – Introdução • Um método é iterativo quando fornece uma sequência de aproximações da solução. • Cada uma das aproximações é obtida das anteriores pela repetição do mesmo processo. • Precisamos sempre saber se a sequência obtida está convergindo ou não para a solução desejada. • Dada uma sequência de vetores {x(k)}, dizemos que a sequência {x(k)} converge para x se ||x(k) – x|| 0, quando k . Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 3 Resolução de Sistemas Lineares Métodos Iterativos – Introdução • Portanto, como todo processo iterativo, estes métodos sempre apresentarão um resultado aproximado, que será tão próximo do resultado real conforme o número de iterações realizadas. • Para determinar a solução de um sistema linear por métodos iterativos, precisamos transformar o sistema dado em um outro sistema onde possa ser definido um processo iterativo. • A solução obtida para o sistema transformado deve ser também solução do sistema original (sistemas lineares devem ser equivalentes). Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 4 Resolução de Sistemas Lineares Métodos Iterativos – Algoritmo • Escrever o sistema Ax = b, de forma equivalente x = Fx + d (tal como f(x) = x – g(x) para iterações de ponto fixo). • Escolher uma aproximação inicial x(0). • Começando com x(0), gerar uma sequência de aproximações {xk} de forma iterativa através de x(k + 1) = Fx(k) + d fazendo x(1) = Fx(0) + d, x(2) = Fx(1) + d e assim sucessivamente. Observação • A representação de F e d depende do tipo de método usado. • Assim, para métodos iterativos diferentes, F e d são obtidos a partir de A e b de formas diferentes. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 5 Resolução de Sistemas Lineares Métodos Iterativos – Algoritmo • Como k→, a seqüência {x(k)} converge para o vetor solução sob algumas condições da matriz F. • Isto impõe condições diferentes na matriz A para diferentes métodos. • Para a mesma matriz A, um método pode convergir, enquanto outro pode divergir. • Portanto, para cada processo, a relação entre A e F deve ser encontrada para decidir sobre a convergência. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 6 Resolução de Sistemas Lineares Métodos Iterativos – Algoritmo Quando Parar? • Se a sequência {x(k)} estiver suficientemente próximo de x(k-1) paramos o processo. • Dada um precisão ε, quando ||x(k) – x|| < ε então x(k) é a solução do sistema linear. • Computacionalmente, um número máximo de iterações também é critério de parada. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 7 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 8 Resolução de Sistemas Lineares Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 9 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Motivação Seja um sistema com n variáveis e n equações a11x 1 a12x 2 a1nx n b1 a x a x a x b 21 1 22 2 2n n 2 an1x 1 an2x 2 annx n bn a11x 1 b1 a12x 2 a1nx n a x b a x a x 22 2 2 21 1 2n n ... annx n bn an1x 1 ann-1x n-1 1 x 1 a b1 a12x 2 a1nx n 11 x 1 b a x a x 2 2 21 1 2n n a22 ... 1 x n bn an1x1 ann-1xn-1 ann Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 10 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi Seja x(0) uma solução inicial para este sistema . Calculando o segundo valor, x(1), da sequência {x(k)} a partir de x(0) 1 b1 a12x 2 a1nxn x 1 a11 x 1 b a x a x 2 2 21 1 2n n a22 ... 1 x n bn an1x1 ann-1xn-1 ann x 10 0 0 x 2 x 0 x n 1 1 0 0 x 1 a b1 a12x 2 a1nx n 11 1 1 b2 a21x 10 a23x 30 a2nx n0 x 2 a22 ... 1 1 0 0 0 x n a bn an1x 1 an2x 2 ann1x n1 nn x 11 1 1 x 2 x 1 x n Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 11 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi Calculando o valor de ordem (k+1) da sequência {x(k)} a partir de x(k) k 1 1 k k k x 1 a b1 a12x 2 a13x 3 a1nx n 11 k 1 1 b2 a21x 1k a23x 3k a2nx nk x 2 a22 ... k 1 1 k k k x b a x a x a x n n n1 1 n2 2 nn 1 n 1 ann Equação geral k 1 xi 1 aii i1 n k k b a x a x i ij j ij j j1 ji1 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 12 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi • Seja o sistema k 1 1 k k x b a x a x 1 1 12 2 1n n a11 k 1 1 b2 a21x 1k a23x 3k a2nx nk x 2 a22 ... k 1 1 k k k x n a bn an1x 1 an2x 2 ann1x n1 nn • Considerando que x(k+1) = Fx(k) + d, então temos 0 a /a F 21 22 ........ a /a n1 nn a12/a11 ...... a1n/a11 0 ....... a2n/a22 ......... ....... ......... an2 /ann ....... 0 b1 /a11 b /a d 2 22 ....... b /a n nn Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 13 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi A iteração xk+1 = Fxk + d para o método Gauss-Jacobi A matriz A pode ser rescrita como A=L+D+U (não é decomposição) a11 a12 a13 x 1 0 0 0 x 1 a11 0 0 x 1 0 a12 a13 x 1 a x a x 0 a x 0 0 a x a a 0 0 0 21 22 23 2 21 2 22 23 2 2 a31 a32 a33 x 3 a31 a32 0 x 3 0 0 a33 x 3 0 0 0 x 3 Ax = b (L + D + U)x = b Dxk+1 = [b–(L+U)xk] xk+1 = (1/D)*[b–(L+U)xk] Dn×n é matriz diagonal formado pelos elementos da diagonal de A Un×n matriz triangular superior formada pelos elementos acima da diagonal de A Ln×n matriz triangular inferior formada pelos elementos abaixo da diagonal de A Fazendo Qn×n = (Un×n + Ln×n), e considerando Dn×n tal que A = (L + D + U) 1 x ik 1 Dii n k bi Q ijx j j1 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 14 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Pseudo-Algoritmo 1. 2. 3. 4. Sejam An×n e bn×1 Construa as matrizes Q e D tal que Q = (U + L) e A = (L + D + U) Faça x(0) = 0; k = 0; Erro = Inf; Tolerancia = 10-5; while Erro > Tolerancia k 1 xi 1 Dii n k b Q x i ij j j1 k = k + 1; Erro = ||b – Axk||; end Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 15 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Critério de Convergência das linhas Critério das linhas. n Dado o sistema Ax = b, seja αk |akj |/ |akk | j1,jk Se α max αk 1 , então o método de Gauss-Jacobi gera uma série convergente 1kn para a solução do sistema independentemente da escolha de x(0). n aij a j1 i j 1 para i 1,2,..., n ii n aii aij (matriz diagonalmente dominante) j1 i j Se A é uma matriz diagonalmente dominante, então o método Jacobi converge para qualquer vetor inicial x(0). Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 16 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Critério das linhas – Exemplo 10 x 1 2 x 2 x 3 7 1 x 1 5 x 2 x 3 8 2 x 3 x 10 x 6 2 3 1 10 2 1 A 1 5 1 2 3 10 Critério das linhas: α1 21 0,3 1 10 α2 Como α max αk 0,5 1 1k 4 11 0,4 1 5 α3 23 0,5 1 10 logo, a sequência converge Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 17 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Exemplo 1 4 1 1 x 1 7 4 8 1 x 21 2 2 1 5 x 3 15 0 x 0 0 0 b Ax0 26,7395 A matriz dos coeficientes é diagonalmente dominante 7 x 20 x 30 7 x1 1,75 4 4 0 0 21 4x 1 x 3 21 x 21 2,625 8 8 0 0 1 15 2x 1 x 2 15 3,0 x3 5 5 1 1,750 x 1 2,625 3,000 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina b Ax1 10,0452 18 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Exemplo 1 7 x 21 x 31 7 2,625 3 x1 1,65625 4 4 1 1 21 4 1,75 3 2 21 4x 1 x 3 x2 3,875 8 8 1 1 15 2 1,75 2,625 2 15 2x 1 x 2 4,225 x3 5 5 2 7 3,875 4,225 1,6625 4 21 4 1,65625 4,225 x 23 3,98125 8 15 2 1,65625 3,875 x 33 2,8875 5 x 13 1,6562 x 2 3,8750 4,2250 b Ax 2 6,7413 1,66250 x 3 3,98125 2,88750 b Ax 3 1,9534 A matriz é uma diagonalmente dominante, então o método Jacobi converge. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 19 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Exemplo 2 5 1 1 7 1 A 1 5 1 b 7 Ax b x 1 1 1 5 7 1 0,0000 F 0,2000 0,2000 0,2000 0,0000 0,2000 0,2000 0,2000 0,0000 7/5 1,4000 d b/D 7/5 1,4000 7/5 1,4000 0,0000 x (0) 0,0000 0,0000 Solução exata n k 1 1 k bi qijx j xi d ii j 1 k 1 k x d Fix Erro: b Ax 0 12,124 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 20 Resolução de Sistemas Lineares Método Iterativo Gauss-Jacobi – Exemplo 2 1,4000 x (1) Fx(0) d 1,4000 1,4000 0,8400 x (2) Fx(1) d 0,8400 0,8400 1,0640 x (3) Fx(2) d 1,0640 1,0640 0,9744 x (4) Fx(3) d 0,9744 0,9744 1,0102 x (5) Fx(4) d 1,0102 1,0102 0,9959 x (6) Fx(5) d 0,9959 0,9959 b Ax 1 4,8497 b Ax 3 0,77596 b Ax 5 0,12367 b Ax 2 1,9399 b Ax 4 0,31038 b Ax 6 0,04971 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 21 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 22 Resolução de Sistemas Lineares Calculando o valor x(k+1) da sequência {x(k)} a partir de x(k) k 1 1 k k k x b a x a x a x 1 1 12 2 13 3 1n n a11 k 1 1 b2 a21x 1k a23x 3k a2nx nk x 2 Gauss-Jacobi a22 ... k 1 1 k k k x n a bn an1x 1 an2x 2 ann1x n1 nn k 1 1 k k k x b a x a x a x 1 1 12 2 13 3 1n n a11 k 1 1 b2 a21x 1k 1 a23x 3k a2nx nk x 2 Gauss-Seidel a22 ... k 1 1 k 1 k 1 k 1 x n a bn an1x 1 an2x 2 ann1x n1 nn Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 23 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel k 1 1 k k k x b a x a x a x 1 1 12 2 13 3 1n n a11 k 1 1 b2 a21x 1k 1 a23x 3k a2nx nk x 2 a22 ... k 1 1 k 1 k 1 k 1 x n a bn an1x 1 an2x 2 ann1x n1 nn k 1 xi 1 aii i1 n k 1 k bi aijx j aijx j j1 ji1 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 24 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel k 1 1 k k k x b a x a x a x 1 1 12 2 13 3 1n n a11 k 1 1 b2 a21x 1k 1 a23x 3k a2nx nk x 2 a22 ... k 1 1 k 1 k 1 k 1 x n a bn an1x 1 an2x 2 ann1x n1 nn Ax = b (L + D + U)x = b x k 1 i 1 aii Dxk+1 i1 n k 1 k b a x a x i ij j ij j j1 ji1 Lx k 1 Uxk Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 25 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Pseudo-Algoritmo 1. 2. 3. 4. Sejam An×n e bn×1 Construa as matrizes D, L e U tal que A = (L + D + D) Faça x(0) = 0; k = 0; Erro = Inf; Tolerancia = 10-5; while Erro > Tolerancia k 1 xi 1 Dii ji1 jn k 1 k b L x U x i ij j ij j j 1 j i 1 K = k + 1; Erro = ||b – Axk||; end Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 26 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Critério de Convergência • Gauss-Jacobi converge para qualquer vetor inicial, se a matriz A é uma matriz diagonal dominante. • Gauss-Seidel converge para qualquer vetor inicial se A é uma matriz definida positiva. • A Matrix é definida positiva se xTAx > 0 para todo x diferente do vetor nulo. • A matriz é definida positiva, se todos os autovalores são positivos. • Mas o critério a ser adotado para convergência do método Gauss-Seidel será o de SASSENFELD. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 27 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Critério de Convergência Critérios de Convergência; 1) Critério das linhas –para o método GAUSS-JACOBI; 2) Critério de Sassenfeld – para o método GAUSS-SEIDEL. Os critérios acima estabelecem condições suficientes para a convergência. Critério de Sassenfeld Sejam as quantidades i dadas por: 1 n β1 a1j a11 j2 n 1 i1 βi β j aij aij , i 2,3,...,n aii j1 ji1 Se β max{βi } o método de Gauss-Seidel convergirá. Quanto menor , mais 1in rápida é a convergência. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 28 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Critério de Sassenfeld Sejam |a12 | |a13 | |a1n | n |a1j | β1 |a11 | j2 | a11 | e βi | ai1 |β1 | ai2 |β2 | aii1 |βi1 | aii1 | | ain | | aii | i1 n j1 ji1 [| aij |β j | aij |]/ | aii | i 2,3, n Seja β max{βi } . Se < 1, o método de Gauss-Seidel gera uma sequência 1in convergente para qualquer x(0). Quanto menor , mais rápida a convergência. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 29 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Critério de Convergência de Sassenfeld – Exemplo a11 a 21 A a31 a41 a12 a13 a22 a23 a32 a33 a42 a43 a14 b1 b a24 2 b b 3 a34 a44 b 4 β1 1 |a12 |a13 | |a14 a11 β2 1 a21 β1 a23 a24 a22 β3 1 a31 β1 a32 β2 a34 a33 β4 1 a41 β1 a42 β2 a43 β3 a44 Seja β maxβi . Se é menor que 1 então o método iterativo Gauss-Seidel irá 1i4 convergir para a solução do sistema. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 30 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Critério de Sassenfeld – Exemplo 2x 1 x 2 0,2x 3 0,2x 4 0,4 0,6x 3x 0,6x 0,3x 7,8 1 2 3 4 0,1x 1 0,2x 2 x 3 0,2x 4 1 0,4x 1 1,2x 2 0,8x 3 4x 4 10 1 0,2 0,2 2 0,6 3 0,6 0,3 A 0,1 0,2 1 0,2 0,4 1,2 0,8 4 1 β 1 2 1 0,2 0,2 0,7 β 1 0,6 0,7 0,6 0,3 0,44 2 3 β 1 0,1 0,7 0,2 0,44 0,2 0,358 3 1 1 β4 0,4 0,7 1,2 0,44 0,8 0,358 0,2736 4 β maxβi max0,7, 0,44, 0,358, 0,2736 0,7 1i4 Como < 1, a sequência gerada pelo método de Gauss-Seidel converge para a solução do sistema Ax = b. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 31 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Exemplo 1 4 1 1 x 1 7 4 8 1 x 21 2 2 1 5 x 3 15 0 x 0 0 0 b Ax0 26,7395 A matriz dos coeficientes é diagonalmente dominante 7 7 x 20 x 30 1,75 x1 4 4 1 0 21 4 1,75 1 21 4x 1 x 3 3,5 x2 8 8 1 1 15 2 1,75 3,5 1 15 2x 1 x 2 3,0 x3 5 5 1 1,750 x 1 3,500 3,000 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina b Ax 1 3,0414 GJ : b Ax 10,0452 1 32 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Exemplo 1 7 x 21 x 31 7 3,5 3 x1 1,875 4 4 2 1 21 4 1,875 3 2 21 4x 1 x 3 3,9375 x2 8 8 2 2 2 15 2x 1 x 2 15 2 1,875 3,9375 2,9625 x3 5 5 1,8750 x 2 3,9375 2,9625 7 3,9375 2,9625 1,9937 4 21 4 1,9937 2,9625 x 23 3,9921 8 15 2 1,9937 3,9922 x 33 2,9991 5 1,9937 x 3 3,9921 2,9991 2 x 13 b Ax 2 0,4765 GJ : b Ax 6,7413 2 b Ax3 0,0408 GJ : b Ax 1,9534 3 Quando ambos Jacobi e Gauss-Seidel convergem, Gauss-Seidel converge mais rápido. Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 33 Resolução de Sistemas Lineares Método Iterativo Gauss-Seidel – Exemplo 2 1,4000 (1) (0) x Fx d 1,1200 0,8960 0,9968 (2) (1) x Fx d 1,0214 0,9964 0,9964 (3) (2) x Fx d 1,0014 1,0004 0,9996 (4) (3) x Fx d 1,0000 1,0001 1,0000 (5) (4) x Fx d 1,0000 1,0000 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 34 Resolução de Sistemas Lineares Métodos Iterativos Gauss-Jacobi e Gauss-Seidel – Comparação Implementação paralela: Gauss-Jacobi k 1 Gauss Jordan : xi 1 Dii 1 Gauss Seidel: xik 1 Dii ji1 jn k k bi Lijx j Uijx j j1 ji1 ji1 jn k 1 k bi Lijx j Uijx j j1 ji1 Professor Volmir Eugênio Wilhelm – Professora Mariana Kleina 35