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}}] > > >