Anyone have a "little" shooting-method function to share

David L Goldsmith David.L.Goldsmith at noaa.gov
Wed Nov 8 18:08:17 CST 2006


Hi!  I tried to send this earlier: it made it into my sent mail folder, 
but does not appear to have made it to the list.

I need to numerically solve:
    (1-t)x" + x' - x = f(t), x(0) = x0, x(1) = x1
I've been trying to use (because it's the approach I inherited) an 
elementary finite-difference discretization, but unit tests have shown 
that that approach isn't working.  After a little review, I believe I 
understand the problem: near t=0, the thing is like an 
advection-diffusion equation with diffusion as strong as advection (a 
case I'm sure is treated somewhere in the literature, but not as easily 
findable as:) near t=1, the thing is like the advection-diffusion 
equation I did easily find treated, namely one where advection 
dominates.  Based on that treatment, I understand why an FD approach 
(with a uniform grid) would fail around t=0, and from there it is easy 
to accept that the fact that the thing changes its "nature" over the 
course of its "life," implies that (a uniform grid) FD is probably not a 
very good approach for this equation anywhere on its domain.  I could 
try (and maybe will have to) a variable grid FD approach, but I'd first 
like to try a "shooting" method (for some reason my intuition is telling 
me that in this case this might be more efficient).  This is where you 
all come in: I understand the algorithm and could (may have to) code it 
myself, but if anyone out there already has code for this (in Python 
using numpy, and preferably already under test), might you be willing to 
share?  Thanks in advance,

David Goldsmith

PS: In the interim, I realized that if something like this "pre-exists" 
in a module, that module might be scipy.  Sure enough, scipy has 
integrate.ode and integrate.odeint; Google-ing scipy: integrate.odeint 
help led me to Travis's 2004 "SciPy Tutorial," where I find "There are 
many optional inputs and outputs available when using odeint which can 
help tune the solver.  These additional inputs and outputs are not 
needed much of the time, however..."  Well, is one of those inputs an 
algorithm specifier?  Alternatively, is there a "shooting" algorithm 
implemented elsewhere in scipy?


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642




More information about the Numpy-discussion mailing list