Мне трудно привыкнуть к scipy solve_ivp. Допустим, у нас есть обыкновенное линейное дифференциальное уравнение второго порядка, например, пружина (y '' = -k ** 2 * y). Условия, когда пружина находится в положении 0 (время 0), скорость равна v0. Как я могу использовать начальные условия для ее решения?
y'' = -k**2*y # First this needs to be modified into first order equation
.
def function1(t, y, k): #original function
return y[1], -k**2*y[1]
function2 = lambda t, y: function1(t, y, k = 10) #function with only t and y
t = np.linspace(0, 100, 1000)
solution = solve_ivp(function2, (0, 100), (0, 0), t_eval = t)
solution.y[0]