[SciPy-user] Additional output from scipy.integrate.ode[int]

gyro gyromagnetic@gmail....
Tue Mar 3 19:57:16 CST 2009


On Mar 3, 1:54 pm, Pauli Virtanen <p...@iki.fi> wrote:
> Tue, 03 Mar 2009 13:40:11 -0700, gyro wrote:
>
> > I was wondering if it is possible to specify additional outputs that are
> > calculated in the function specifying the rhs of the odes.
>
> > As an trivial example (adapting the example in the documentation):
>
> [clip]
> > def f(t, y, arg1):
> >     extra = y[0]*t - y[1]
> >     rhs = [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
> >     return (rhs,extra)
> [clip|
> > while r.successful() and r.t < t1:
> >     r.integrate(r.t+dt)
> >     print r.t, r.y, r.extra
> [clip]
> > I realize that I can calculate the 'extra' after I have the complete
> > solution, but it would be convenient to have the ability to get this
> > information directly from the solver.
>
> > If this capability is not currently available, is it of interest to have
> > it implemented?
>
> I'm not sure if there's interest to add this feature, since you can do
>
> def f(t, y, arg1):
>     r.extra = y[0]*t - y[1]
>     rhs = [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
>     return rhs
>
> Note that `r` is available in `f`, since it's in the outer scope.
>
> --
> Pauli Virtanen
>

Excellent, Pauli!
This is a great solution to my problem.
-g


More information about the SciPy-user mailing list