Você está na página 1de 24

Cálculo Numérico

Prof. Aparecido J. de Souza


aparecidosouza@ci.ufpb.br

Problemas de Valor de Contorno para EDO de 2a Ordem


O Método das Diferenças Finitas
Problema de Contorno para EDO de 2a Ordem

′′ ′ com x ∈ (a, b), EDO
y = f (x, y , y ),


(PVC) c1 y (a) + c2 y (a) = c3 , CC-1

 ′
d1 y (b) + d2 y (b) = d3 , CC-2
em que c1 , c2 , d1 , d2 , c3 e d3 são constantes reais dadas, com
c12 + c22 ̸= 0 e d12 + d22 ̸= 0.

Ideia do método das diferenças finitas: Transformar o (PVC)


num sistema de equações algébricas usando fórmulas de
diferenças finitas para aproximar as derivadas que aparecem
na EDO.

Malha:
N (número de subintervalos),
b−a
h= N (comprimento do passo),
a = x0 , x1 = x0 + h, x2 = x0 + 2h, . . . , xN = x0 + Nh = b (nós).
Fórmula de Diferença Progressiva para y′ (xi )
Tome a aproximação linear de Taylor para y (x) em torno de xi .
′′
y (x) = y (xi ) + y ′ (xi )(x − xi ) + y 2(ξi ) (x − xi )2 , ξi entre x e xi .
Trocando x = xi+1 = xi + h e xi+1 − xi por h, obtemos que
′′
y (xi+1 ) = y (xi ) + y ′ (xi )h + y 2(ξi ) h2 , ξi entre xi+1 e xi .
y (xi+1 )−y (xi )
Daí, y ′ (xi ) = h − h2 y ′′ (ξi ), ξi entre xi+1 e xi .
Trocando y (xi+1 ) por yi+1 e y (xi ) por yi obtemos a fórmula :
yi+1 −yi
y′ (xi ) ≈ h .

Erro Local de Truncamento. Supondo que exista M > 0 tal


que |y ′′ (x)| ≤ M, ∀x ∈ [a, b], então |y ′′ (ξi )| ≤ M e assim
y (x )−y (xi )
|ELT(xi )| = |y ′ (xi ) − i+1 h | = | h2 y ′′ (ξi )|≤ M
2 |h|.

Trocando h por −h temos a fórmula por diferença regressiva:


y −y
y′ (xi ) ≈ i h i−1 .
Ambas aproximações de y ′ (xi ) são O(h).
Fórmula de Diferença Centrada para y′ (xi )
Considere as aproximações quadráticas
′′ (x ) ′′′
y (xi+1 ) = y (xi ) + hy ′ (xi ) + h2 y 2! i
+ h3 y 3!(ξi ) ,
com ξi entre xi e xi+1 (progressiva).
′′ ′′′ (η
y (xi−1 ) = y (xi ) − hy ′ (xi ) + h2 y 2!
(xi )
− h3 y 3!
i)
,
com ηi entre xi e xi−1 (regressiva).

Subtraindo a segunda da primeira equação acima, obtemos


3
y (xi+1 ) − y (xi−1 ) = 2hy ′ (xi ) + h6 [y ′′′ (ξi ) + y ′′′ (ηi )].
yi+1 −yi−1
Daí, segue a fórmula y′ (xi ) ≈ 2h .

Erro Local de Truncamento. Se existir M > 0 tal que


|y ′′′ (x)| ≤ M, ∀x ∈ [a, b], então |y ′′′ (ξi )| ≤ M e assim
y (x )−y (x ) h2
|ELT(xi )| = |y ′ (xi ) − i+1 2h i−1 | = | 12 [y ′′′ (ξi ) + y ′′′ (ηi )] |
M 2
≤ 6h .
Esta aproximação de y ′ (xi ) por diferença centrada é O(h2 ).
Fórmula de Diferença Centrada para y′′ (xi )
Considere as aproximações cúbicas
′′ (x ) ′′′ (iv )
y (xi+1 ) = y (xi ) + hy ′ (xi ) + h2 y 2! i
+ h3 y 3!(xi ) + h4 y 4!(ξi ) ,
com ξi entre xi e xi+1 (progressiva),
′′ ′′′ (x ) (iv ) (η )
y (xi−1 ) = y (xi ) − hy ′ (xi ) + h2 y 2!
(xi )
− h3 y 3!
i
+ h4 y 4!
i
,
com ηi entre xi e xi−1 (regressiva).
Somando a segunda e a primeira equações acima, obtemos
4 
y (xi+1 ) + y (xi−1 ) = 2y (xi ) + h2 y ′′ (xi ) + h4! y (iv ) (ξi ) + y (iv ) (ηi ) .


yi−1 −2yi +yi+1


