Я хочу решить обыкновенные дифференциальные уравнения, используя scipy_ivp() мяча, падающего с начальной скоростью 1 в направлении x и 0 в направлении y. Гравитационное ускорение g = 9,82, и при ударе мяча о землю предполагается, что его скорость меняет знак и умножается на 0,9. Однако, используя параметр event, я обнаружил, что он работает не так, как должен. Это мой код и результат:
Код: Выделить всё
from scipy.integrate import solve_ivp
def f_derivs_ivp(t, vars, g = 9.82):
dxdt = vars[2]
dydt = vars[3]
dvxdt = 0
dvydt = -g
return dxdt, dydt, dvxdt, dvydt
def bounce(t, y, g = 9.82):
if y[1]
Подробнее здесь: [url]https://stackoverflow.com/questions/70369268/implement-ball-bouncing-in-free-fall-using-scipy-ivp[/url]