DMUG-Archiv 2003

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Rotationsdiffusion

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

Antworten:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html