[SciPy-user] What can and cannot be interpreted as a vector by odeint?

Robert Kern robert.kern at gmail.com
Fri Nov 17 01:41:00 CST 2006

David Goldsmith wrote:
> I was having trouble getting odeint to work w/ what I thought should be 
> legitimate vector arguments.  Looking for examples, I found 
> test_integrate.py and thus found at least one way which works.  However, 
> I'm left wondering why the following behaves the way it does:
>  >>> import numpy as N
>  >>> import scipy as S
>  >>> from scipy import integrate as SI
>  >>> def f(y,t0=0):
> ...     return N.matrix([[0,1],[-1,0]])*N.matrix([[y[0]],[y[1]]]) # 
> [y,y']'=f([y,y']) = "simplest" harmonic oscillator system

You'll probably want to return a real array object, not a matrix. The
handwritten C code that wraps FORTRAN ODEPACK was written long before arrays
could be subclassed.

> PS: Is there a substantive difference between odeint and odepack (I 
> couldn't detect one from their resp. help doc)? 

odeint() is a function that wraps the functionality of ODEPACK. It is defined in
the module called odepack.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

More information about the SciPy-user mailing list