160 likes | 220 Views
Learn how to simulate and calculate the maximum distance and height reached by a projectile based on initial parameters and model equations. Understand the algorithm structure and variables used in the problem.
E N D
Trajectória de um Projéctil Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2006/2007 Trajectória de um Projéctil
f(a) hmax dmax a Apresentação do Problema y • Um projéctil é lançado de uma altura de y0 metros, com um ângulo inicial de lançamento de radianos e com uma velocidade inicial de v0 metros por segundo. • A trajectória do projéctil em coordenadas (x,y) pode ser modelada através da seguinte equação: v0 y0 (0,0) x • Problema:determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil. Trajectória de um Projéctil
Resolução Informal • Problema:determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil. • Pode-se simular a trajectória do projéctil usando a função f para calcular o valor de y correspondente a cada valor de x. • Considera-se o ponto inicial da trajectória x0=0: (x0,y0) • Considera-se uma sequência de valores de x (x1,x2,…) para os quais se calcula o respectivo valor de y usando a função f: (x1,f(x1)), (x2,f(x2)),… • Termina-se o cálculo quando aparecer o primeiro ponto da trajectória com o valor de y negativo. • Os valores da distância máxima e da altura máxima podem ser aproximados respectivamente pelos valores maximos de x e y obtidos nos pontos calculados da trajectória. Trajectória de um Projéctil
^ (x6,f(x6)) y (x2,f(x2)) (x1,f(x1)) ^ hmax dmax (x0,y0) x (x11,f(x11)) Resolução Informal • Graficamente a simulação da trajectória do projéctil corresponde a: • O último ponto considerado é o x11 uma vez que é o primeiro a aparecer com y negativo: f(x11)<0 • A distância máxima (dmax) é aproximada pelo maior valor de x: dmax x11 • A altura máxima (hmax) é aproximada pelo maior valor de y: hmax f(x6) • A precisão das aproximações depende dos pontos da trajectória calculados: • se a distância (em x) entre cada dois pontos consecutivos for dx então, em geral, a precisão aumenta quando dx diminui. Trajectória de um Projéctil
Algoritmo de Simulação da Trajectória de um Projéctil Especificação do Problema Dada uma altura inicial (y0) uma velocidade inicial (v0) e um ângulo inicial de lançamento (), com base no modelo da trajectória apresentado e para uma dada precisão (dx), determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil. Entrada Altura Inicial :y0 Velocidade Inicial :v0 Ângulo Inicial : Precisão : dx Resultados Distância Máxima : dmax Altura Máxima : hmax Trajectória de um Projéctil
Variáveis Utilizadas Em geral, na especificação de um algoritmo definem-se as variáveis e constantes que vão ser utilizadas, bem como o seu significado. Neste problema, apenas existe uma constante • g = 9.8 : a aceleração da gravidade (na Terra) As variáveis a utilizar são, naturalmente, as seguintes • y0 : a altura inicial • v0 : a velocidade inicial • : o ângulo inicial • dx : a distância em x entre dois pontos consecutivos • dmax : a distância máxima alcançada pela trajectória • hmax : a altura máxima alcançada pela trajectória Trajectória de um Projéctil
Estrutura do Algoritmo O algoritmo para simulação da trajectória de um projéctil pode ser decomposto em 3 “componentes” 1. Inicialização de Variáveis 2. Ciclo de Simulação da Trajectória 3. Apresentação de Resultados Cada uma destas componentes pode ser considerada separadamente. Trajectória de um Projéctil
Inicialização de Variáveis • Em qualquer algoritmo é necessário garantir que as variáveis são inicializadas e as constantes definidas antes de poderem ser referidas em expressões. • O valor da constante de aceleração da gravidade é conhecido inicialmente e por isso pode ser logo atribuído por uma instrução de afectação: g ← 9.8; • Os valores da altura inicial, velocidade inicial, ângulo inicial de lançamento e distância em x entre dois pontos consecutivos são os parâmetros de entrada do problema, e portanto têm que ser pedidos ao utilizador através de instruções de entrada: Entra y0; Entra v0; Entra ; Entra dx; • Os valores de distância e altura máximas alcançados pela trajectória são os resultados que têm que ser calculados e portanto são desconhecidos inicialmente podendo ser inicializados a 0 por uma instrução de afectação: dmax← 0; hmax← 0; Trajectória de um Projéctil
Inicialização de Variáveis 1. Inicialização de Variáveis g 9.8; % aceleração da gravidade Entra y0; % altura inicial Entra v0; % velocidade inicial Entra ; % ângulo inicial Entra dx; % precisão dmax 0; % distância máxima da trajectória hmax 0; % altura máxima da trajectória Trajectória de um Projéctil
Ciclo de Simulação • A parte fundamental do algoritmo é um ciclo em que se vão calculando os sucessivos valores da trajectória do projéctil para pontos espaçados em x de um valor dx. • Vamos usar duas novas variáveis, x e y, para representar cada ponto da trajectória. • O primeiro ponto é: (x, y) = (0,y0) x 0; yy0; enquanto ... fazer xx + dx; yx*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto Trajectória de um Projéctil
Condições de Entrada no Ciclo • Em qualquer ciclo é necessário especificar em que condições é que o ciclo é executado. • Neste caso, estamos interessados em estudar a trajectória até se atingir o solo (y = 0). A condição de controle do ciclo é pois y > 0, donde x 0; yy0; enquanto y > 0 fazer xx + dx; yx*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto Trajectória de um Projéctil
Ciclo de Simulação 2. Ciclo de Simulação x 0; yy0; enquanto y > 0 fazer xx + dx; yx*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto Trajectória de um Projéctil
Apresentação de Resultados • A distância máxima da trajectória é simplesmente o valor de x no final do ciclo. • Para apresentar esse valor basta: dmaxx; Sai dmax; • A altura máxima da trajectória é o maior valor de y obtido durante o ciclo. • Mas no final do ciclo esse valor não está em nenhuma variável ! • Temos que acrescentar uma instrução ao ciclo de simulação para actualizar hmax sempre que for encontrado um valor de y maior: hmax max(hmax,y); Trajectória de um Projéctil
Algoritmo Completo % Inicialização de Variáveis g 9.8; % aceleração da gravidade Entra y0; % altura inicial Entra v0; % velocidade inicial Entra ; % ângulo inicial Entra dx; % precisão dmax 0; % distância máxima da trajectória hmax 0; % altura máxima da trajectória % Ciclo de Simulação x 0; yy0; enquanto y > 0 fazer xx + dx; yx*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; hmax max(hmax,y); fim enquanto % Apresentação de Resultados dmaxx; Sai dmax; Sai hmax; Trajectória de um Projéctil
Programa Octave % Inicialização de Variáveis g = 9.8; % aceleração da gravidade y0 = input(" Qual a altura inicial (m)? "); v0 = input(" Qual a velocidade inicial (m/s)? "); tet = input(" Qual o angulo inicial (rad)? "); dx = input(" Qual a precisao (m)? "); dmax = 0; % distância máxima da trajectória hmax = 0; % altura máxima da trajectória % Ciclo de Simulação x = 0; y =y0; while y > 0 x = x + dx; y = x*tan(tet)-(g*x^2)/(2*v0^2*cos(tet)^2)+y0; hmax = max(hmax,y); endwhile % Apresentação de Resultados dmax = x; disp("Distância maxima da trajectoria (m):"); disp(dmax); disp("Altura maxima da trajectoria (m):"); disp(hmax); Trajectória de um Projéctil
Programa Octave • O programa pode ser testado com vários valores dos parâmetros de entrada (y0, v0, tet e dx). • Os valores de y0 e v0 devem ser positivos (o y0 pode ser zero). • O valores de tet devem estar entre 0 e /2. • Verificar a importância de dx tomar valores pequenos, de forma a garantir que erros cometidos pelas aproximações não sejam muito significativos (dx 0.1 m). Trajectória de um Projéctil