Py3. Расчет траектории прыгающего мяча. Программирование в Python

Пусть мяч падает на пол со скоростью V1=6 м/с под углом 30 градусов от вертикали. При каждом отскоке мяч теряет 30% скорости, т.е. для скорости отскока V2 можно записать равенство V2 = 0.7*V1. Угол отскока мяча равен углу падения. При каждом последующем падении мяча скорость падения равна скорости предыдущего отскока. Угол падения и угол отскока сохраняют значение 30 град. Написать программу и вывести на монитор траекторию движения мяча при отскоках. Число отскоков задать равным 5.

Решение. Составим алгоритм решения задачи. Траектория движения мяча при отскоках подобна набору положительных полуволн с уменьшающейся амплитудой, расположенных над горизонтальной осью. Длина основания полуволны определяется горизонтальной составляющей скорости Vгi мяча в момент i-го отскока и равна si = Vгi*ti, где ti = (2*Vвi) ⁄ g – время движения мяча между двумя соседними отскоками, Vвi – вертикальная составляющая скорости в момент i-го отскока. Задача заключается в том, чтобы построить профили полуволн между отскоками. Для этого будем разбивать основание каждой полуволны на 11 точек (от 0 до 10) и для каждой точки будем находить высоту подъема мяча. Нулевая и десятая точки – это моменты отскока, и эти точки лежат на горизонтальной оси, а для промежуточных точек необходимо находить высоту по формуле hj = Vвi*tj – (g*tj**2) / 2
где tj = j*ti ⁄ 10
j = 0…9
i – номер отскока (номер полуволны), j – номер точки внутри отскока (номер точки внутри полуволны).
По условию задачи должно быть пять отскоков, таким образом, необходимо построить профили пяти полуволн. Для решения задачи надо задействовать два цикла:
1) в первом внешнем цикле будем перебирать отскоки;
2) во втором внутреннем цикле будем перебирать точки внутри отскоков и находить высоту подъёма мяча для каждой точки, другими словами, определять профиль каждой полуволны.
В конце решения, когда координаты всех точек будут определены, построим график траектории движения мяча.
(Перед тем, как получить решение, сделайте вручную для контроля предварительный расчёт максимальной высоты подъема мяча после пятого отскока.)

Листинг программы:

Результаты решения представлены на графике рис. 1.
plt.title(“Траектория прыгающего мяча”)
plt.plot(xk, yk, linewidth=0.8)
plt.grid()
plt.show()

Рис. 1. Траектория прыгающего мяча