Daí, segue a fórmula y′′ (xi ) ≈ h2
.

Erro Local de Truncamento. Supondo existir M ≥ 0 tal que


|y (iv ) (x) ≤ M, ∀x ∈ [a, b]:
y (x )−2y (xi )+y (xi+1 )
|ELT(xi )| = |y ′′ (xi ) − i−1 h2
|=
h2 M 2
| 24 y (ξi ) + y (iv ) (ηi ) | ≤ 12
 (iv ) 
h .

A aproximação de y ′′ (xi ) por diferença centrada é O(h2 ).


Fórmulas de Diferenças Finitas
para a Derivada de 1a Ordem
yi+1 −yi
• Diferença avançada ou progressiva: y ′ (xi ) ≈ h , O(h);
yi −yi−1
• Diferença atrasada ou regressiva: y ′ (xi ) ≈ h , O(h);
yi+1 −yi−1
• Diferença centrada: y ′ (xi ) ≈ 2h , O(h2 ).

Fórmulas de Diferenças Finitas


para a Derivada de 2a Ordem
yi −2yi+1 +yi+2
• Diferença progressiva: y ′′ (xi ) ≈ , O(h);
2h2
yi −2yi−1 +yi−2
• Diferença regressiva: y ′′ (xi ) ≈ , O(h);
2h2
yi−1 −2yi +yi+1
• Diferença centrada: y ′′ (xi ) ≈ , O(h2 ).
h2
Método de Diferenças Finitas para o PVC

′′ ′ com x ∈ (a, b), EDO
y = f (x, y , y ),


(PVC) c1 y (a) + c2 y (a) = c3 , CC-1

 ′
d1 y (b) + d2 y (b) = d3 , CC-2
em que c1 , c2 , d1 , d2 , c3 e d3 são constantes reais dadas, com
c12 + c22 ̸= 0 e d12 + d22 ̸= 0.

Discretização da Equação no interior da malha.


