Trajectória de um Projéctil Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006 7 Outubro de 2005 Trajectória de um Projéctil 1 Apresentação do Problema • 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. y hmax f(a) v0 y0 (0,0) a dmax x • A trajectória do projéctil em coordenadas (x,y) pode ser modelada através da seguinte equação: y f ( x ) x tan(θ ) g 2 x y0 2 2 2v0 cos ( θ ) • Problema: determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil. 7 Outubro de 2005 Trajectória de um Projéctil 2 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. 7 Outubro de 2005 Trajectória de um Projéctil 3 Resolução Informal • Graficamente a simulação da trajectória do projéctil corresponde a: y (x6,f(x6)) ^ hmax (x2,f(x2)) (x1,f(x1)) (x0,y0) ^ dmax (x11,f(x11)) x • 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. 7 Outubro de 2005 Trajectória de um Projéctil 4 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 7 Outubro de 2005 Algoritmo de Simulação da Resultados Trajectória de Distância Máxima : d max um Projéctil Altura Máxima : h max Trajectória de um Projéctil 5 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 7 Outubro de 2005 Trajectória de um Projéctil 6 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 separadamente. 7 Outubro de 2005 componentes pode Trajectória de um Projéctil ser considerada 7 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; 7 Outubro de 2005 hmax ← 0; Trajectória de um Projéctil 8 Inicialização de Variáveis 1. Inicialização de Variáveis g 9.8; Entra y0; Entra v0; Entra ; Entra dx; dmax 0; hmax 0; 7 Outubro de 2005 % aceleração da gravidade % altura inicial % velocidade inicial % ângulo inicial % precisão % distância máxima da trajectória % altura máxima da trajectória Trajectória de um Projéctil 9 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; y y0; enquanto ... fazer x x + dx; y x*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto 7 Outubro de 2005 Trajectória de um Projéctil 10 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; y y0; enquanto y > 0 fazer x x + dx; y x*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto 7 Outubro de 2005 Trajectória de um Projéctil 11 Ciclo de Simulação 2. Ciclo de Simulação x 0; y y0 ; enquanto y > 0 fazer x x + dx; y x*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; fim enquanto 7 Outubro de 2005 Trajectória de um Projéctil 12 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: dmax x; 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); 7 Outubro de 2005 Trajectória de um Projéctil 13 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; y y0; enquanto y > 0 fazer x x + dx; y x*tan()-(g*x^2)/(2*v0^2*cos()^2)+y0; hmax max(hmax,y); fim enquanto % Apresentação de Resultados dmax x; Sai dmax; Sai hmax; 7 Outubro de 2005 Trajectória de um Projéctil 14 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); 7 Outubro de 2005 Trajectória de um Projéctil 15 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). 7 Outubro de 2005 Trajectória de um Projéctil 16