Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Utilize laços while, do while e/ou for para fazer um programa que calcula a posição e a velocidade do oscilador em função do tempo (digamos, por exemplo, em 100 pontos entre 0 e 3 segundos), colocando os resultados em forma de coluna, onde a primeira coluna é o tempo, a segunda a posição e a terceira a velocidade. Redirecione esse resultado para um arquivo e faça grácos da posição em relação ao tempo (x × t), velocidade em relação ao tempo (v × t) e do espaço de fases (x × v ). Explore valores diferentes para o parâmetro c, variando entre o caso não-amortecido c = 0 e o caso criticamente amortecido (γ = ω0 ).
- #include <stdio.h>
- #include <math.h>
- #define k 20
- #define m 2.5
- #define c 10
- #define A 0.1
- #define pi M_PI
- int main(void)
- {
- double x,omega,gamma,omega0,v,t;
- for (t=0;t<=3;t+=0.03)
- {
- omega0=k/m;
- gamma=c/(2*m);
- omega=2*pi*sqrt(pow(omega0,2)-pow(gamma,2));
- x=A*cos(omega*t)*exp(-gamma*t);
- v=-A*exp(-gamma*t)*(gamma*cos(omega*t)+omega*sin(omega*t));
- printf("%lf\t %lf\t %lf\n",t,x,v);
- }
- return 0;
- }
- // plotando no gnuplot
- // p "xxx.dat" u 1:2 w lp -> grafico xxt
- // p "xxx.dat" u 1:3 w lp -> grafico vxt
- // p "xxx.dat" u 2:3 w lp -> grafico xxv
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement