Язык программирования Python

Результаты с ошибками при вычислении параболического движения.

Мне нужно сделать функцию, которая вычисляет горизонтальное расстояние и максимальную высоту параболического движения.

import math def YX (a,vi): t=(2*vi*math.sin(a))/9.8 #Вычисление время x=(vi*math.cos(a))*t #Вычисление расстояния ymax=math.tan(a)-0.5*9.8*(x**2 /(vi**2 * math.cos(a*2))) #Рассчет максимальной высоты print("Значение горизонтального расстояния " ,x," м") print("Значение максимальной высоты ", ymax, "м") a=float(input("Введите значение угла ", )) vi=float(input("Введите значение начальной скорости ")) YX(a,vi)
Code language: PHP (php)

Все формулы должны быть в порядке, но результаты, которые я получаю, непоследовательны. Примером этого является то, что горизонтальное расстояние отрицательное, я не знаю, потому что оно читается как градусы или как радианы.

Пример,

Введите значение угла 65 Введите значение начальной скорости 215.22 Значение горизонтального расстояния -4396.1408762651745 м Значение максимальной высоты 5564.78819850982 м
Code language: CSS (css)

В результате должно получиться.

x=3600 ymax=1900

Решение.

Я бы рекомендовал прочитать документацию по math перед использованием этих функций. Похоже, что ваша первоначальная идея была верна: читая части sin, cos и tan, он просит вас ввести число в радианах.

И это так же просто, как преобразовать a в радианы:

def YX (a,vi): a = a * math.pi / 180 # ...остальной код
Code language: PHP (php)

(В качестве альтернативы можно задать a = math.radians(a)).

В результате вы получите.

Введите значение угла 65 Введите значение начальной скорости 215.22 Значение горизонтального расстояния 3620.705026943353 м Значение максимальной высоты 2159.638618712338 м
Code language: CSS (css)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *