我正在尝试在 Python 中使用solve_ivpfromscipy来解决 IVP。我指定了to的tspan参数,如下所示。但是,由于某种原因,我得到的解决方案总是在 t=2.5 左右停止。solve_ivp(0,10)
from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize as optim
def dudt(t, u):
return u*(1-u/12)-4*np.heaviside(-(t-5), 1)
ic = [2,4,6,8,10,12,14,16,18,20]
sol = solve_ivp(dudt, (0, 10), ic, t_eval=np.linspace(0, 10, 10000))
for solution in sol.y:
y = [y for y in solution if y >= 0]
t = sol.t[:len(y)]
plt.plot(t, y)
