Re: Re: random walk visualization
- To: mathgroup at smc.vnet.net
- Subject: [mg105291] Re: [mg105258] Re: random walk visualization
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Thu, 26 Nov 2009 06:14:18 -0500 (EST)
- References: <heimn8$5mc$1@smc.vnet.net> <200911251121.GAA13749@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
That "walks" off the PlotRange on some runs and compresses the path too much on others, so I'd suggest: pt = {0, 0}; tbl = Table[pt += RandomInteger[{-1, 1}, 2], {1000}]; limits = {Min@#, Max@#} & /@ Transpose@tbl; Animate[ Show[{Graphics[{Blue, Line[tbl[[1 ;; i]]]}], Graphics[{Red, Thick, Arrowheads[0.03], Arrow[{tbl[[1]], tbl[[i]]}]}]}, PlotRange -> limits], {i, 2, 1000, 1}] Here's another approach, too: limit = 10^6; pts = {pt = pt1 = {0, 0}}; Animate[ Show[{Graphics[{Blue, Line[AppendTo[pts, pt += RandomInteger[{-1, 1}, 2]]]}], Graphics[{Red, Thick, Arrowheads[0.03], Arrow[{pt1, pt}]}]}, PlotRange -> 50 {{-1, 1}, {-1, 1}}], {i, 2, limit, 1}, AnimationRepetitions -> 1] That one can also walk off the chart, and AppendTo gets slow, but it's still interesting. Bobby On Wed, 25 Nov 2009 05:21:21 -0600, Norbert Marxer <marxer at mec.li> wrote: > On Nov 25, 8:35 am, Alexei Boulbitch <Alexei.Boulbi... at iee.lu> wrote: >> Dear Community, >> >> I am making a demonstration for a lecture on random walk. This should >> show the random walk evolving in 2D. The following works nicely: >> >> x := 0; >> y := 0; >> tab = Table[{x += RandomInteger[{-1, 1}], >> y += RandomInteger[{-1, 1}]}, {1000}]; >> imTab = Table[ >> Show[{Graphics[{Blue, Line[tab[[1 ;; i]]]}], >> Graphics[{Red, Thick, Arrowheads[0.03], >> Arrow[{tab[[1]], tab[[i]]}]}]}, >> PlotRange -> {{-40, 40}, {-40, 40}}], {i, 2, 1000} >> ]; >> ListAnimate[imTab] >> >> It however, takes a lot of memory, and few minutes to generate the >> graphics list. That is too long. >> >> If I could directly Animate the graphics instead of generating initially >> a graphics list, it would be much faster. This intends to do such a >> direct animation: >> >> x := 0; >> y := 0; >> tab = Table[{x += RandomInteger[{-1, 1}], >> y += RandomInteger[{-1, 1}]}, {1000}]; >> Animate[Show[{Graphics[{Blue, Line[tab[[1 ;; i]]]}], >> Graphics[{Red, Thick, Arrowheads[0.03], >> Arrow[{tab[[1]], tab[[i]]}]}]}, >> PlotRange -> {{-40, 40}, {-40, 40}}], {i, 2, 1000} >> ] >> >> But it does not work. I cannot understand the reason. Any idea? >> >> Regards, Alexei >> >> -- >> Alexei Boulbitch, Dr., habil. >> Senior Scientist >> >> IEE S.A. >> ZAE Weiergewan >> 11, rue Edmond Reuter >> L-5326 Contern >> Luxembourg >> >> Phone: +352 2454 2566 >> Fax: +352 2454 3566 >> >> Website:www.iee.lu >> >> This e-mail may contain trade secrets or privileged, undisclosed or >> otherwise confidential information. If you are not the intended >> recipient and have received this e-mail in error, you are hereby >> notified that any review, copying or distribution of it is strictly >> prohibited. Please inform us immediately and destroy the original >> transmittal from your system. Thank you for your co-operation. > > Hello > > All you have to do is to include a step size in Animate: i.e. {i, 2, > 1000, 1} > > This works. > > x := 0; > y := 0; > tab = Table[{x += RandomInteger[{-1, 1}], > y += RandomInteger[{-1, 1}]}, {1000}]; > Animate[Show[{Graphics[{Blue, Line[tab[[1 ;; i]]]}], > Graphics[{Red, Thick, Arrowheads[0.03], > Arrow[{tab[[1]], tab[[i]]}]}]}, > PlotRange -> {{-40, 40}, {-40, 40}}], {i, 2, 1000,1} > ] > > Best Regards > Norbert Marxer > -- DrMajorBob at yahoo.com
- References:
- Re: random walk visualization
- From: Norbert Marxer <marxer@mec.li>
- Re: random walk visualization