Compare a solução numérica com a solução analítica de um sistema massa-mola. Considere que as consições iniciais são dadas por x(0)=1,0 \mathrm{~mm} e \dot{x}(0)=2,0 \mathrm{mm} / \mathrm{s}. Plote na mesma figura as soluções obtidas para \omega_{n}=0,5 \mathrm{rad} / \mathrm{s}, \omega_{n}=1,0 \mathrm{rad} / \mathrm{s}, \omega_{n}=2,0 \mathrm{rad} / \mathrm{s} e \omega_{n}=4,0 \mathrm{rad} / \mathrm{s}.
Passo 1
O que o enunciado pede e quais dados temos.
Pede: comparar a solução numérica com a solução analítica de um sistema massa-mola (oscilador harmônico simples) e plotar as soluções na mesma figura para quatro valores de frequência natural: \omega_n = 0{,}5, \omega_n = 1{,}0, \omega_n = 2{,}0 e \omega_n = 4{,}0 (unidades \mathrm{rad/s}).
Condições iniciais dadas: \;x(0)=1{,}0\\ \mathrm{mm} e \;\dot{x}(0)=2{,}0\\ \mathrm{mm/s}.
Pressuposição natural razoável (não foi dito o contrário): não há amortecimento nem forçamento externo, logo o modelo é o oscilador harmônico simples.
Resultado esperado: (1) obter a solução analítica x(t) para cada \omega_n; (2) integrar numericamente o mesmo sistema e comparar (por exemplo calculando erro máximo e RMS); (3) plotar ambas na mesma figura para cada valor de \omega_n (ou todas juntas diferenciando por cores/linhas).
Passo 2
Escrevendo a equação do movimento e entendendo o que ela significa.
Equação do oscilador harmônico livre (massa-mola sem amortecimento nem força externa) é
\ddot{x} + \omega_n^2 x = 0.
Aqui \;x(t) é o deslocamento (em \mathrm{mm}), \dot{x} é velocidade (\mathrm{mm/s}), \ddot{x} é aceleração (\mathrm{mm/s^2}), e \omega_n é a frequência natural (em \mathrm{rad/s}).
Essa é uma equação diferencial ordinária linear de segunda ordem com coeficientes constantes. A solução geral é uma combinação de seno e cosseno porque as raízes da equação característica são imaginárias puros.
Passo 3
Encontrando a solução analítica geral e aplicando as condições iniciais.
Solução geral da equação homogênea:
x(t) = A\cos(\omega_n t) + B\sin(\omega_n t),
onde A e B são constantes determinadas pelas condições iniciais.
Aplicando \;x(0)=1{,}0\\ \mathrm{mm}:
x(0)=A\cos(0)+B\sin(0)=A \quad\Longrightarrow\quad A = 1{,}0\\ \mathrm{mm}.
Observação física: quando \omega_n é pequeno, o termo \frac{2}{\omega_n} fica grande — velocidade inicial elevada comparada à rapidez das oscilações.
Passo 4
Transformando o problema de 2ª ordem em um sistema de 1ª ordem para integrar numericamente.
Para aplicar um integrador numérico padrão (ex.: Runge–Kutta), escrevemos o sistema em forma de primeiro ordem definindo vetores de estado.
Defina x_1 = x\) e \(x_2 = \dot{x}\). Então
\[\begin{cases} \dot{x}_1 = x_2,\\[4pt] \dot{x}_2 = -\omega_n^2 x_1. \end{cases}
Em forma vetorial, com \mathbf{y} = \begin{pmatrix} x_1 \\\ x_2 \end{pmatrix}\],
\[\dot{\mathbf{y}} = f(t,\mathbf{y}) = \begin{pmatrix} x_2 \\\\ -\omega_n^2 x_1 \end{pmatrix}.\]
- Condição inicial em vetor: \(\mathbf{y}(0) = \begin{pmatrix} 1{,}0 \\\\ 2{,}0 \end{pmatrix} (unidades mm e mm/s).]
Passo 5
Escolhendo o método numérico (motivo da escolha) e explicando como ele funciona (a aula curta).
Vou usar o método Runge–Kutta de quarta ordem (RK4). Motivo: é simples de implementar, bastante preciso (erro local O(h^5), erro global O(h^4)) e estável o suficiente para este tipo de ODE linear sem rigidez.
Esquema RK4 por passo (para vetor \mathbf{y}, passo h, a partir de t_n,y_n):
Aqui k_i são vetores do mesmo formato que y. Cada passo avança a solução em \Delta t = h.
Escolha do passo h: deve ser pequeno em comparação com o período das oscilações. O período é T = \tfrac{2\pi}{\omega_n}. Para a maior frequência \omega_n=4{,}0, T \approx 1{,}571\\ \mathrm{s}. Uma escolha segura e prática é h=1\times10^{-3}\\ \mathrm{s} (ou h=1\times10^{-4} se quiser altíssima precisão). h=1\times10^{-3} dá muitos pontos por período e precisão suficiente para comparar com a solução analítica.
Passo 6
Definindo intervalo de tempo e critérios de comparação.
Intervalo de tempo sugerido para plot: escolher t\in[0,\,20]\\ \mathrm{s}. Justificativa: para \omega_n=0{,}5 temos T\approx 12{,}566\\ \mathrm{s}, então 20\\ \mathrm{s} mostra mais de um período lento; para frequências maiores mostra várias oscilações.
Com h=1\times10^{-3} e t_{\max}=20\\ \mathrm{s} teremos 20001 pontos — aceitável em CPU moderno.
Métricas de comparação: erro absoluto ponto a ponto |x_{\text{num}}(t_i)-x_{\text{analítica}}(t_i)|, e estatísticas como erro máximo \max_i | \cdot | e erro RMS:
Código disponível (Python) para gerar soluções analíticas e numéricas e plotar tudo junto.
Abaixo está um script Python completo que você pode copiar e executar. Ele implementa RK4, calcula a solução analítica, computa erro máximo e RMS e plota as curvas (numérica e analítica) para cada \omega_n na mesma figura (cada \omega com cor diferente e estilos distintos para numérico/analítico).
import numpy as np
import matplotlib.pyplot as plt
# parâmetros iniciais
x0 = 1.0# mm
v0 = 2.0# mm/s
omegas = [0.5, 1.0, 2.0, 4.0] # rad/s# tempo
t0 = 0.0
tmax = 20.0# s
h = 1e-3
- Observações sobre o código:
- A função `rk4_integrate` integra o sistema para um dado \(\omega\) retornando o vetor \(x(t)\).
- O print no loop mostra os erros máximos e RMS para cada \(\omega\); assim você compara quantitativamente.
- Se o plot ficar "poluído" por todas as curvas juntas, você pode plotar subplots (um por \(\omega\)) em vez de todas juntas.
Passo 9
Interpretação dos resultados e dicas para a prova (como resolver na hora).
Solução analítica: memorize a forma geral para o oscilador sem amortecimento:
x(t) = A\cos(\omega_n t) + B\sin(\omega_n t),
e que A=x(0), B=\dot{x}(0)/\omega_n. Essa é a maneira mais direta em prova para obter x(t).
Para comparar numericamente: transforme em sistema de 1ª ordem, escolha um integrador de boa ordem (RK4 é padrão) e um passo h pequeno em relação ao período T=\tfrac{2\pi}{\omega_n}. Uma regra prática: tenha pelo menos algumas dezenas de pontos por período (p.ex. 100–1000) para gráficos suaves e baixa discrepância.
Como avaliar erro na prova: calcule \max |x_{\text{num}}-x_{\text{anal}}| e \text{RMS}; se ambos forem muito pequenos (tipicamente <10^{-3} mm com h=10^{-3} s neste problema) a solução numérica está boa.
Cuidado com \omega_n muito pequeno: o termo \tfrac{2}{\omega_n} pode ficar grande e a amplitude resultante pode ser muito maior; isso não é erro, é física — significa que a mesma velocidade inicial produz maior deslocamento em sistemas lentos.
Passo 10
Resumo do procedimento prático (passo-a-passo curto que você pode usar na prova se pedirem comparar numérico vs analítico rapidamente)
Escreva a ODE: \ddot{x}+\omega_n^2 x=0.
Use solução analítica x(t)=A\cos(\omega_nt)+B\sin(\omega_nt) e aplique A=x(0),\; B=\dot{x}(0)/\omega_n.
Para solução numérica, transforme em sistema de 1ª ordem e use RK4 com passo h pequeno.
Compare por |x_{\text{num}}-x_{\text{anal}}| e faça o gráfico juntos (linhas diferentes).
Interprete os erros e verifique se fazem sentido fisicamente.