Prévia do material em texto
126 Cálculo Numérico da iteração. Construídos a matriz T e o vetor c, o método iterativo consiste em computar a iteração: x(k+1) = Tx(k) + c, n ≥ 1, (4.214) onde x(1) é uma aproximação inicial dada. A fim de construirmos as matrizes e os vetores de iteração do método de Jacobi e de Gauss-Seidel, decompomos a matriz A da seguinte forma: A = L+D + U, (4.215) onde D é a matriz diagonal D = diag (a11, a22, . . . , ann), isto é: D := a11 0 0 · · · 0 0 a22 0 · · · 0 0 0 a33 · · · 0 ... ... ... . . . ... 0 0 0 · · · ann , (4.216) e, respectivamente, L e U são as seguintes matrizes triangular inferior e superior: L := 0 0 0 · · · 0 a21 0 0 · · · 0 a31 a32 0 · · · 0 ... ... ... . . . ... an1 an2 an3 · · · 0 , U := 0 a12 a13 · · · a1n 0 0 a23 · · · a2n 0 0 0 · · · a3n ... ... ... . . . ... 0 0 0 · · · 0 . (4.217) Exemplo 4.7.4. Considere o seguinte sistema linear: 3x1 + x2 − x3 = 2 (4.218) −x1 − 4x2 + x3 = −10 (4.219) x1 − 2x2 − 5x3 = 10 (4.220) Escreva o sistema na sua forma matricial Ax = b identificando a matriz dos coefi- cientes A, o vetor incógnita x e o vetor dos termos constantes b. Em seguida, faça a decomposição A = L+D + U . Solução. A forma matricial deste sistema é Ax = b, onde: A = 3 1 −1 −1 −4 1 1 −2 −5 , x = x1 x2 x3 e b = 2 −10 10 . (4.221) Licença CC-BY-SA-3.0. Contato: reamat@ufrgs.br https://creativecommons.org/licenses/by-sa/3.0/ reamat@ufrgs.br 4.7. MÉTODOS ITERATIVOS PARA SISTEMAS LINEARES 127 A decomposição da matriz A nas matrizes L triangular inferior, D diagonal e U triangular superior é: 3 1 −1 −1 −4 1 1 −2 −5 ︸ ︷︷ ︸ A = 0 0 0 −1 0 0 1 −2 0 ︸ ︷︷ ︸ L + 3 0 0 0 −4 0 0 0 −5 ︸ ︷︷ ︸ D + 0 1 −1 0 0 1 0 0 0 ︸ ︷︷ ︸ U . (4.222) Em Python, podemos construir as matrizes L, D e U , da seguinte forma: >>> A = np.array([[3,1,-1], ... [-1,-4,1], ... [1,-2,5]], ... dtype='double') >>> D = np.diag(np.diag(A)) >>> L = np.tril(A)-D >>> U=np.triu(A)-D ♦ Iteração de Jacobi Vamos, agora, usar a decomposição discutida acima para construir a matriz de iteração TJ e o vetor de iteração cJ associado ao método de Jacobi. Neste caso, temos: Ax = b ⇔ (L+D + U)x = b (4.223) ⇔ Dx = −(L+ U)x+ b (4.224) ⇔ x = −D−1(L+ U)︸ ︷︷ ︸ =:TJ x+D−1b︸ ︷︷ ︸ =:cJ . (4.225) Ou seja, a iteração do método de Jacobi escrita na forma matricial é: x(k+1) = TJx (k) + cJ , k ≥ 1, (4.226) com x(1) uma aproximação inicial dada, sendo TJ := −D−1(L + U) a matriz de iteração e cJ = D−1b o vetor da iteração. Exemplo 4.7.5. Construa a matriz de iteração TJ e o vetor de iteração cJ do método de Jacobi para o sistema dado no Exemplo 4.7.4. Licença CC-BY-SA-3.0. Contato: reamat@ufrgs.br https://creativecommons.org/licenses/by-sa/3.0/ reamat@ufrgs.br