——- unGu.ru ——-

полёт снаряда

Снаряд вылетел из орудия под углом 30о к горизонту и скоростью 70 м/с. Сопротивлением воздуха пренебречь. Найти максимальную высоту, которую достигнет снаряд и дальность его полёта. Нарисовать траекторию снаряда.

Начальное положение снаряда примем за начало координат и разложим скорость на горизонтальную и вертикальную составляющие. Горизонтальная составляющая будет оставаться без изменений, на вертикальную составляющую будет действовать сила тяжести.

Составим программу на питоне.
Для рисования траектории в первой строчке программы подключим библиотеку: import matplotlib.pyplot as grph
Кроме задания начального положения снаряда (x,y), внесём начальные координаты первыми элементами в ряды x_ и y_:
x_=[x]
y_=[y]
В циклах после определения нового положения снаряда (x,y), будем добавлять значения координат в ряды:
x_.append(x)
y_.append(y)
После выполнения циклов нарисуем график на основе рядов x_ и y_:
grph.plot(x_,y_)
grph.show()

Текст программы:

import matplotlib.pyplot as grph
g=9.8
v=70.
vx=v*3.**0.5/2.
vy=v/2.
x=0.
y=0.
x_=[x]
y_=[y]
t=0.
dt=0.001
while vy>0:
	vy = vy - g*dt
	x = x + vx*dt
	y = y + vy*dt
	x_.append(x)
	y_.append(y)
	t = t + dt
print('hmax = ', y)
while y>0:
	vy = vy - g*dt
	x = x + vx*dt
	y = y + vy*dt
	x_.append(x)
	y_.append(y)
	t = t + dt
print('lmax = ', x)	
grph.plot(x_,y_)
grph.show()