У меня есть система ОДУ, и я хочу изменить значение переменных, когда решатель достигает точного момента времени. То, что я пытаюсь сделать, похоже на этот пример в Джулии
То, что я пытался сделать, это использовать else и проверить, достигнуто ли время t. Однако это не работает, потому что массив, содержащий время, не проходит через эту точку. Также безуспешно пытался использовать t_eval.
Используя ту же проблему, показанную в примере с юлией, мы имеем:
from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as plt
def f(t, u):
if t == 4 and u[0] < 4:
u[0] += 10
du = np.empty(1)
du[0] = -u[0]
return du
u0=[10.0]
V = 1
t = [0,10]
u0 = [10.0]
sol = solve_ivp(f,t,u0)
plt.plot(sol.t, sol.y[0])
Есть ли способ воспроизвести функцию обратного вызова julia?