MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: multistep iterative methods

  • To: mathgroup at smc.vnet.net
  • Subject: [mg40404] Re: [mg40356] Re: multistep iterative methods
  • From: Selwyn Hollis <selwynh at earthlink.net>
  • Date: Fri, 4 Apr 2003 01:22:04 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Kevin & Jens,

The question was not how to write an efficient general-purpose 
differential equation solver. It was a simpler question about how to 
deploy the basic step in an explicit multistep iterative method (with 
fixed stepsize). Adams-Bashforth just seemed like a good, simple 
example to use. Perhaps I should have phrased things more clearly.

Anyway, so far Hartmut Wolf's technique is about twice as fast as what 
I had been doing and twice as fast as the technique presented by Omega 
Consulting.

----
Selwyn Hollis

On Thursday, April 3, 2003, at 01:40  AM, Kevin J. McCann wrote:

> I agree with Jens comment. Also why just the predictor? If you are 
> going to
> do it this way, I would use the Moulton corrector along with it. Much 
> of the
> recent literature on non-stiff ODE solvers seems to be moving away from
> predictor-corrector methods and suggesting that Runge-Kutta methods be 
> used
> for moderate accuracy/fast derivative function problems, and 
> extrapolation
> methods such as Bulirsch-Stoer for high accuracy. Based on my own
> experience, I concur with this logic.
>
> Kevin
>
> "Selwyn Hollis" <hollisse at mail.armstrong.edu> wrote in message
> news:b6bnnc$3t$1 at smc.vnet.net...
>> I'd like to throw this out as a challenge to the group: What's the 
>> most
>> efficient way to implement in Mathematica an explicit multistep
>> iterative method such as, say, the 4-step Adams-Bashforth method for
>> solving y' = f(t,y):
>>
>> y[k+1]:= y[k] + (h/24)*(55*f[k] - 59*f[k-1] + 37*f[k-2] - 9*f[k-3])
>>
>> where y[0], y[1], y[2], y[3] are "given," and f[i] denotes f[t0 +i*h,
>> y[i]]. The desired output would be the list
>>
>> {y[0], y[1], y[2], ... , y[n]}.
>>
>> A suitable toy problem is
>>
>> y' = -2t*y^2,  y(0) = 1,
>>
>> with h = 0.01, n = 1000 (?), and the starting values taken from the
>> exact solution y = 1/(1+t^2):
>>
>> y[0]=1, y[1] = 0.9999, y[2] = 0.9996, y[3] = .999101.
>>
>> Thanks in advance.
>>
>> -------
>> Selwyn Hollis
>>
>>
>>
>>
>
>
>



  • Prev by Date: Re: Import[ ] & ReadList[ ]; "Word" and "Record"
  • Next by Date: Re: Parallel Kit Question: ParallelDot is much more slow than Dot
  • Previous by thread: Re: multistep iterative methods
  • Next by thread: Q: exporting an animated GIF