Re: Do loops
- To: mathgroup at smc.vnet.net
- Subject: [mg3995] Re: Do loops
- From: sherod at boussinesq.Colorado.EDU (Scott Herod)
- Date: Tue, 14 May 1996 02:13:41 -0400
- Organization: University of Colorado at Boulder
- Sender: owner-wri-mathgroup at wolfram.com
I've got code that computes solutions to systems of differential-delay
equations using a For loop and restarting things at the ending point of
the last run. Below is the loop from an old version which shows how I
did it a little more clearly.
========================================================================
delay[num_, cT_, z_] := Block[{T = cT,y},
f[t_] := 0.8;
witchargs = {};
For[k = 0, k <= num, k++,
sol = NDSolve[{y'[t] + y[t] == f[t] ( 2 - f[t]^z),
y[T*k] == f[T*(k+1)]}, y, {t,T*k,T*(k+1)}];
f[t_] := Evaluate[(y /. Flatten[sol])][t-T];
witchargs = {witchargs, t <= T*(k+1),
Evaluate[(y /. Flatten[sol])][t]};
];
g[t_] = Apply[Which, Flatten[witchargs]];
ParametricPlot[{g[t],g[t-T]}, {t,T,T*k},
PlotRange -> All]
];
===========================================================================
Notice that the I.C. in the NDSolve routine is found by substituting
into the saved function f[t_] which was creating by shifting t back
by the delay time.
If you have more questions, please write me.
Scott Herod
Applied Mathematics
University of Colorado, Boulder
(sherod at newton.colorado.edu)
In article <4ms4ok$58v at dragonfly.wolfram.com>, g.kokkoris at ic.ac.uk (Giorgos Kokkoris) writes:
|> Dear fellows,
|> I am having a problem in trying to simulate biological invasions using
|> Lotka-Volterra dynamics.
|> I create a do loop with an NDSolve command at the end of it, in which I have
|> to use results from each iteration as my new initial conditions for the next
|> run of the do loop.
|> Obviously it does not work because I don't know how to do it correctly.
|> In each run the results of the next are independent from the results of the
|> previous run.
|> I can be more specific if I have to.
|> Thanks
|> Giorgos
|> Giorgos D. Kokkoris e-mail: g.kokkoris at ic.ac.uk
|> Centre for Population Biology tel: +44-1344-294472
|> Imperial College at Silwood Park fax: +44-1344-873173
|> Ascot, Berks, SL5 7PY
|> U.K.
==== [MESSAGE SEPARATOR] ====