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

Métodos iterativos para resolução de sistemas l...

Paulo Bordoni
November 13, 2013

Métodos iterativos para resolução de sistemas lineares

Sem comentários

Paulo Bordoni

November 13, 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

    cap. 7 do livro texto Análise Numérica de Burden & Faires.
  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.