Buscar

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

Mais conteúdos dessa disciplina