Calcular x(10) em precisão simples e em precisão dupla.
Comparar os resultados e discutir a perda de precisão.
Informações relevantes dadas:
\zeta=0,02,\qquad \omega_{n}=100,\qquad t=10.
Observação importante: o enunciado não informa um valor numérico para x_{0}. Vou apresentar o resultado em função de x_{0}, ou seja vou calcular o fator multiplicativo x(10)/x_{0}. Assim, se você tiver um x_{0} específico, multiplica-se o fator por x_{0}.
Passo 2
Primeiro precisamos da frequência amortecida \omega_{d}. A fórmula é
\omega_{d}=\omega_{n}\sqrt{1-\zeta^{2}}.
Explicando: \omega_{n} é a frequência natural (sem amortecimento) e \omega_{d} é a frequência do oscilador quando existe amortecimento leve; a relação vem da solução da equação diferencial do oscilador amortecido.
Agora o fator exponencial e^{-\zeta\omega_{n}t}. Calculemos o expoente:
\zeta\omega_{n}t = 0,02\cdot 100\cdot 10 = 20.
Logo
e^{-\zeta\omega_{n}t}=e^{-20}.
Uma boa aproximação conhecida (e usada em cálculos numéricos) é
e^{-20}\approx 2{,}061153622438558\times 10^{-9}.
Comentário didático: este número é muito pequeno (da ordem de 10^{-9}), portanto o termo exponencial reduz muito a amplitude. Em aritmética de ponto flutuante devemos ficar atentos a underflow quando o expoente for bem maior, mas aqui ainda estamos longe do underflow em float32/float64.
Passo 4
Precisamos do argumento do cosseno \omega_{d}t e então do \cos(\omega_{d}t). Calcule:
Agora computamos \cos(r). Posso avaliar \cos(r) por desenvolvimento em série (bom para r pequeno) ou por aproximação numérica direta. Usando a expansão de Taylor até termos suficientes:
\cos r \approx 1-\frac{r^{2}}{2}+\frac{r^{4}}{24}-\frac{r^{6}}{720}.
Calculemos os termos (apenas com a precisão necessária):
Comentário didático: reduzir o argumento módulo 2\pi evita subtrações grandes que poderiam causar cancelamento numérico; é uma operação padrão em bibliotecas trigonométricas.
Passo 5
Agora juntamos exponencial e cosseno para obter o fator x(10)/x_{0}:
Isto é o resultado em precisão “teórica” alta (vamos chamar isto de referência — o que se obtém com precisão dupla bem executada). Em notação mais curta:
Agora simulamos o cálculo em precisão simples (float32). Conceitos rápidos: precisão simples tem cerca de 24 bits de mantissa ≈ 7{,}2 dígitos decimais de precisão; a unidade de arredondamento típica (machine epsilon) é \varepsilon_{\text{single}}\approx 1{,}19\times 10^{-7}. Em precisão dupla temos \varepsilon_{\text{double}}\approx 2{,}22\times 10^{-16}.
Para simular float32, arredondamos valores críticos a ~7 dígitos significativos ao fazer operações:
e^{-20} em float32 é normalmente representado como \approx 2{,}0611536\times 10^{-9} (arredondado).
\omega_{d} calculado com ordenação simples dá \approx 99{,}979998, que em float32 será algo como 99{,}97999 (7 dígitos significativos).
Seguindo o mesmo passo de redução de ângulo e avaliação do cosseno com precisão simples obtemos um valor de \cos(\omega_{d}t) arredondado para cerca de 0{,}7154561.
Multiplicando com arredondamentos de precisão simples:
que está na mesma ordem de grandeza do \varepsilon_{\text{single}} (ou um pequeno múltiplo dele). Interpretação prática: a perda de precisão ao passar de dupla para simples neste problema é pequena (relativa ~a algumas unidades de 10^{-7}), ou seja, os resultados em simples e dupla concordam até cerca de 6–7 casas decimais significativas do resultado final.
Por que a perda é pequena aqui?
O fator exponencial e^{-20} é pequeno, mas não tão pequeno para causar underflow em float32.
O argumento do cosseno \omega_{d}t\approx 999{,}8 não é tão grande ao ponto de tornar a redução modular \bmod 2\pi numericamente problemática; o número de períodos subtraídos (k=159) é moderado, de modo que a parte fracionária do ângulo (que determina o cosseno) permanece bem determinada tanto em single quanto em double.
Não houve subtração de números muito próximos que gerasse cancelamento significativo em etapas intermediárias sensíveis.
Quando haveria perda séria de precisão?
Se \omega_{d}t fosse muito grande (por exemplo, da ordem de 10^{6} ou maior), a redução módulo 2\pi pode perder precisão em float32 (porque é preciso representar com muita precisão a parte inteira do quociente), levando a erro grande na fase e, portanto, em \cos.
Se o expoente \zeta\omega_{n}t fosse muito maior, o e^{-\text{expoente}} poderia underflowar em float32 para 0.
Se \zeta fosse tão pequeno que calculássemos 1-\zeta^{2} com pouca precisão e depois fôssemos subtrair valores próximos, poderia haver cancelamento; aqui \zeta^{2}=0{,}0004 é suficientemente grande para não causar problema significativo.
Resumo: neste problema concreto a passagem para precisão simples causa uma perda relativa pequena, compatível com o erro de arredondamento esperado de float32; não ocorre falha numérica grave.
Resposta
x(10) em precisão simples: \displaystyle x(10)\approx x_{0}\cdot 1{,}474094\times 10^{-9}\n x(10) em precisão dupla (referência): \displaystyle x(10)\approx x_{0}\cdot 1{,}474094420\times 10^{-9}