####################################### # # Räumliche Statistik WS 2010 / 2011 # Blatt 1, Aufgabe 4 # ##################################### # Erzeuge Realisierungen einer exponentialverteilten # Zufallsvariablen mit Parameter lambda>0, # d.h. Erwartungswert 1 / lambda # Transformation siehe Übungsblatt. getExpRV<-function(lambda) { value<-runif(1) value<- (-1.0 * log(value) / lambda) return(value) } # Erzeuge Realisierungen einer Poissonverteilten # Zufallsvariablen mit Parameter lambda>0, # d.h. Erwartungswert lambda # Algorithmus siehe Übungsblatt. getPoissonRV<-function(lambda) { done<-FALSE value<-0 counter<-0 while(!done) { value<-value + getExpRV(lambda) if(value<=1) { counter<-counter+1 } else { done<-TRUE } } return(counter) } # Nutze die bedingte Gleichverteilungseigenschaft # des Poisson-Prozesses, um eine Realisierung # mit Parameter lambda auf einem rechteckigen # Beobachtungsfenster zu erzeugen. getPoissonPP<-function(window_x_lim, window_y_lim, lambda) { windowSize<-abs(window_x_lim[2]-window_x_lim[1])*abs(window_y_lim[2]-window_y_lim[1]) k<-getPoissonRV(lambda*windowSize) points<-c() for(i in 1:k) { x<-runif(1,min=window_x_lim[1], max=window_x_lim[2]) y<-runif(1,min=window_y_lim[1], max=window_y_lim[2]) points<-rbind(points, c(x,y)) } return(points) } # Visualisiere die Punkte im vorgegebenen Beobachtungsfenster visualizePoints<-function(window_x_lim, window_y_lim, points, filename) { png(filename) plot(window_x_lim, window_y_lim, xlab="", ylab="", main="Realisierung eines Poisson-Prozesses", type="n") par(mfrow=c(1,1), pch=19, lty=3) points(points) dev.off() return(TRUE) } points<-getPoissonPP(c(0,100), c(0,100), 0.01) #print(points) visualizePoints(c(0,100), c(0,100),points, "c:/Ole/teaching/WiSe10-11/Räumliche Statistik/Blatt1/Lösung_Blatt1/output.png")