[SciPy-dev] Patch fixing problems in integrate/ode.py for banded systems

Jesper Friis jesper.friis at material.ntnu.no
Fri Mar 3 09:56:46 CST 2006

Here is a small patch (just 2 lines) that enters the size of the upper 
and lower diagonals in the work arrays before calling DVODE. Without 
this patch DVODE will return immediately, complaining about illegal input.

Another minor problem with the interface to DVODE is that the function 
calculating the Jacobian is expected to return a matrix of size NROWPD 
by len(y), where NROWPD unfortunately is not provided as an argument to 
the Jacobian function in the python interface. For trigonal systems 
NROWPD is e.g. 4 and not 3 as one would expect. On the other hand is an 
error message is printed when a matrix of the wrong size is returned,
so this problem is easy to fix...

--- scipy-0.4.6/Lib/integrate/ode.py.org        2006-03-03 
13:20:36.000000000 +0100
+++ scipy-0.4.6/Lib/integrate/ode.py    2006-03-03 16:17:17.000000000 +0100
@@ -337,6 +337,8 @@
          rwork[6] = self.min_step
          self.rwork = rwork
          iwork = zeros((liw,),'i')
+        if self.ml != None: iwork[0] = self.ml
+        if self.mu != None: iwork[1] = self.mu
          iwork[4] = self.order
          iwork[5] = self.nsteps
          iwork[6] = 2           # mxhnil

More information about the Scipy-dev mailing list