Seminar Simulation stochastischer Modelle

4. Zwei Dimensionen in R

Quellcode in R


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

browns <- function(anzahl,schritte,p) {

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

# Array mit allen Winkeln
w<-0:359

# Beginn bei Graf 0
zz<-0
while (zz<anzahl) {

   # Alle Grafen starten in 0/0
   posx<-0
   posy<-0
   
   # von 0 bis schritte-1
   
   nn<-0
   while (nn<schritte) {
      # 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+sin(m)*e
      nposy<-posy+cos(m)*e

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

      # Position für nächsten durchlauf speichern
      posx<-nposx
      posy<-nposy
      
      # Ende innere Schleife
      nn<-nn+1
   }
   # Ende äußere Schleife
   zz<-zz+1
}

   # ende
}

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

Screenshot

a) browns(1,1000,30)

Screenshot

b) browns(10,1000,50)

Screenshot



Links
MBS Filemaker Plugins - Nachhilfe in Plaidt

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