我正在尝试使用scipy.integrate.solve_ivp解决初值问题(ode)。 但是发生了“类型错误:“浮动”对象不可下标”
当我使用odeint时,它可以工作。 我只是用相同的设置更改求解器。
java.lang.String
def f(z, t): c1 = z[0] c2 = z[1] dc1dt = -k1*c1 + k2*c2*(1-c1-c2) dc2dt = k1*c1 - k2*c2*(1-c1-c2) - 2*k3*c2*c2 dcdt = [dc1dt, dc2dt] return dcdt def main(): k1 = 0.04 k2 = 10.0 k3 = 1500.0 z0 = [0.9, 0.1] sol = solve_ivp(f,[0, 3000] , z0, method = 'RK45') return sol main()
有人可以帮助我吗? 有人帮我吧!
答案 0 :(得分:0)
f
中参数的顺序仅对odeint
有效,使用选项tfirst=True
可以避免。
def f(t,z):
错误是因为数组和标量已切换,您无法访问标量的组件。