Métodos das Diferenças Finitas

Teoria Completa

Introdução

E aí meus jovens, tudo bem? Bom, desde o início do estudo de Resoluções Numéricas de EDO, só que o que vimos até agora foram métodos que nós usávamos para resolver problemas de valores iniciais, com essa carinha aqui:

y ' ' = f x , y , y ' ' y a = α y ' a = β

Basicamente, temos condições de contorno definidas no mesmo ponto, nesse caso, o ponto x = a .

A partir de agora, a conversa muda e o negócio vai ficar animado!

Vamos ver agora um método para resolver problemas desse tipo aqui:

y ' ' = f x , y , y ' ' y a = α y b = β

Nesse caso, as nossas condições de contorno são definidas pontos diferentes, a e b .

Por exemplo:

y ' ' = 3 x y ' - y + x y 0 = 0 y 1 = 0

Chamamos esse tipo de problema de Problema de Valor de Contorno, ou PVC. Vamos descobrir como resolvê los?

Método das Diferenças Finitas

O que queremos com esse método é substituir cada derivada por uma aproximação daquelas que vimos lá no começo desse assunto onde aprendemos a derivar numericamente!

Então se você não ta lembrando muito bem recomendo fortemente que dê uma olhada lá!

Tá ligado que nós temos um objetivo aqui, que é fugir do problema de resolver aquelas “EDO”zonas para um problema de resolver um sistema algébrico.

Com esse método dividimos o intervalo a , b cujos extremos são os pontos das condições de contorno, em n partes iguais de tamanho h . Ou seja:

h = b - a n ⇔ n = b - a h

No final das contas o método vai nos dar uma aproximação do valor de y x para cada x i em que dividimos o intervalo a , b .

Fazendo algumas modificações na série e substituindo x por x i + 1 e brincando um pouco com os números encontramos isso aqui quando queremos uma Diferença finita ascendente, que mostra a derivada primeira de uma função aproximada por:

y i ' ≅ y ( x i + 1 ) - y ( x i ) h

Agora se mudamos x por x i - 1 temos a chamada Diferença finita descendente:

y i ' ≅ y ( x i ) - y ( x i - 1 ) h

Chamamos essas duas de aproximação de primeira ordem, onde o limitante do erro é dado por:

E ≤ h 2 ∙ y ' ' x  

Uma terceira aproximação para y ’ ( x ) pode ser obtida subtraindo-se a expressão para   y ( x i - 1 ) da expressão para y ( x i + 1 ) , ou seja:

Diferença Central:

y i ' ≅ y ( x i + 1 ) - y ( x i - 1 ) 2 h

Essa é uma aproximação de segunda ordem, onde o limitante do erro é dado por

E ≤ h 2 6 ∙ y 3 x  

Já para a derivada segunda y ' ' x usaremos apenas a fórmula da Diferença Central para a Derivada Segunda:

y i ' ' ≅ y i + 1 - 2 y i + y i - 1 h 2

Ela também é uma aproximação de segunda ordem e o limitante do erro é dado por:

E ≤ h 2 12 ∙ f 4 x  

Obs.: Como você deve imagina, quanto maior a ordem de aproximação melhor é o resultado.

Obs².: Se a EDO for linear, o método vai torná-la um sistema linear que pode ser resolvido por Eliminação de Gauss, por exemplo. Se a EDO for não linear, resultará em um sistema não linear que pode ser resolvido por Newton. Nesse tópico nos focaremos apenas nas lineares.

Bugou a cabeça?? Vamos resolver o exemplo lá de cima pra ver como funciona na prática esse método?!

Exemplo

Considere a EDO com passo h = 0,25 :

y ' ' = 3 x y ' - y + x y 0 = 0 y 1 = 0

Vamos calcular o valor de n , o número de intervalos iguais com passo h   :

n = b - a h

Precisamos dos valores de contorno para conseguir o número de intervalos. Nesse caso usaremos as condições iniciais:

y ( 0 ) = 0 ⇒   a = 0

y ( 1 ) = 0 ⇒   b = 1

Então o valor de n será:

n = b - a h = 1 - 0 0,25 = 4

Pronto já sabemos qual o valor de n !

Agora vamos, através da diferença central, obter os valores das derivadas:

y i ' ≅ y ( x i + 1 ) - y ( x i - 1 ) 2 h

y i ' ' ≅ y i + 1 - 2 y i + y i - 1 h 2

Beleza, agora sabemos as derivadas vamos substituir na equação original:

y ' ' = 3 x y ' - y + x

