Re: zigzag & random walk
- To: mathgroup at smc.vnet.net
- Subject: [mg22334] Re: [mg22292] zigzag & random walk
- From: "Pascal BAES" <pascal.baes at skynet.be>
- Date: Fri, 25 Feb 2000 21:13:24 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
>I'm searching for the formulas known as ZigZag and Long Random Walk.
>Can anyone help me to get the formulas or to a place where I can find
>more in formation ?
(*Skuse my Destroystyle: I'm Frenchy and Artist.(Not American or German
Scientist)
Cf that old stuf Maeder Package "Random Walk.m"
I used very much it to produce NoisySound (MassOfNonSinusoidaleVibration)
and CrispyAnimation
Thinks to eternal Mader...
there somme modified version, Whith "Seed control"*)
(*MadWalk1D:*)
grange = N[{0, 2Pi}];
randomDelta1 := With[{dir1 = Random[Real, grange]},Sin[ dir1]];
MadWalk1D[i_Integer,n_Integer] :=
(SeedRandom[i]; NestList[ # + randomDelta1&,0, n ]);
(*Thats Integer one: RandIntWalk*)
RandIntWalk[i_Integer,n_Integer] :=(SeedRandom[i];
NestList[(#+(-1)^Random[Integer])&,0,n])
(*thats 2D one:
MadWalk2D*)
grange = N[{0, 2Pi}];
randomDelta2 := With[{dir1 = Random[Real, grange]},{Sin[ dir1],Cos[dir1]}];
MadWalk2D[i_Integer,n_Integer] :=
(SeedRandom[i]; NestList[ # + randomDelta2&,{0,0}, n ]);
(*Thats 2D one funny, from Point[{a,b}] to Point[{c,d}]
MadWalk2DFromTo*)
MadWalk2DFromTo[i_Integer,n_Integer,{a_Real,b_Real},{c_Real,d_Real}]:=
Plus[Join[{{a,b}},
N[MapThread[
Times[Plus[#1,#2],#3]&,{Table[{a,b},{Length[MadWalk2D[i,n]]}],
MadWalk2D[i,n],
Table[((1+Cos[k Pi])/2),{k,1/Length[MadWalk2D[i,n]],1,
1/Length[MadWalk2D[i,n]]}]}]]],
Reverse[Join[{{c,d}},
N[MapThread[
Times[Plus[#1,#2],#3]&,{Table[{c,d},{Length[MadWalk2D[i,n]]}],
MadWalk2D[i,n],
Table[((1+Cos[k Pi])/2),{k,1/Length[MadWalk2D[i,n]],1,
1/Length[MadWalk2D[i,n]]}]}]]]]];
(*MadWalk3D*)
grange = N[{0, 2Pi}];
randomDelta3 :=
With[{dir1 = Random[Real, grange],dir2 = Random[Real, grange]},{
Cos[dir1] Cos[dir2],Cos[dir1]Sin[ dir2],Sin[ dir1]}];
MadWalk3D[i_Integer,n_Integer] :=
(SeedRandom[i]; NestList[ # + randomDelta3&,{0,0,0}, n ]);
(*ex1:*)
ListPlay[Join[Flatten[MapThread[List,Table[MadWalk1D[i,200],{i,0,90}]]],
Reverse[Flatten[MapThread[List,Table[MadWalk1D[i,200],{i,0,90}]]]]]];
(*ex2:*)
Show[Graphics[{Table[Line[MadWalk2D[i,1000]],{i,110,115}],
{PointSize[0.02], RGBColor[1,0,0] ,Point[{0,0}]}}]];
(*ex3:*)
A={-10.,-10.};
B={10.,10.};
Table[Show[
Graphics[{
Table[Line[MadWalk2DFromTo[i,pe,A,B]],{i,0,10}],{PointSize[0.05],
RGBColor[1,0,0] ,Point[A]},{PointSize[0.05], RGBColor[0,0,1] ,
Point[B]}}],PlotRange->{{-15,15},{-15,15}}],{pe,20,50}]
(*ex4:*)
Table[Show[
Graphics3D[{
Table[Line[MadWalk3D[i,n]],{i,0,99}],{PointSize[0.2],
RGBColor[1,0,0] ,Point[{0,0,0}]}}],
PlotRange->{{-10,10},{-10,10},{-10,10}}],{n,10,50,2}];
Hope thats help
Pascal BAES
La Pose Longue
PataPhysik Lab