Utilize um software* computacional para graficar o campo de direções das equações diferenciais a seguir, encontre a solução geral em cada caso e grafique também algumas curvas integrais sobre o campo:
Passo 1
O enunciado pede para usar um software computacional a fim de desenhar o campo de direções da equação
ache a solução geral e sobreponha algumas curvas integrais nesse mesmo campo. Aqui estamos em uma EDO de primeira ordem, separável, cujo campo direcional em cada ponto
tem inclinação
.
Passo 2
Para desenhar o campo de direções, criamos uma grade de pontos
e em cada ponto traçamos um segmento de reta com declive
Em Python (por exemplo) usamos e .
numpy.meshgrid
para gerar
plt.quiver
para plotar vetores normalizados na direção
Passo 3
Para achar a solução geral, separamos variáveis:
Integrando ambos os lados,
onde
é a constante de integração.
Passo 4
As curvas integrais são então
para diferentes valores de
. Para sobrepor essas curvas ao campo de direções, basta plotar várias dessas exponenciais (por exemplo com
) sobre o quiver.
Resposta
A solução geral da EDO é
e as curvas integrais são exponenciais decrescentes que, quando sobrepostas ao campo direcional definido por
, mostram exatamente as linhas de tendência do sistema. A seguir um exemplo de código Python que gera tanto o campo de direções quanto várias curvas integrais:
import numpy as np
import matplotlib.pyplot as plt
# Grade de pontos
x \(=\) np.linspace(-\(2\), \(2\), \(20\))
y \(=\) np.linspace(-\(2\), \(2\), \(20\))
X, Y \(=\) np.meshgrid(x, y)
# Campo direcional (vetores normalizados)
U \(=1\)
V \(=\) -Y
N \(=\) np.sqrt(U**\(2+\) V**\(2\))
plt.figure(figsize\(=\)(\(6,6\)))
plt.quiver(X, Y, U/N, V/N, angles\(=\)'xy')
# Curvas integrais para diversos C
xs \(=\) np.linspace(-\(2\), \(2\), \(200\))
for C in [-\(2\), -\(1\), \(0\), \(1\), \(2\)]:
plt.plot(xs, C*np.exp(-xs), lw\(=2\))
plt.xlabel('x')
plt.ylabel('y')
plt.title("Campo direcional e curvas integrais de \(y'\(=\)-y\)")
plt.axhline(\(0\), color\(=\)'black', linewidth\(=0.5\))
plt.axvline(\(0\), color\(=\)'black', linewidth\(=0.5\))
plt.grid(True)
plt.show()