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)

b) browns(10,1000,50)

Links
MBS Filemaker Plugins - Nachhilfe in Plaidt