y i + 1 - 2 y i + y i - 1 h 2 = 3 x y ( x i + 1 ) - y ( x i - 1 ) 2 h - y + x

Vamos multiplicar por h 2 em ambos os lados da equação:

y i + 1 - 2 y i + y i - 1 = 3 2 x ( y i + 1 - y i - 1 ) - h ² y i + h ² x i

Agora é só colocar o y em evidência e substituir o valor de h :

( 1 - 0,375 x i ) y i + 1 - 1,9375 y i + ( 1 + 0,375 x i ) y i - 1 = 0,0625 x i

Pronto, Já encontramos a nossa expressão que servirá como base para as continhas que vem pela frente! Já estamos acostumados com muitas continhas em Cálculo Numérico, né?!

Temos quase tudo que precisamos! Vamos montar uma tabela com o que sabemos para conseguir substituir o valores corretamente!

Sabemos que temos n = 4 . Logo, temos 4 intervalos espaçados:

Definidos que os valores de contorno a partir das condições iniciais,

y 0 = 0 ⇒   a = 0           e           y 1 = 0 ⇒   b = 1  

Logo:

Agora vamos utilizar o passo h = 0,25 :

Beleza?!

Vamos agora comparar nossa tabela com a expressão obtida:

( 1 - 0,375 x i ) y i + 1 - 1,9375 y i + ( 1 + 0,375 x i ) y i - 1 = 0,0625 x i

Agora vamos analisar a expressão para cada i :

≫   Se i = 1 ,   temos:

( 1 - 0,375 x 1 ) y 1 + 1 - 1,9375 y 1 + ( 1 + 0,375 x 1 ) y 1 - 1 = 0,0625 x 1

( 1 - 0,375 x 1 ) y 2 - 1,9375 y 1 + ( 1 + 0,375 x 1 ) y 0 = 0,0625 x 1

Sabemos pela tabela que :

y 0 = 0

x 1 = 0,25

Substituindo na equação temos:

( 1 - 0,375 x 1 ) y 2 - 1,9375 y 1 + ( 1 + 0,375 x 1 ) y 0 = 0,0625 x 1

0,90625 y 2 - 1,9375 y 1 = 0,015625 ( I )

≫   Se i = 2   temos:

( 1 - 0,375 x i ) y i + 1 - 1,9375 y i + ( 1 + 0,375 x i ) y i - 1 = 0,0625 x i

( 1 - 0,375 x 2 ) y 2 + 1 - 1,9375 y 2 + ( 1 + 0,375 x 2 ) y 2 - 1 = 0,0625 x 2

( 1 - 0,375 x 2 ) y 3 - 1,9375 y 2 + ( 1 + 0,375 x 2 ) y 1 = 0,0625 x 2

Sabemos pela tabela que :

x 2 = 0,5

Substituindo na equação temos:

0,8125 y 3 - 1,9375 y 2 + 1,1875 y 1 = 0,03125         ( I I )

≫   Realizando o mesmo procedimento para i = 3 , obteremos a equação :

- 1,9375 y 3 + 1,28125 y 2 + 1,1875 y 1 = 0,046875       ( I I I )

Assim, as três equações formam o sistema com três incógnitas:

0,90625 y 2 - 1,9375 y 1 = 0,015625       ( I ) 0,8125 y 3 - 1,9375 y 2 + 1,1875 y 1 = 0,03125       ( I I ) - 1,9375 y 3 + 1,28125 y 2 + 1,1875 y 1 = 0,046875         ( I I I )

Agora é só resolver esse lindo sistema linear! Ahahaha

Resolvendo o sistema obteremos:

y 1 =   - 0,04155

y 2 =   - 0,0716

y 3 =   - 0,0715

Podemos substituir esses valores na tabela que montamos :

Beleza?!

Prontinho, resolvemos nosso problema! Agora vamos praticar nos exercícios! 😊

Expandir

Exercício Resolvido #1

Márcia A. Gomes Ruggiero e Vera Lúcia da Rocha Lopes, Cálculo Numérico – Aspectos Teóricos e Computacionais, 2ª ed. São Paulo: MAKRON Books, 1996, pag 374, exercício 24

Resolva pelo método das diferenças finitas, o PVC:

y ' ' + 2 y ' + y = x y 0 = 2 y 1 = 0

usando h = 0.25

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

Temos o seguinte:

y ' ' + 2 y ' + y = x

E teremos n intervalos de modo que:

n = b - a h = 1 0.25 = 4

Então vai ficar assim:

Beleza, agora vamos substituir as derivadas na nossa EDO:

y ' ' + 2 y ' + y = x

