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