Eliminação gaussiana e retro-substituição

De Física Computacional
Revisão de 17h37min de 19 de setembro de 2011 por Tekkito (discussão | contribs) (Criou página com 'Em diversos problemas da fisica, como na interpolação por Spline cúbicos, resolução de equações diferenciais, etc, envolvem equações do tipo <math> b^-_i\phi_{i-1} ...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Em diversos problemas da fisica, como na interpolação por Spline cúbicos, resolução de equações diferenciais, etc, envolvem equações do tipo

biϕi1+bi0ϕi+bi+ϕi+1=fi.(1)

ou na forma matricial

𝐛ϕ=𝐟.

A matriz 𝐛 e o vetor 𝐟 são dados do problema e ϕ representa a solução procurada. A primeira vista, trata-se de um problema simples, bastanto calcular 𝐛1 para se obter:

ϕ=𝐛𝟏𝐟.

Contudo, alguns aspectos devem ser levados em consideração. Em primeiro lugar, do ponto de vista numérico, a inversão de matrizes é um problema sutil e muito oneroso do ponto de vista computacional (veja Numerical Recipes, por exemplo). Por isto, é fortemente recomendável que se procure algoritmos numéricos bem estabelecidos para a realização da tarefa. Tendo em vista que tais algoritmos estão implementados e testados há várias décadas, isto leva a crer que não há dificuldades na resolução do problema. Entretanto, o custo em tempo é algo não desprezível e pode comprometer seriamente um estudo no qual esta equação tenha que ser resolvida muitas vezes. Por exemplo, se os coeficientes bi, bi0 e bi+, e/ou fi variam com o tempo, a matriz 𝐛 deve ser invertida a cada passo da evolução.


Entretanto, nos casos em que o sistema de equações envolve apenas os termos em ϕi1, ϕi e ϕi+1, a matriz 𝐛 é tri-diagonal, isto é, apenas os elementos de suas 3 diagonais principais são não-nulos. Neste caso, a soulção do problema é bastante segura, simples e eficiente do ponto de vista numérico.


De fato, o sistema de equações acima sugere que a solução pode ser escrita da seguinte forma:

ϕi+1=αiϕi+βi(2)

onde αi e βi devem ser determinados a partir do sistema de equações. Substituindo a expressão acima na Eq. (1), temos:

biϕi1+(bi+1+αi+bi0)ϕi=fibi+βi

o que leva a

ϕi=γibiϕi1+γi(bi+βifi),(3)

onde

γi1bi+αi+bi0.(4)

Reescrevendo a Eq. (2) como

ϕi=αi1ϕi1+βi1

podemos comparar esta expressão com a Eq. (3), o que nos leva, finalmente, a

αi1=γibi(5)

e

βi1=γi(bi+βifi).(6)


As equações (2) e (4-6) mostram que a solução do problema é bastante simples. Dado o valor de ϕN=q, temos αN1=0 e βN1=q. Uma vez obtidas estas quantidades, calculamos αi e βi, por meio das equações (4-6), de i=N1 até i=2. Após isto, ϕi+1 pode ser obtido por meio da equação (2), partindo de i=1 até i=N2.


É importante notar que a solução do problema só é possível se forem fornecidos os valores de ϕ1 e ϕN. A especificação destes valores está associada às condições de contorno, que são determinadas pela física do problema. Na realidade, também é comum se encontrar problemas onde os valores das derivadas são fixados em uma ou ambas das bordas. Se ϕ'1=σ1 ou ϕ'N=σ2 forem impostos, temos:

ϕ'1=ϕ2ϕ1X2X1=σ1

e

ϕ'N=ϕNϕN1XNXN1=σ2

o que leva a

ϕ2=ϕ1+σ1(X2X1)

e

ϕN=ϕN1+σ2(XNXN1).

Usando a equação (2), encontramos:

αN1=1 e βN1=σ2(XNXN1)

e

ϕ1=β1σ1(X2X1)1α1.

A partir destes resultados, as relações de recorrência podem ser aplicadas.



Voltar para o índice de Métodos computacionais.