y i + 1 - 2 y i + y i - 1 h 2 + 2 y i + 1 - y i - 1 2 h + y i = x i

Multiplicando os dois lados por h 2 :

y i + 1 - 2 y i + y i - 1 + h y i + 1 - y i - 1 + h 2 y i = h 2 x i

Juntando os termos iguais:

y i + 1 1 + h + y i - 2 + h 2 + y i - 1 1 - h = h 2 x i

1.25 y i + 1 - 1.9375 y i + 0.75 y i - 1 = 0.25 2 x i

i = 1 :

1.25 y 2 - 1.9375 y 1 = - 1.484375

i = 2 :

1.25 y 3 - 1.9375 y 2 + 0.75 y 1 = 0 . 0 3125

i = 3 :

- 1.9375 y 3 + 0.75 y 2 = 0.046875

Então chegamos no sistema:

1.25 y 2 - 1.9375 y 1 = - 1.484375 1.25 y 3 - 1.9375 y 2 + 0.75 y 1 = 0 . 0 3125 - 1.9375 y 3 + 0.75 y 2 = 0.046875

Que passando para a forma matricial fica:

0 1.25 - 1.9375 1.25 - 1.9375 0.75 - 1.9375 0.75 0 y 3 y 2 y 1 = - 1.484375 0 . 0 3125 0.046875

Mais fácil que gravar aquela matriz genérica né?

Passo 2

Agora é só resolvermos o sistema:

0 1.25 - 1.9375 1.25 - 1.9375 0.75 - 1.9375 0.75 0 - 1.484375 0.03125 0.046875 → L 2 ⟷ L 1 1.25 - 1.9375 0.75 0 1.25 - 1.9375 - 1.9375 0.75 0 0.03125 - 1.484375 0.046875 → L 3 ← L 3 + 1.55 L 1 1.25 - 1.9375 0.75 0 1.25 - 1.9375 0 - 2.25313 1.16250 0.03125 - 1.484375 0.09531 → L 3 ← L 3 + 1.80250 L 2 1.25 - 1.9375 0.75 0 1.25 - 1.9375 0 0 - 2.32984 0.03125 - 1.484375 - 2.58027

Fazendo a retrosubstituição chegamos em:

y 1 = 1.10749

y 2 = 0.52911

y 3 = 0.18062

Completando nosso quadrinho:

Resposta

Exercício Resolvido #2

Lista 5 – UNICAMP – Questão 10

Escreva uma desratização com aproximação de segunda ordem para a equação diferencial

y ' ' + t y ' + y = t 2 y 0 = 1 y 1 = 0

Prepare o esquema das equações resultantes que correspondem a tomar h = 0.1

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

Opa, tenho uma boa notícia, não vamos precisar resolver o sistema no final! Ótimo né? Podemos parar nas equações. Show, vamos lá.

Temos o seguinte:

y ' ' + t y ' + y = t 2

E teremos n intervalos de modo que:

n = b - a h = 1 0 . 1 = 10

Então vai ficar assim:

Beleza, agora vamos substituir as derivadas na nossa EDO:

y ' ' + t y ' + y = t 2

y i + 1 - 2 y i + y i - 1 h 2 + t i y i + 1 - y i - 1 2 h + y i = t i 2

Multiplicando os dois lados por h 2 :

y i + 1 - 2 y i + y i - 1 + h 2 t i y i + 1 - y i - 1 + h 2 y i = h 2 t i 2

Juntando os termos iguais:

y i + 1 1 + h 2 t i + y i - 2 + h 2 + y i - 1 1 - h 2 t i = h 2 t i 2

y i + 1 1 + 0.05 t i + y i - 1.99 + y i - 1 1 - 0.05 t i = 0.01 t i 2

i = 1 :

y 2 1 + 0.05 t 1 + y 1 - 1.99 + y 0 1 - 0.05 t 1 = 0.01 t 1 2

1.005 y 2 - 1.99 y 1 = - 0.9949

i = 2 :

y 3 1 + 0.05 t 2 + y 2 - 1.99 + y 1 1 - 0.05 t 2 = 0.01 t 2 2

1.01 y 3 - 1.99 y 2 + 0.99 y 1 = 0.0004

i = 3 :

y 4 1 + 0.05 t 3 + y 3 - 1.99 + y 2 1 - 0.05 t 3 = 0.01 t 3 2

1.015 y 4 - 1.99 y 3 + 0.985 y 2 = 0.0009

i = 4 :

y 5 1 + 0.05 t 4 + y 4 - 1.99 + y 3 1 - 0.05 t 4 = 0.01 t 4 2

