Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Métodos Matemáticos 
Diferenças Finitas e Euler de 2ª ordem 
 
 
• Diferença finita de 2ª ordem 
 
Para soluções de EDO de 2ª ordem, precisamos definir diferenças finitas de 2ª ordem. Vamos usar 
as Séries de Taylor novamente, mas ao invés de truncar na derivada de primeira ordem, vamos 
truncar a série na derivada de 2ª ordem. 
 
𝑓(𝑥0 + ℎ)~𝑓(𝑥0) + 𝑓′(𝑥0)ℎ +
𝑓′′(𝑥0)
2
ℎ2 
 
𝑓(𝑥0 − ℎ)~𝑓(𝑥0) − 𝑓′(𝑥0)ℎ +
𝑓′′(𝑥0)
2
ℎ2 
 
Somando: 
 
𝑓(𝑥0 + ℎ) + 𝑓(𝑥0 − ℎ)~2𝑓(𝑥0) + 𝑓′′(𝑥0)ℎ2 
 
 
𝑓′′(𝑥0)~
𝑓(𝑥0 + ℎ) − 2𝑓(𝑥0) + 𝑓(𝑥0 − ℎ)
ℎ2
 
 
Código: 
 
𝑦′′~
𝑦𝑖+1 − 2𝑦𝑖 + 𝑦𝑖−1
ℎ2
 
 
Exemplo: Resolver o PVI 
 
