Trajectória de um Projéctil
Pedro Barahona
DI/FCT/UNL
Introdução aos Computadores e à Programação
2º Semestre 2005/2006
9 de Março de 2006
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.
9 de Março de 2006
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.
9 de Março de 2006
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.
9 de Março de 2006
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
9 de Março de 2006
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
9 de Março de 2006
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.
9 de Março de 2006
componentes
pode
Trajectória de um Projéctil
ser
considerada
7
Inicialização de Variáveis
• Em qualquer algoritmo é necessário garantir
1. que as variáveis são inicializadas; e
2. as constantes são definidas antes de 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 parâmetros de entrada
do problema, e são 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
resultados que têm que ser calculados (sendo desconhecidos inicialmente)
podendo ser inicializados a 0 por instruções de afectação:
dmax ← 0;
9 de Março de 2006
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;
9 de Março de 2006
% 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
9 de Março de 2006
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
9 de Março de 2006
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
9 de Março de 2006
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);
9 de Março de 2006
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;
se y > hmax então hmax  y; xmax  x fim se
fim enquanto
% Apresentação de Resultados
dmax  x;
Sai dmax;
Sai hmax;
9 de Março de 2006
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;
if y > hmax then hmax  y; xmax  x end if
endwhile
% Apresentação de Resultados
dmax = x;
disp("Distância maxima da trajectoria (m):"); disp(dmax);
disp("Altura maxima da trajectoria (m):"); disp(hmax);
9 de Março de 2006
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 (y0 pode ser zero).
– O valores de tet devem estar entre 0 e /2.
– O valor de dx pode ser, em princípio, qualquer valor positivo
•
Como é óbvio, quanto menor for o valor de dx, maior precisão se obtem
na determinação do conjunto da trajectória, e em particular nos valores de
xmax e ymax.
– Verificar os valores determinados quando no cálculom da trajectória
se utilizam vários valores de dx trajactória para vários valores de dx
(por exemplo entre 0.01m e 1 m).
9 de Março de 2006
Trajectória de um Projéctil
16
Download

Trajectoria de um Projectil