Métodos Iterativos Motivação Em certos casos, métodos diretos não são eficientes, por exemplo, quando a matriz dos coeficientes é uma matriz esparsa (muitos elementos iguais a zero) 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 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 Precisam sempre saber se a sequência obtida está convergindo ou não para a solução desejada. Convergência Dados uma sequência de vetores x(k) 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 . 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) Assim um sistema do tipo Ax=b é transformado em xk =Fx(k-1)+d Escolhemos uma aproximação inicial x0 Assim, x1 =Fx0 +d x2 = Fx1+d E assim sucessivamente Método de Jacobi Iterativamente, reescreve-se o sistema x1 ( k 1) 1 (k ) (k ) (k ) b1 a12 x 2 a13 x3 ...... a1n x n a11 ( k 1) 1 (k ) (k ) (k ) b2 a 21 x1 a 23 x3 ...... a 2 n x n a 22 x2 .......... .......... .......... .......... .......... ....... 1 ( k 1) (k ) (k ) (k ) xn bn a n1 x1 a n 2 x 2 ...... a n , n 1 x n 1 a nn Método de Jacobi Desta forma 0 a21 / a22 F ........ a / a n1 nn a12 / a11 0 ......... an 2 / ann a1n / a11 ....... a2 n / a22 ....... ......... ....... 0 ...... b1 / a11 b2 / a22 d ....... b / a n nn Quando Parar? Se a sequência xk estiver suficientemente próximo de x(k-1) paramos o processo Dada um precisão ε, quando ||x(k) – x|| < ε Então xk é a solução do sistema linear Computacionalmente, um número máximo de iterações também é critério de parada Exemplo: x (0) Seja 0 .7 1.6 0 .6 10 x1 2 x 2 x3 7 1 x1 5 x 2 x3 8 2 x1 3 x 2 10 x3 6 com 2 / 10 1 / 10 0 F 1/ 5 0 1/ 5 1 / 5 3 / 10 0 ε = 0.05. Portanto, 7 / 10 0.7 d 8 / 5 1.6 6 / 10 0.6 Substituindo (1) 0.2 x 2 ( 0) 0.1 x3 x2 (1) 0.2 x1 ( 0) 0.2 x3 ( 0) 1.6 0.2 (0.7) 0.2 (0.6) 1.6 1.86 x3 (1) 0.2 x1 (0) 0.3 x 2 ( 0) 0.6 0.2 (0.7) 0.3 (1.6) 0.6 0.94 x1 Segue x (1) 0.96 1.86 0.94 ( 0) 0.7 0.2 (1.6) 0.1 (0.6) 0.7 0.96 d1(1) x1(1) x1( 0) 0.26 0.05 d 2(1) x 2(1) x 2( 0) 0.26 0.05 d 3(1) x3(1) x3( 0) 0.34 0.05 ( 2) x Continuando 0.978 1.98 com 0.966 d ( 2) MAX xi2 xi1 0.12 1i n 0.999 Segue ( 3) x 1.999 0.998 é a solução, pois d (3) MAX xi(3) xi( 2) 0.032 1i n critério de parada Sistemas de Equações Lineares Método de Gauss-Seidel Conhecido x(0) (aproximação inicial) obtém-se x1, x2, ...xk. Ao se calcular k 1 k 1 x1 ,...,x j 1 k k x j 1 ,...,xn x kj 1 usa-se todos os valores que já foram calculados e os valores restantes. Métodos Iterativos – Gauss-Seidel Descrição do Método Seja o seguinte sistema de equações: a11.x1 a12 .x 2 a13 .x 3 ... a1n 1.x n 1 a1n 1.x n b1 a 21.x1 a 22 .x 2 a 23 .x 3 ... a 2n 1.x n 1 a 2n 1.x n b 2 a 31.x1 a 32 .x 2 a 33 .x 3 ... a 3n 1.x n 1 a 3n 1.x n b 3 a n1 .x1 a n 2 .x 2 a n 3 .x 3 ... a n1n 1.x n 1 a nn .x n b n Métodos Iterativos – Gauss-Seidel Isolando xi a partir da linha i, temse: x1 1 b1 a12 .x2 a13 .x3 a1n 1.xn 1 a1n .xn a11 x2 1 b 2 a 21.x1 a 23 .x 3 a 2n 1.x n 1 a 2n .x n a 22 x3 1 b 3 a 31.x 2 a 32 .x 2 a 3n 1.x n 1 a 3n .x n a 33 xn 1 b n a n1.x1 a n2 .x 2 ... a nn 1.x n 1 a nn Métodos Iterativos – Gauss-Seidel O processo iterativo é obtido a partir das equações, fazendo: k 1 1 1 b1 a12 .x 2k a13 .x3k ... a1,n 1 .x nk1 a1n .x nk a11 k 1 2 1 b2 a 21 .x1k 1 a 23 .x3k ... a 2,n 1 .x nk1 a 2 n .x nk a 22 x x x3k 1 1 b3 a31 .x1k 1 a32 .x 2k 1 ... a3,n 1 .x nk1 a3n .x nk a33 x nk 1 1 bn a n1 .x1k 1 a n 2 .x 2k 1 ... a n ,n 1 .x nk11 a nn Métodos Iterativos – Gauss-Seidel Critério de Parada Diferença relativa entre duas iterações consecutivas. Define-se por diferença relativa a expressão: Máx. 1 in 0 M Rk 1 1 xik 1 xik xik 1 se se xik 1 0 se xik 1 xik 1 0 k xi 0 xik 0 Métodos Iterativos – Gauss-Seidel Exemplo: Resolva: 5x y z 5 3x 4 y z 6 3x 3 y 6 z 0 Solução: com 1 5 y z 5 1 y 6 3 x z 4 1 1 z 3 x 3 y z x y 6 2 x M Rk 5.10 2. Métodos Iterativos – Gauss-Seidel M xk xk yk M yk M zk zk M Rk -1 - 0 - 1 - - 0,8 2,25 0,65 1 -0,725 2,379 2,379 1,015 0,212 0,92 0,293 -0,967 0,250 0,293 1,009 0,006 0,985 0,066 -0,997 0,030 0,066 1,002 0,007 0,998 0,0013 -1 0,003 0,0013 x = 1,002 y = 0,998 z = -1 Verificação (substituição no sistema): 5.(1,002) + (0,998) + (-1) = 5,008 5 3.(1,002) + 4.(0,998) + (-1) = 5,998 6 3.(1,002) + 3.(0,998) + 6.(-1) = 0 ok ok ok Método de Gauss-Seidel Critérios de Convergência Processo iterativo a convergência para a solução exata não é garantida para qualquer sistema. Existem certas condições que devem ser satisfeitas por um sistema de equações lineares para se garantir a convergência do método. As condições podem ser determinadas por dois critérios: Critério de Sassenfeld Critério das Linhas. Método de Gauss-Seidel Critério de Sassenfeld Sejam as quantidades i dadas por: 1 n 1 a1 j a11 j 2 e 1 i aii i 1 ( aij j ) j 1 aij j i 1 n para i = 2, 3, ..., n. n - ordem do sistema linear que se deseja resolver aij - são os coeficientes das equações que compõem o sistema. Este critério garante que o método de Gauss-Seidel convergirá para um dado sistema linear se a quantidade M, definida por: M max i 1i n for menor que 1 (M<1). Método de Gauss-Seidel Critério de Sassenfeld Exemplo: Seja A, a matriz dos coeficientes e b o vetor dos termos constantes dados por: 1 1 | a12 | a13 | | a14 a11 a11 a12 a13 a14 b1 1 2 a21 1 a23 a24 a21 a22 a23 a24 b2 a22 a31 a32 a33 a34 b3 1 a41 a42 a43 a44 b4 3 a31 1 a32 2 a34 a33 1 4 a41 1 a42 2 a43 3 a44 Método de Gauss-Seidel Critério de Sassenfeld Exemplo: Mostre que a solução do sistema linear dado pelas equações: 2 x1 x2 0.2 x3 0.2 x4 0.4 0.6 x1 3 x2 0.6 x3 0.3 x4 7.8 0.1 x1 0.2 x2 x3 0.2 x4 1.0 0.4 x1 1.2 x2 0.8 x3 4 x4 10.0 convergirá pelo método de Gauss-Seidel. Método de Gauss-Seidel Critério de Sassenfeld Solução: critério de Sassenfeld calcular os valores das quantidades i. A B 1 1 0.2 0.2 0.7 2.0 1.0 - 0.2 0.2 0.4 2 0.6 3.0 - 0.6 - 0.3 - 7.8 1 2 0.6 0.7 0.6 0.3 0.44 - 0.1 - 0.2 1.0 0.2 1.0 3 0.4 1.2 0.8 4.0 - 10.0 1 3 0.1 0.7 0.2 0.44 0.2 0.358 1 1 4 0.4 0.7 1.2 0.44 0.8 0.358 0.2736 4 M é menor que 1 a solução M i 0.7 desse sistema irá convergir usando 1i 4 o método de Gauss-Seidel. 1 max Método de Gauss-Seidel Critério das Linhas Segundo esse critério, um determinado sistema irá convergir pelo método de Gauss-Seidel, se: n a j 1 j i ij aii , para i=1, 2, 3, ..., n. Método de Gauss-Seidel Critério das Linhas Exemplo: O sistema do exemplo anterior satisfaz o critério das linhas e essa verificação pode ser feita de maneira quase imediata, observando-se que: 2 x1 x2 0.2 x3 0.2 x4 0.4 0.6 x1 3 x2 0.6 x3 0.3 x4 7.8 0.1 x1 0.2 x2 x3 0.2 x4 1.0 0.4 x1 1.2 x2 0.8 x3 4 x4 10.0 a11 2 a12 a13 a14 1 0.2 0.2 1.4 a 22 3 a 21 a 23 a 24 0.6 0.6 0.3 1.5 a33 1 a31 a32 a34 0.1 0.2 0.2 0.5 a 44 4 a 41 a 42 a 43 0.4 1.2 0.8 2.4 n a j 1 j i ij aii para i=1, 2, 3, 4.