1.02 y 5 - 1.99 y 4 + 0.98 y 3 = 0.0016

i = 5 :

y 6 1 + 0.05 t 5 + y 5 - 1.99 + y 4 1 - 0.05 t 5 = 0.01 t 5 2

1.025 y 6 - 1.99 y 5 + 0.975 y 4 = 0.0025

i = 6 :

y 7 1 + 0.05 t 6 + y 6 - 1.99 + y 5 1 - 0.05 t 6 = 0.01 t 6 2

1.03 y 7 - 1.99 y 6 + 0.97 y 5 = 0.0036

i = 7 :

y 8 1 + 0.05 t 7 + y 7 - 1.99 + y 6 1 - 0.05 t 7 = 0.01 t 7 2

1.035 y 8 - 1.99 y 7 + 0.965 y 6 = 0.0049

i = 8 :

y 9 1 + 0.05 t 8 + y 8 - 1.99 + y 7 1 - 0.05 t 8 = 0.01 t 8 2

1.04 y 9 - 1.99 y 8 + 0.96 y 7 = 0.0064

i = 9 :

y 10 1 + 0.05 t 9 + y 9 - 1.99 + y 8 1 - 0.05 t 9 = 0.01 t 9 2

- 1.99 y 9 + 0.955 y 8 = 0.00 81

Passo 2

Ufa, foram todas as equações! Nosso sistema ficaria assim:

- 1.99 1.005 0 0 0 0 0 0 0 0.99 - 1.99 1.01 0 0 0 0 0 0 0 0.985 - 1.99 1.015 0 0 0 0 0 0 0 0.98 - 1.99 1.02 0 0 0 0 0 0 0 0.975 - 1.99 1.025 0 0 0 0 0 0 0 0.97 - 1.99 1.03 0 0 0 0 0 0 0 0.965 - 1.99 1.035 0 0 0 0 0 0 0 0.96 - 1.99 1.04 0 0 0 0 0 0 0 0.955 - 1.99 y 1 y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 = - 0.9949 0.0004 0.0009 0.0016 0.0025 0.0036 0.0049 0.0064 0.0081

Meu amigo, ainda bem que não precisamos calcular isso aí em! haha

Resposta

1.005 y 2 - 1.99 y 1 = - 0.9949 1.01 y 3 - 1.99 y 2 + 0.99 y 1 = 0.0004 1.015 y 4 - 1.99 y 3 + 0.985 y 2 = 0.0009 1.02 y 5 - 1.99 y 4 + 0.98 y 3 = 0.0016 1.025 y 6 - 1.99 y 5 + 0.975 y 4 = 0.0025 1.03 y 7 - 1.99 y 6 + 0.97 y 5 = 0.0036 1.035 y 8 - 1.99 y 7 + 0.965 y 6 = 0.0049 1.04 y 9 - 1.99 y 8 + 0.96 y 7 = 0.0064 - 1.99 y 9 + 0.955 y 8 = 0.0081

Exercício Resolvido #3

Richard L. Burden e J. Douglas Faires, Numerical Analysis, 9ª ed. Brooks/Cole, Cengage Learning, pag 689, exercício 1

O PVC abaixo

y ' ' = 4 y - x ,       0 ≤ x ≤ 1 y 0 = 0 y 1 = 2

tem como solução y = e 2 e 4 - 1 - 1 e 2 x - e - 2 x + x . Use o método das diferenças finitas para aproximar a solução e compare com a solução real para:

a h = 0.5

b h = 0.25

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

a Temos o seguinte:

y ' ' = 4 y - 4 x

E teremos n intervalos de modo que:

n = b - a h = 1 0.5 = 2

Então vai ficar assim:

Beleza, agora vamos substituir as derivadas na nossa EDO:

y ' ' = 4 y - 4 x

y i + 1 - 2 y i + y i - 1 h 2 = 4 y i - 4 x i

Multiplicando os dois lados por h 2 :

y i + 1 - 2 y i + y i - 1 = 4 h 2 y i - 4 h 2 x i

Juntando os termos iguais:

y i + 1 + y i - 2 - 4 h 2 + y i - 1 = - 4 h 2 x i

y i + 1 - 3 y i + y i - 1 = - x i

i = 1 :

y 2 - 3 y 1 + y 0 = - x 1

- 3 y 1 = - y 2 - y 0 - x 1

y 1 = 2.5 3

y 1 = 0.83333

Completando nossa tabela:

Passo 2

Nessa letra o único valor que estimamos foi y 0.5 ≅ 0.83333