Seminar Simulation stochastischer Modelle

6. Zwei Dimensionen in R (Parallelverarbeitung)

Dieses Programm ist das gleiche wie auf Seite 4, aber alle Pfade werden parallel gezeichnet, so dass man beim Wachsen zusehen kann.

Quellcode in R


# Funktion für Brownsche Bewegung in 2D
# Kurven werden gleichzeitig gezeichnet

browns <- function(anzahl,schritte,p,zeit) {
w<-0:359

# Legende Zeichnen
plot(-p:p, -p:p, cex=.1, type="n",main="Brownsche Bewegung 2D",xlab="x",ylab="y")

# Array für aktuelle Position erzeugen
posx<-rep(0,schritte+1)
posy<-rep(0,schritte+1)

# Schleife für die Schritte
zz<-0
while (zz<schritte) {
   nn<-1
   # Schleife für die einzelnen Grafen
   while (nn<=anzahl) {
      # einen Winkel auswählen (gleichverteilt)
      n<-sample(w,1)

      # Entfernung nach Gauss Normalverteilt auswählen
      # dadurch wird Epsilon automatisch quadratisch skaliert
      # alternativ Entfernung in Epsilon und Zeit in Epsilon exponential
      e<-rnorm(1,0,1)

      # Winkel umrechnen in radial
      m<-n[1]/180.0*pi

      # Neue Position ermitteln
      nposx<-posx[nn]+sin(m)*e
      nposy<-posy[nn]+cos(m)*e

      # Neue Linie zeichnen
      lines(c(posx[nn],nposx),c(posy[nn],nposy))

      # Position für nächsten durchlauf speichern
      posx[nn]<-nposx
      posy[nn]<-nposy
   
      # Ende innere Schleife
      nn<-nn+1
      }

   # Warten, damit man Parallelität sieht
   Sys.sleep(zeit)
   # Ende äußere Schleife
   zz<-zz+1
   }
   # ende
}


print ("browns(anzahl,schritte,skalierung,sekunden)")
browns(10,1,10,1)




Links
MBS REAL studio Chart Plugins - Pfarrgemeinde St. Arnulf Nickenich

In Erinnerung and den lächelnden Mac Plus, den man beim Start von Mac OS 1 bis X.1 sieht...