{
𝑦′′ + 3𝑦′ + 2𝑦 = cos 𝑡
𝑦(0) = 0; 𝑦′(0) = −6 10⁄
 
 
𝑦(𝑡) = −
11
10
𝑒−𝑡 + 𝑒−2𝑡 +
1
10
cos 𝑡 +
3
10
sin 𝑡 
 
Podermos usar 3 tipos diferentes de diferenças finitas para substituir 𝑦′. Vamos resolver de duas 
formas diferentes: 
 
(i) Utilizando diferença progressiva para 𝑦′: 
 
𝑦′′ + 3𝑦′ + 2𝑦 = cos 𝑡 
 
𝑦𝑖+1 − 2𝑦𝑖 + 𝑦𝑖−1
ℎ2
+ 3 (
𝑦𝑖+1 − 𝑦𝑖
ℎ
) + 2𝑦𝑖 = cos 𝑡𝑖 
 
𝑦𝑖+1 =
ℎ2 cos 𝑡𝑖 − 𝑦𝑖(2ℎ2 − 3ℎ − 2) − 𝑦𝑖−1
1 + 3ℎ
 
 
Para a implementação do programa teremos um problema. A segunda condição inicial é dada na 
forma diferencial (𝑦′(0) = −6 10⁄ ). Para contornar essa situação, uma estratégia é usar diferença 
progressiva para estimar o valor de 𝑦(2). 
 
Suponha que as condições iniciais sejam dadas de forma genérica: 
 
{
𝑦(𝑡0) = 𝑎
𝑦′(𝑡0) = 𝑏
 
 
No programa, devemos fazer: 
 
𝑦(1) = 𝑎 
 
𝑏 = 𝑦′ =
𝑦(2) − 𝑦(1)
ℎ
 ⇒ 𝑦(2) = 𝑦(1) + 𝑏ℎ 
 
Matlab 
 
f = @(t) -11*exp(-t)/10 + exp(-2*t) + cos(t)/10 + 3*sin(t)/10; 
 
a = 0; 
b = -6/10; 
 
y(1) = a; 
t(1) = 0; 
 
h = 0.1; 
 
y(2) = y(1) + b*h; % Dif. Prog. 
t(2) = t(1) + h; 
 
for i=2:80 % 8 segundos 
 y(i + 1) = (h^2*cos(t(i)) - y(i)*(2*h^2 - 3*h - 2) - y(i - 1))/(1 + 3*h); 
 t(i + 1) = t(i) + h; 
end 
 
plot(t,y,'*r') 
hold on 
plot(t,f(t),'b') 
title('Dif. Finitas - 2a Ordem - PROGRESSIVA') 
 
 
Note que o resultado inicial não é muito bom. Podemos ter um resultado alternativo utilizando 
diferença centrada ao invés da progressiva. 
 
(ii) Utilizando diferença centrada para 𝑦′: 
 
𝑦′′ + 3𝑦′ + 2𝑦 = cos 𝑡 
 
𝑦𝑖+1 − 2𝑦𝑖 + 𝑦𝑖−1
ℎ2
+ 3 (
𝑦𝑖+1 − 𝑦𝑖−1
2ℎ
) + 2𝑦𝑖 = cos 𝑡𝑖 
 
𝑦𝑖+1 =
ℎ2 cos 𝑡𝑖 − 𝑦𝑖(2ℎ2 − 2) − 𝑦𝑖−1(1 − 1,5ℎ)
1 + 1,5ℎ
 
 
Matlab 
 
f = @(t) -11*exp(-t)/10 + exp(-2*t) + cos(t)/10 + 3*sin(t)/10; 
 
a = 0; 
b = -6/10; 
 
y(1) = a; 
t(1) = 0; 
 
h = 0.1; 
 
y(2) = y(1) + b*h; % Dif. Prog. 
t(2) = t(1) + h; 
 
for i=2:80 % 8 segundos 
 y(i + 1) = (h^2*cos(t(i)) - y(i)*(2*h^2 - 2) - y(i - 1)*(1 - 1.5*h))/(1 + 1.5*h); 
 t(i + 1) = t(i) + h; 
end 
 
plot(t,y,'*r') 
hold on 
plot(t,f(t),'b') 
title('Dif. Finitas - 2a Ordem - CENTRADA') 
 
 
 
• Euler de 2ª ordem 
 
 
Exemplo: Resolver o PVI 
 
{
𝑦′′ + 3𝑦′ + 2𝑦 = cos 𝑡
𝑦(0) = 0; 𝑦′(0) = −6 10⁄
 
 
𝑦(𝑡) = −
11
10
𝑒−𝑡 + 𝑒−2𝑡 +
1
10
cos 𝑡 +
3
10
sin 𝑡 
 
Estratégia: 2 EDOs de 1ª ordem nas variáveis 𝑦 (original) e 𝑧 (variável nova) 
 
Mudança de variável: 
 
{
𝑦′ = 𝑧
𝑧′ = 𝑦′′ 
 
EDO Função 𝒇(𝒕, 𝒚, 𝒛) Código 
𝑦′ = 𝑧 𝑓1(𝑡, 𝑦, 𝑧) = 𝑧 𝑦𝑛+1 = 𝑦𝑛 + 𝑓1(𝑡, 𝑦, 𝑧)ℎ 
𝑧′ = 𝑦′′ = cos 𝑡 − 2𝑦 − 3𝑧 𝑓2(𝑡, 𝑦, 𝑧) = cos 𝑡 − 2𝑦 − 3𝑧 𝑧𝑛+1 = 𝑧𝑛 + 𝑓2(𝑡, 𝑦, 𝑧)ℎ 
 
 
Matlab 
 
% Condições iniciais nas variáveis y e z 
y(1) = 0; 
z(1) = -6/10; % -6/10 = y'(1) = z(1) 
 
t(1) = 0; 
h = 0.1; 
 
f1 = @(t,y,z) z; 
f2 = @(t,y,z) cos(t) - 2*y - 3*z; 
 
for i=1:50 
 y(i + 1) = y(i) + f1(t(i),y(i),z(i))*h; 
 z(i + 1) = z(i) + f2(t(i),y(i),z(i))*h; 
 t(i + 1) = t(i) + h; 
end 
 
plot(t,y,'*r') 
hold on 
 
ya = @(t) -11*exp(-t)/10 + exp(-2*t) + cos(t)/10 + 3*sin(t)/10; 
plot(t,ya(t),'b') 
 
 
Exercício (1,0 ponto na P3. Entrega na data da P3): Considere o PVI 
 
{
𝑦′′ + 2𝑦′ + 𝑦 = sin 𝑡
𝑦(0) = 2; 𝑦′(0) = −1
 
 
𝑦(𝑡) =
(7𝑡 + 5)𝑒−𝑡 − cos 𝑡
2
 
 
(a) Plote em uma mesma janela a solução analítica e a solução numérica pelo método de Euler 
 
(b) Plote em uma nova janela, a solução analítica e a solução numérica pelo método das diferenças 
finitas, utilizando a diferença centrada.

Mais conteúdos dessa disciplina