Primeiro escolhe os tipos de diferenças para y ′ e para y ′′ .
Em seguida substitui x por xi = x0 + ih, y (xi ) por yi e tanto
y ′ (xi ) como y ′′ (xi ) pelas fórmulas de diferenças escolhidas.
Por exemplo escolhendo diferenças centradas para y ′ e para
y ′′ , ao variar i = 1 até i = N − 1 temos a discretização nos
pontos x1 , x2 , . . . , xN−1 do interior da malha obtendo o sistema
algébrico com (N − 1) equações e (N + 1) incógnitas:
yi−1 − 2yi + yi+1 yi+1 − yi−1
= f (xi , yi , ), i = 1, 2, · · · , (N − 1) .
h2 2h
Método de Diferenças Finitas para o PVC
Discretização
( das Condições de Contorno:

c1 y (x0 ) + c2 y (x0 ) = c3 , CC-1

d1 y (xN ) + d2 y (xN ) = d3 , CC-2
Diferença progressiva em x0 : y ′ (x0 ) ≈ y1 −y
h .
0

Diferença regressiva em xN : y ′ (xN ) ≈ yN −yh N−1 .


Substituindo
( nas condições de contorno, obtemos
y1 −y0
c1 y0 + c2 h = c3
Multiplicando cada equação por h e
d1 yN + d2 yN −yh N−1 = d3 .
agrupando os termos comuns, obtemos:
(
(c1 h − c2 )y0 + c2 y1 = hc3
−d2 yN−1 + (d1 h + d2 )yN = hd3 .
Juntando estas duas equações com as (N − 1) equações
obtidas da discretização da EDO no interior da malha fechamos
um sistema algébrico de (N + 1) equações e (N + 1) incógnitas.
O Método de Diferenças Finitas para o PVC
Exemplo 1 (Equação linear com coeficientes constantes).
(
y ′′ (x) + 2y ′ (x) + y (x) = x
y (0) = 1, y (1) = −1 .
Discretização da EDO no interior da malha. Considere
diferenças centradas para y ′ e para y ′′ .
yi+1 −yi−1
Substituindo x por xi = ih, y (xi ) por yi , y ′ (xi ) por 2h e
y −2y +y
y ′′ (xi ) por i−1 h2i i+1 na EDO obtemos:
yi−1 −2yi +yi+1 y −y
h2
+ 2 i+12h i−1 + yi = ih, i = 1, 2, . . . , N − 1.
Multiplicando por h2 e agrupando os termos comuns
(1 − h)yi−1 + (h2 − 2)yi + (1 + h)yi+1 = ih3 , i = 1, 2, . . . , N − 1.
Discretização das Condições de Contorno:
y0 = 1, yN = −1.
Juntando com as outras (N − 1) equações chegamos ao
sistema (N + 1) × (N + 1) nas incógnitas y0 , y1 , . . . , yN−1 , yN .
O Método de Diferenças Finitas para o PVC
(
y ′′ (x) + 2y ′ (x) + y (x) = x
Exemplo 1. (PVC)
y (0) = 1, y (1) = −1 .
Sistema algébrico linear (N + 1) × (N + 1) tridiagonal:

y0 = 1

(1 − h)yi−1 + (h2 − 2)yi + (1 + h)yi+1 = ih3 , i = 1, 2, . . . , N − 1

yN = −1.

Por exemplo, escolhendo o passo h = 1/4 (ou N = 4) o


sistema algébrico linear 5 × 5 fica:


 y0 = 1

3 1 5 1
 4 y0 + ( 16 − 2)y1 + 4 y2 = 64 , (i = 1)



3 1 5 2
 4 y1 + ( 16 − 2)y2 + 4 y3 = 64 , (i = 2)
3 1 5 3
4 y2 + ( 16 − 2)y3 + 4 y4 = 64 , (i = 3)





y4 = −1.

O Método de Diferenças Finitas para o PVC
(
y ′′ (x) + 2y ′ (x) + y (x) = x
Exemplo 1. (PVC)
y (0) = 1, y (1) = −1 .

 PVC foi transformado no sistema algébrico 5 × 5


O
y0 = 1


 34 y0 + ( 16
1
− 2)y1 + 54 y2 = 64
1
,



3 1 5 2
 4 y1 + ( 16 − 2)y2 + 4 y3 = 64 ,
3 1 5 3
 4 y2 + ( 16 − 2)y3 + 4 y4 = 64 ,




y4 = −1.

Substituindo y0 = 1 e y4 = −1 nas demais equações resta o


sistema 3 × 3:

1 5 1 3
( 16 − 2)y1 + 4 y2 = 64 − 4 ,

3 1 5 2
 4 y1 + ( 16 − 2)y2 + 4 y3 = 64 ,
3 1 3 5
4 y2 + ( 16 − 2)y3 = 64 + 4 .
O Método de Diferenças Finitas para o PVC
Portanto, considerando o passo h = 1/4, a solução do
Problema de Valores de Contorno do Exemplo 1.
(
y ′′ (x) + 2y ′ (x) + y (x) = x
y (0) = 1, y (1) = −1 .
é aproximada pela solução do sistema algébrico linear
tridiagonal 3 × 3:
    
−1.9375 1.25 0 y1 −0.7344
 0.75 −1.9375 1.25  y2  =  0.0313  .
0 0.75 −1.9375 y3 1.2969
| {z } | {z } | {z }
A y b

Resolvendo este sistema, por exemplo pelo WolframAlpha,


obtemos y1 = −0.0093, y2 = −0.6018, y3 = −0.9024.
Gráfico da solução do Exemplo 1
N = 4, h = 0.25.
Gráfico da solução do Exemplo 1
N = 20, h = 0.05.
O Método de Diferenças Finitas para o PVC
Exemplo 2 (equação linear com coeficientes variáveis e
condições de contorno não homogêneas).
(
y ′′ (x) + xy ′ (x) + x 2 y (x) = ex
y (0) + 2y ′ (0) = 1, y (1) − y ′ (1) = 2 .

Discretização da EDO no interior da malha considerando


diferenças centradas para y ′ e para y ′′ .
yi+1 −yi−1
Substituindo x por xi = ih, y (xi ) por yi , y ′ (xi ) por 2h e
y −2y +y
y ′′ (xi ) por i−1 h2i i+1 na EDO obtemos:
yi−1 −2yi +yi+1 y −y
h2
+ ih i+12h i−1 + (ih)2 yi = eih , i = 1, 2, . . . N − 1.
Multiplicando por h2 e agrupando os termos comuns
2 2
(1 − ih2 )yi−1 + (i2 h4 − 2)yi + (1 + ih2 )yi+1 = h2 eih , i = 1, 2, . . . N − 1.
O Método de Diferenças Finitas para o PVC
Discretização das Condições de Contorno:
y (0) + 2y ′ (0) = 1, y (1) − y ′ (1) = 2 .
No contorno esquerdo usa-se diferenças progressivas para
aproximar y ′ (0).
y0 + 2 y1 −y
h
0
= 1.
Multiplicando por h e agrupando os termos comuns obtemos:
(h − 2)y0 + 2y1 = h.
No contorno direito usa-se diferenças regressivas para
aproximar y ′ (1).
yN − ( yN −y
h
N−1
) = 2.
Multiplicando por h e agrupando os termos comuns obtemos:
yN−1 + (h − 1)yN = 2h.
O Método de Diferenças Finitas para o PVC
Sistema
 algébrico linear tridiagonal (N + 1) × (N + 1).
(h − 2)y0 + 2y1 = h

2 2
(1 − ih2 )yi−1 + (i2 h4 − 2)yi + (1 + ih2 )yi+1 = h2 eih , i = 1, 2, . . . N − 1

yN−1 + (h − 1)yN = 2h

Tomando
 h = 1/4 = 0.25 (N = 4):

 −1.75y0 + 2y1 = 0.25

0.9687y0 − 1.9961y1 + 1.0312y2 = 0.0803



0.9375y1 − 1.9844y2 + 1.0625y3 = 0.1030

0.9062y2 − 1.9649y3 + 1.0938y4 = 0.1323





y3 − 0.75y4 = 0.5

Solução (pelo WolframAlpha):


y0 = 2.4028, y1 = 2.2275, y2 = 2.1340, y3 = 2.1172,
y4 = 2.1563.
Gráfico da solução do Exemplo 2
N = 4, h = 0.25.
Gráfico da solução do Exemplo 2
N = 20, h = 0.05.
O Método de Diferenças Finitas para o PVC
EDO não linear: y ′′ = f (x, y , y ′ ).
Mesmo procedimento do caso linear, só que agora obtem-se
um sistema algébrico Não Linear (N + 1) × (N + 1).
(
y ′′ = ysen(y ) + xy
Exemplo 3.
y (0) = 1, y (1) = 5 .
Discretização da EDO no interior da malha por diferenças
centradas:
yi−1 −2yi +yi+1
h2
= yi sen(yi ) + xi yi , i = 1, 2, · · · (N − 1).
Multiplicando por h2 e juntando os termos obtemos:
yi−1 − 2 + h2 (sen(yi ) + xi ) yi + yi+1 = 0, i = 1, 2, · · · (N − 1).
 

Discretização das Condições de contorno:


y0 = 1,
yN = 5.
O Método de Diferenças Finitas para o PVC
(
y ′′ = ysen(y ) + xy
PVC não linear. Exemplo 3.
y (0) = 1, y (1) = 5 .
yi−1 − 2 + h2 (sen(yi ) + xi ) yi + yi+1 = 0, i = 1, . . . , N − 1
 

Condições de contorno: y0 = 1, yN = 5.
Expandindo
 o sistema, obtemos:


y0 = 1,
2 (sen(y ) + x ) y + y = 0 (i = 1)
  



y 0 − 2 + h 1 1 1 2
2
  
y1 − 2 + h (sen(y2 ) + x2 ) y2 + y3 = 0 (i = 2)



..
 .
2
  



yN−3 − 2 + h (sen(yN−2 ) + xN−2 ) yN−2 + yN−1 = 0 (i = N − 2)
2
  
N−2 − 2 + h (sen(yN−1 ) + xN−1 ) yN−1 + yN = 0 (i = N − 1)
y




y = 5;
N
O Método de Diferenças Finitas para o PVC



y0 = 1,
y0 − 2 + h2 (sen(y1 ) + x1 ) y1 + y2 = 0

  


2
  
y1 − 2 + h (sen(y2 ) + x2 ) y2 + y3 = 0



..
 .
2
  



yN−3 − 2 + h (sen(yN−2 ) + xN−2 ) yN−2 + yN−1 = 0
yN−2 − 2 + h2 (sen(yN−1 ) + xN−1 ) yN−1 + yN = 0

  




y = 5,
N

Escolhendo o passo h = 1/3 (ou N = 3) o sistema algébrico


não linear fica:



 y0 = 1
y − 2 + 1 (sen(y ) + 1 ) y + y = 0

0 9 1 3  1 2
1 2



 y1 − 2 + 9 (sen(y2 ) + 3 ) y 2 + y 3=0

y = 5
3
O Método de Diferenças Finitas para o PVC



y0 = 1
y − 2 + 1 (sen(y ) + 1 ) y + y = 0

0 9 1 3  1 2
1 2



y1 − 2 + 9 (sen(y2 ) + 3 ) y2 + y3 = 0

y = 5
3

Sistema
( Algébrico Não-Linear
F1 (y1 , y2 ) = 2 + 19 (sen(y1 ) + 13 ) y1 − y2 − 1 = 0
 

F2 (y1 , y2 ) = y1 − 2 + 19 (sen(y2 ) + 23 ) y2 + 5 = 0
 

(0)
Três iterações do método de Newton com y1 = 7/3 ≈ 2.3 e
(0)
y2 = 11/3 ≈ 3.66 fornece:

y1 = 2.1050, y2 = 3.4894 .

Portanto, y(0) = 1, y(1/3) ≈ 2.1050, y(2/3) ≈ 3.4894, y(1) = 5.


Gráfico da solução do Exemplo 3
N = 3, h = 1/3.

Você também pode gostar