我正在尝试使用 solve_ivp 解决 ODE,但我遇到了奇怪的错误。文档:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html
from scipy.integrate import solve_ivp as solve
import numpy as np
import matplotlib.pyplot as plt
def fun(t, y, beta, eps):
u = 1/eps * (-1/3 * y[0]**3 + y[0] + y[1])
v = beta - y[0]
y[0]= u
y[1]= v
return y
eps = 0.05
beta = 1.1
y0 = np.array([2, 2])
t = np.linspace(0, 1000, num=10000)
Y = solve(fun=lambda t, y: fun(t, y, beta, eps), t_span=(t[0],t[-1]), y0=y0 , method='RK45', t_eval=[1,2,3,4]).y
ValueError:需要至少一个数组来连接
请注意,我已经不得不偏离文档,因为args参数也不起作用。相反,我不得不重新定义我的函数,该函数使用 lambda 方法获取 2 个附加参数。我在这里找到了这个:https ://stackoverflow.com/questions/48245765/pass-args-for-solve-ivp-new-scipy-ode-api
我做错了什么还是这种方法非常错误?