Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Caderno 16

Introdução à solução numérica de EDOs

Equações diferenciais ordinárias (EDOs) surgem em diversos problemas aplicados. Alguns exemplos:

  • Química: decréscimo radioativo de carbono 14;

  • Engenharia: queda da pressão atmosférica;

  • Economia: precificação de ativos financeiros.

Nem sempre é possível obter soluções analíticas (forma fechada) para EDOs. Então, precisamos obter soluções aproximadas por meio de métodos numéricos.

No passado, muito esforço era empregado para se desenvolver métodos computacionais ótimos, mas a insuficiência de poder computacional era um entrave. Hoje em dia, com a evolução tecnológica, a capacidade computacional de alto desempenho permite que soluções numéricas sejam obtidas com menor esforço de processamento e margem de erro satisfatória. A seguir, faremos uma breve introdução teórica sobre modelos clássicos descritos por EDOs e a resolubilidade das equações.

Modelos clássicos

EDOs de primeira ordem

  • Crescimento e decrescimento: modelo (de Malthus) utilizado em crescimento populacional, mor- talidade de espécies biológicas.

y(t)=kyy(t)=cekt,c,kRy'(t)=ky\Rightarrow y(t)=ce^{kt}, c,k \in \mathbb{R}

Interpretação: taxa de mudança da quantidade yy é proporcional à própria quantidade ao longo do tempo. Se k>0k > 0, temos uma lei de crescimento; se k<0k < 0, temos uma lei de descrescimento (ou queda).

  • Lei do resfriamento de Newton: modelo utilizado para determinar a troca de calor entre um corpo material e um meio externo.

T(t)=k(TT)T(t)=T0+(TT0)ekt,T'(t) = k(T − T_{\infty}) \Rightarrow T(t) = T_0 + (T_{\infty} − T_0)e^{kt},

onde TT é a temperatura do corpo, k>0Rk > 0 \in \mathbb{R} a condutividade térmica (dependente do material do corpo e nem sempre constante), TT_{\infty} a temperatura do ambiente e T0T_0 a temperatura inicial.

Interpretação: taxa de mudança da temperatura é proporcional a diferença entre a temperatura do objeto e do ambiente com o qual troca calor.

EDOs de segunda ordem

  • Variação da quantidade de movimento em um sistema (2a. lei de Newton): modelo utilizado para descrever a perda de equilíbrio de sistemas mecânicos (cordas vibrantes, molas amortecidas, escoamentos de fluidos viscosos).

my(t)=by(t)ky+f(t),my''(t) = −by'(t) − ky + f(t),

onde mm é a massa, yy é um deslocamento, tt o tempo, b > 0 uma constante de amortecimento (absorvedor de choque), k>0k > 0 um parâmetro da mola/empuxo e f(t)f(t) uma força externa.

Interpretação: taxa de mudança da quantidade de movimento do corpo é igual às forças aplicadas sobre o mesmo. A solução geral desta equação não homogênea será omitida aqui (cf. Weiglholfer and Lindsay, p.32).

  • 2a. lei de Kirchhoff: modelo usado em circuitos elétricos e eletromagnetismo.

LQ(t)+RQ(t)+1CQ(t)=U(t),LQ''(t) + RQ'(t) + \frac{1}{C}Q(t) = U(t),

onde Q(t)Q(t) é a carga elétrica, LL é a indutância, RR a resistência, CC a capacitância e U(t)U(t) a força eletromotora (tensão elétrica).

Interpretação: a força eletromotora (bateria, por exemplo) em qualquer circuito fechado equilibra todas as diferenças de potencial (d.d.p.) naquele circuito. Em outras palavras: em um circuito fechado, a soma de todas as d.d.p. é nula.

Teoria geral de resolubilidade de EDOs

Problema de Valor Inicial (PVI)

Um problema de valor inicial (PVI) é formado por uma EDO e uma condição inicial.

{y(t)=f(t,y(t))y(t0)=y0,\begin{cases} y'(t) = f(t,y(t)) \\ y(t_0) = y_0 \end{cases},

Acima, tt é a variável independente, y(t)y(t) é a variável dependente (solução da EDO) e t0t_0 é a condição inicial.

Exemplo: A EDO y(t)=[y(t)]2+y(t)y'(t) = -[y(t)]^2 + y(t) possui a chamada solução trivial y(t)0y(t) \equiv 0 e a solução geral:

y(t)=11+cety(t) = \dfrac{1}{1+ce^{-t}}

Observemos que y(t)y(t) é indefinida quando 1+cet=01+ce^{-t}=0, ou t=ln(c)t = \ln(-c). Se y(0)=y00y(0) = y_0 \neq 0 for uma condição inicial geral, c=1y01c = \frac{1}{y_0} - 1 e teremos os seguintes resultados adicionais:

condição inicialvalores de ccexistência de solução
y0>0y_0 > 0c>1c > -10t<0 \leq t < \infty
y0<0y_0 < 0c<1c < -10<t<ln(1y01)0 < t < \ln(1 - y_0^{-1})

Abaixo vemos os gráficos de Y(t)Y(t) quando c={0.8,0.5,0.4,0,0.5,1,0,2.5}c = \{-0.8,-0.5,-0.4,0,0.5,1,0,2.5\} e para a solução trivial.

import numpy as np 
import matplotlib.pyplot as plt 

# variavel independente
t = np.linspace(0,6,100)

# condicao inicial
C = [-0.8,-0.5,-0.4,0,0.5,1,0,2.5]

for c in C:    

    # solucoes não triviais
    if c != 0:
        plt.plot(t,1./(1 + c*np.exp(-t)))
    
    # solucao trivial
    else:
        plt.plot(t,0*t,'k--')    
            
<Figure size 432x288 with 1 Axes>