【发布时间】:2021-12-30 03:48:41
【问题描述】:
我将solve_ivp 用于4 个ODE 方程的系统,但它给了我这个错误。可能是因为我需要的solve_ivp中的y0是4项(初始值:x0,y0,w0,z0),我像数组一样输入它。如何在求解器中输入这些初始值?如果我尝试像列表一样放置会发生相同的错误。 我写了一个我的代码示例(写完太长了)
def funct(iv,t):
a=iv[0]
b=iv[1]
c=iv[2]
c=iv[3]
# ODE
dxdt=...
dydt=...
dwdt=...
dzdt=...
ODES=[dxdt,dydt,dwdt,dzdt]
return ODES
x0=1
y0=2
w0=3
z0=4
initial_values=np.array([x0,y0,w0,z0]) #*******
t_s = np.linspace(0,100,1001)
#Integración del modelo
inputs = (D,E,F,G,H,J,K)
solut = odeint(funct, initial_values, t_s)
【问题讨论】:
-
您在帖子中到处都提到了
solve_ivp,但代码 sn-p 使用了odeint。 -
对不起:solut =solve_ivp(funct, initial_values, t_s)
-
对于
solve_ivp,需要交换initial_values和t_s的顺序。 :)