运行ode,dopri5方法,错误:不支持的操作数类型' ode'

时间:2016-12-28 05:36:21

标签: python ode

我是一名初学程序员,我想使用ode' dopri5'来集成一个函数,但我不认为我正确地做了。该参考文献没有多大帮助,而且我有一个我不认识的错误。所以,最初我使用odeint,它工作正常。这是一大堆代码:

Itmp = odeint(te.rhs, Itmp, [xLim[i], xLim[i+1]], mxstep=10000,
                          atol=1e-11, rtol=1e-11, args=(f,))[1]

我尝试使用dopri5进行整合是这样的:

Itmp = ode(te.rhs).set_integrator('dopri5', max_step=10000,atol=1e-11, rtol=1e-11)

我得到的错误是说Itmp是类型' ode'虽然我需要它是一个浮点数,就像odeint给我的那样。

这是特定错误,(我试图从浮点数中减去Itmp):

unsupported operand type(s) for -: 'ode' and 'float'

当我使用python调试器并尝试打印出Itmp时,它会给我

<scipy.integrate._ode.ode object at 0x10d6ab410>

我继续之后因上述错误而停止。我猜测我没有正确写出ode命令。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

ode类的构造函数的返回值是类型ode的实例对象。此时,没有进行任何整合。为此,您需要调用积分器的步进函数。在该步骤之后,新状态位于y对象的ode字段中。

有关详细信息,请参阅ode课程的文档。

您应该注意到,既没有将初始条件也没有将积分间隔的结束传递给积分器。