Métodos computacionais em física
Monografia: Métodos computacionais em física. Pesquise 861.000+ trabalhos acadêmicosPor: eduardosg2 • 25/9/2014 • Monografia • 1.162 Palavras (5 Páginas) • 232 Visualizações
UFF
Métodos Computacionais em física
Grupo:
.Matheus Adams
.Eduardo Gomes
.Yuri Valicelle
Introdução:
O estudo do movimento dos projéteis (ideal) no ensino de Mecânica é importante por ser o primeiro caso - fora talvez o do movimento circular uniforme -, de composição de movimentos no plano. Entretanto, em que situações pode este estudo idealizado ser aplicado à prática em que o ar impõe resistência ao mesmo? No que apresentamos a seguir, procuramos familiarizar um pouco o professor com o problema da resistência do ar de forma a lhe permitir delimitar o alcance dos seus ensinamentos. Para velocidades da ordem de m/s, até suficientemente inferiores à velocidade do som, a resistência do ar é bem representada como proporcional ao quadrado da velocidade, estabelecida por Newton [1]. Para projéteis propriamente ditos (bala de fuzil ou de canhão), a resistência é mais complicada pela emissão de ondas e, por isso, nos restringiremos ao caso sub-sônico mais simples. Por outro lado, o caso da resistência do ar proporcional à velocidade, embora tratável analiticamente, não é realista.
Neste trabalho, vamos simular um lançamento de projétil, com e sem resistência do ar utilizando um computador. Temos como objetivo é encontrar o ângulo que consiga o alcance máximo do projétil e comparar com os resultados obtidos sem resistência do ar, verificaremos também se a altura máxima permanecerá no meio da trajetória.
Experimento
Neste experimento, utilizamos um computador portátil (com as seguintes configurações, processador intel core i5, memória RAM de 4gb, placa de vídeo nvidia GEFORCE 540m 1gb e sistema operacional Windows 7/Linux(Ubuntu)), Matlab (para gerar os gráficos) e a linguagem C++ para construir o código para o cálculo.
O experimento foi feito com as seguintes configurações iniciais:
B/M = 0.0001 (no caso com resistência do ar)
B/M = 0 (no caso sem resistência do ar)
Velocidade inicial = 300 m/s
Deltat= 0.01
Os resultados foram emitidos pelo computador em tempo razoável, em média 2,1 segundos de processamento. Os gráficos foram gerados pelo Matlab, o código para geração dos mesmos foi:
x = [x1 x2 x3 ... xn]
y = [y1 y2 y3 ... yn]
plot (x,y) (no caso dos gráficos só com uma curva)
plot (x,y), hold on
pot (x2,y2), hold off (no caso dos gráficos com 2 curvas, x2 e y2 foram declarados da mesma forma que x e y)
Resultados Obtidos:
Na figura 1 podemos observar que o ângulo que proporcionou o melhor alcance foi de 41 graus (0,72 radianos). Portanto a figura 2 e 3, que calcula o maior alcance teve como entrada 41 graus como ângulo, a figura 3 mostra a comparação dos gráficos com e sem resistência do ar, podemos observar, que o código tem coerência, pois o caso de sem resistência do ar obteve maior alcance e maior altura máxima.
Na figura 4 calculamos o ângulo com maior alcance para o caso do lançamento de projétil sem resistência do ar, e como era de se esperar o resultado obtido foi de 45 graus (aproximadamente 0,79 radianos), na figura 5 demonstramos o alcance máximo no caso sem resistência do ar e com ângulo de entrada de 45 graus. Por fim, na figura 6 temos um gráfico para comparação dos resultados com e sem resistência do ar, com 41 graus de entrada.
Figura 1. (Agulação (teta) x alcance )
Figura 2. (y(t) x x(t) com resistência do ar)
Figura 3. (y(t) x x(t), sem resistência do ar)
Figura 4. (Agulação (teta) x alcance, sem resistência do ar )
Figura 5. (y(t) x x(t), sem resistência do ar (45º entrada) )
Figura 6. (y(t) x x(t), sem resistência e com resistência do ar (41º de entrada) )
Conclusão:
Analisando os resultados obtidos, podemos concluir que o nosso código implantado apresenta coerência, pois os resultados obtidos foram satisfatórios para o modelo implementado.
Código fonte:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
void osciladorHarmonico() {
int n = 10;
double dt, x, v, e, t, x_inicial, v_inicial, x_teorico, v_teorico, e_teorico;
dt = 2. * M_PI / n; // dtInc
t = 0.; // tempo inicial
x_inicial = 0.;
v_inicial = 1.;
FILE * ohs_out = fopen(" saida.txt ", " w ");
while (t <= 2. * M_PI) {
x_teorico = sin(t); // resultado teorico
v_teorico = cos(t);
e_teorico = 0.5 * (v_teorico * v_teorico + x_teorico * x_teorico);
e = 0.5 * (v_inicial * v_inicial + x_inicial * x_inicial);
x = x_inicial + dt * v_inicial; // resultado Euler
v = v_inicial - dt * x_inicial;
x_inicial
...