У меня есть бейсбольный мяч с функцией черного ящика, который определяет величину расстояния, которое проходит бейсбольный мяч при запуске. Требуется начальная скорость, угол запуска и начальное вращение. Предполагая, что вращение остается прежним, но варьируя угол запуска, я хочу численно определить минимальную скорость, обеспечивающую заданное расстояние. то есть
Код: Выделить всё
d = baseball(given_speed, given_angle, given_spin)
speed_minimum, angle = find_speed(d, given_spin)
baseball(speed_minimum, angle, given_spin) == d
> true
Я рассматривал возможность частичного дифференцирования бейсбола, чтобы найти минимальную скорость, но это не ограничит расстояние. Затем я решил создать np.linspace для каждого угла между -pi и pi, а затем выполнить итерацию, чтобы найти значение скорости, которое соответствует разумным ограничивающим оценкам, но это кажется огромными вычислительными затратами. Я слышал о множителях Лагранжа, но не понимаю, как эти ограничения будут здесь работать.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... quals-a-va