我尝试使用scipy.integrate.solve_ivp解决初始值问题(ode),但是类型错误:'float'对象不可订阅'已发生当我使用odeint,它的工作。我只是改变相同的设置求解器。第一个
kxkpmulp1#
f中参数的顺序仅对odeint有效,即使这样也可以使用选项tfirst=True来避免。对于solve_ivp,它应该是
f
odeint
tfirst=True
solve_ivp
def f(t,z):
发生此错误的原因是,当数组和标量切换时,解算器尝试访问数组的组件,而不是标量变量的组件。
1条答案
按热度按时间kxkpmulp1#
f
中参数的顺序仅对odeint
有效,即使这样也可以使用选项tfirst=True
来避免。对于solve_ivp
,它应该是发生此错误的原因是,当数组和标量切换时,解算器尝试访问数组的组件,而不是标量变量的组件。