Liebe Liste,
ich möchte eine diffusionsartige Bewegung eines Punktes auf einer
Kugeloberfläche simulieren. Dazu bin ich von einem Ausgangsvektor
un={1,0,0} gestartet und habe mit
Rotate3D[un,step*Random[]-step/2,step*Random[]-step/2,step*Random[]-step/2]
iterativ Rotationen um zufällige Eulerwinkel ausgeführt. Hier ist das
Program:
no = 1000;
step = .1;
un = {1.0, 0.0, 0.0};
vec = Table[{0, 0, 0}, {i, 1, no}];
Do[
{vec[[i]] = un,
un = Rotate3D[un, step*Random[] - step/2, step*Random[] - step/2,
step*Random[] - step/2]
},
{i, 1, no}]
SpinShow[Show[
Table[Graphics3D[{AbsoluteThickness[4], RGBColor[1, 0, 0],
Point[vec[[i]]]}, PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}},
ImageSize -> 400, ViewPoint -> {4, 2, 2}], {i, 1, no}]],
ImageSize -> 400, ViewPoint -> {4, 2, 2}];
Insbesondere für kleinere Schrittweiten step findet eine schnelle
äquatoriale "Diffusion" statt, aber eine langsame in longitudinaler
Richtung. Ist das ein numerisches Problem oder habe ich bei den Winkeln
etwas verkehrt gemacht? Für grosse Schrittweiten gibt es schnell eine
isotrope Verteilung.
Gruss,
Jens