Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sistemas lineares - métodos iteratiivos

Sistemas lineares - métodos iteratiivos

Descrevemos os métodos de Gaus-Jacobi, Gaus-Seidel e de relaxação para obtenção de soluções para sistemas lineares.

Paulo Bordoni

July 17, 2013
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. A teoria sobre os métodos iterativos básicos está explicada no

    §3 do cap. 3 do livro texto Cálculo Numérico, aspectos teóricos e computacionais, de Ruggiero e Lopes.
  2. Entretanto, tem apenas interesse didático! O método mais simples de

    todos é o de Gauss-Jacobi. Ele é uma extensão do método do ponto-fixo para sistemas lineares.
  3. = Um sistema linear pode ser escrito na forma matricial.

    Ou ode ser escrito equação por equação.
  4. Separando o termo x 1 da 1ª equação, o x

    2 da 2ª (e assim por diante) e isolando x 1 na 1ª, x 2 na 2ª (e assim por diante), obtemos:
  5. = 11 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ #

    = − e Se D e A# são as matrizes acima, então as equações indicadas pela Mestra ficam: = −1( − #)
  6. +1 = −1( − #) para = 0, 1, 2,

    … , com 0 dado A partir dessa identidade vetorial criamos um método iterativo do tipo ponto-fixo para aproximar a solução x do sistema linear Ax = b. É o método de Gauss-Jacobi.
  7. = 1,2, … , +1 ← 1 . =1 ≠

    , para Na prática, trabalhamos com cada equação separadamente.
  8. Professor, faça um exemplo, por gentileza. Eu me atrapalho bastante

    com somatórios. 50 + 21 + 2 = −1 0 + 31 − 2 = 0 0 − 21 + 42 = 5 Ok Loirinha. Vamos resolver o sistema linear abaixo pelo método de Gauss-Jacobi.
  9. 50 = −1 − 21 − 2 31 = 0

    − 0 + 2 42 = 5 − 0 + 2 1 É tudo muito simples, começamos isolando x 0 na 1ª equação, x 1 na 2ª e x 2 na 3ª. 0 = 1 5 (−1 − 21 − 2 ) 1 = 1 3 (0 − 0 + 2 ) 2 = 1 4 (5 − 0 + 21 )
  10. 0 +1 = 1 5 (−1 − 21 − 2

    ) 1 +1 = 1 3 (0 − 0 + 2 ) 2 +1 = 1 4 (5 − 0 + 21 ) E as equações de iteração ficam:
  11. 0 ← 1 5 (−1 − 21 − 2 )

    1 ← 1 3 (0 − 0 + 2 ) 2 ← 1 4 (5 − 0 + 21 ) Computacionalmente, usamos um vetor y para guardar os novos valores do vetor x. Fazemos isso usando uma função vetorial que recebe o vetor x e devolve o vetor y.
  12. Nos três exemplos a seguir utilizamos um programa que define

    as equações de iteração e chama um dos programas desse módulo. Eu e a Professora criamos o módulo sis_lin_iter para guardar os métodos iterativos que usaremos.
  13. Este é o programa chamador. Ele importa o gauss_jabobi e

    define as equações de iteração.
  14. Muito lento, 54 iterações para um sistema 3x3 As 4

    primeiras e as 4 últimas iterações.
  15. Como eu disse, Surfista, o método de Gauss-Jacobi tem apenas

    interesse didático. Eis o resultado final.
  16. Sim Professor. Ao calcular o novo valor da variável x

    k utilizamos todos os novos valores das variáveis x 0 , x 1 , ..., x k-1 . O método de Gauss-Seidel é uma modificação esperta do método de Gauss-Jacobi.
  17. Ele é praticamente igual ao método de Gauss-Jacobi. Só que,

    ao calcular o novo x 10 , por exemplo, usamos os valores de x 0 , x 1 , ... , x 9 , que acabamos de calcular!
  18. Não entendi! Vocês podem explicar melhor? 50 + 21 +

    2 = −1 0 + 31 − 2 = 0 0 − 21 + 42 = 5 Ok Loirinha. Vou mostrar como fica no mesmo sistema linear que usei para o Gauss-Jacobi
  19. 0 ← 1 5 (−1 − 21 − 2 )

    1 ← 1 3 (0 − 0 + 2 ) 2 ← 1 4 (5 − 0 + 21 ) Veja só como a ideia é simples:
  20. Sim Professor. Vou mostrar a ideia na próxima transparência. O

    método de Gauss-Seidel com fator de relaxação é uma modificação do próprio método de Gauss-Seidel.
  21. Na expressão acima, fator de ponderação é o ω (a

    letra grega ômega minúscula) Para calcular o novo xi usamos uma média ponderada entre os antigos.
  22. u v ω u + (1-ω) v A ideia da

    ponderação. Quando = 1 temos o próprio método de Gauss-Seidel. Quando 0 < < 1 falamos em sub-relaxação e quando > 1 falamos em sobre-relaxação.