Re: How to animate a (scrolling) ListPlot in a procedural Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg93751] Re: How to animate a (scrolling) ListPlot in a procedural Mathematica
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Mon, 24 Nov 2008 06:50:02 -0500 (EST)
- Organization: Uni Leipzig
- References: <eslsqe$q5a$1@smc.vnet.net> <200703080944.EAA15028@smc.vnet.net> <ggdqr9$kc$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi,
try
a = 0.02;
b = 0.20;
c = -65;
d = 6;
Inp = 14;
L = 1000;
v = -70;
u = -20;
tau = 0.2;
t = 0;
V = ConstantArray[v, L];
U = ConstantArray[u, L];
Dynamic[ListPlot[{Reverse[U], Reverse[V]}]]
Do[
t = t + tau;
v = v + tau*(0.04*v^2.0 + 5*v + 140 - u + Inp);
u = u + tau*a*(b*v - u);
If[v > 30, v = c; u = u + d; V[[1]] = 31; h = 0;];
V = RotateRight[V, 1]; V[[1]] = v;
U = RotateRight[U, 1]; U[[1]] = u; Pause[0.001],
{i, 1, 10000}
];
??
Regards
Jens
Chrisantha Fernando wrote:
> Dear Mathgroup,
>
> Currently I have the following code. It is procedural, and goes
> through the while loop generating two arrays, V and U of L = 1000 in
> length, that slides through from i = 0 to 10000, storing the changing
> values of v and u.
>
> I only know how to plot the output of V and U arrays at the END. After
> all this is done.
>
> HOWEVER, I'd really like to be able to visualize the V and U arrays
> whilst the program was running.
>
> How can I do this? I think it needs Manipulate, but I can't work it
> out from the examples.
>
> Many Thanks,
> Chrisantha Fernando.
> National Institute for Medical Research
> London, UK
>
>
> a = 0.02;
> b = 0.20;
> c = -65;
> d = 6;
> Inp = 14;
>
> L = 1000;
>
> v = -70;
> u = -20;
>
> V = ConstantArray[v, L];
> U = ConstantArray[u, L];
>
> tau = 0.2;
> t = 0;
> i = 0;
>
> While[i < 10000,
> i = i + 1 ;
> t = t + tau;
> v = v + tau*(0.04*v^2.0 + 5*v + 140 - u + Inp);
> u = u + tau*a*(b*v - u);
> If[v > 30, v = c ; u = u + d; V[[1]] = 31; h = 0; ];
> V = Prepend[Drop[V, -1], v];
> U = Prepend[Drop[U, -1], u];
>
> ];
>
> V = Reverse[V];
> U = Reverse[U];
>
> Vplot = ListPlot[V, PlotJoined -> True, PlotRange -> All]
> Uplot = ListPlot[U, PlotJoined -> True, PlotRange -> All]
> VU = ListPlot[Table[{V[[i]], U[[i]]}, {i, 1, L}], PlotJoined -> True,
> PlotRange -> { {-100, 20}, {-40, 50}}]
>
>
>