# Franziska Wandtner, 2011, wandtner@math.uni-frankfurt.de ########################################################################## # Wir beobachten, wieviele von n Punkten in in Teilquadrat mit Fläche 1/n fallen. ########################################################################## rm(list=ls()) ############################ # Anzahl der Punkte n<-100 #Anzahl Wiederholungen k<-10000 ########################################################################### #Graphikparameter festlegen #Für Mac: quartz(width=6, height=6, pointsize = 12, family = "Helvetica", antialias = TRUE) ########################## Unterprogramme ################################## # Graphik x<-c(0, 0, sqrt(1/n), sqrt(1/n)) y<-c(0, sqrt(1/n), sqrt(1/n), 0) graph<-function() { par(mar=c(0,0,1,0),oma=c(0,0,1,0)) plot(c(0,1),c(0,1),t="n",axes=F,xlab="",ylab="",main=main) polygon(c(0,1,1,0),c(0,0,1,1)) # Figur polygon(x,y,col="turquoise") } ######################### Vorbereitungen ################################### # p ausrechnen p<-(x[1]*y[2]-x[2]*y[1])+(x[2]*y[3]-x[3]*y[2])+(x[3]*y[4]-x[4]*y[3])+(x[4]*y[1]-x[1]*y[4]) p<-abs(p/2) ############################### Hauptprogramm ############################### # n PUNKTE # Plot vorbereiten main<-"Wieviel Punkte fallen ins blaue Quadrat?" graph() xr<-runif(n) yr<-runif(n) points(xr,yr,col="gray2",cex=0.8,pch=19) #Beschriftung text(0.8,0.1,paste("n =",n)) # Analyse: Ist Punkt drinnen? drinnen<-0 for(i in 1:n) { if(xr[i]<=sqrt(1/n)&yr[i]<=sqrt(1/n)){drinnen<-drinnen+1} } drinnen #Schätzer für relativen Anteil pdach1<-drinnen/n readline("Anzahl Treffer") main<- "Anzahl der Treffer" graph() text(0.8,0.1,paste("n =",n)) points(xr,yr,col="azure4",cex=0.8,pch=19) text(0.7,0.85,paste("Anzahl der Treffer:",round(pdach1*n,2))) readline("Die Anzahl der Treffer ist zufällig.") text(0.5, 0.5,"Die Anzahl der Treffer ist zufällig.",col="red",cex=1.3,font=2) readline("Wie sieht die Verteilung dieser ZV aus") text(0.5, 0.45,"Wie sieht die Verteilung dieser Zufallsvariablen aus?",col="red",cex=1.3,font=2) readline("Wiederhole k Mal !") text(0.5, 0.40,paste("Wiederhole", k, "Mal!"),col="red",cex=1.3,font=2) ################## readline("k Schätzungen - dauert eine Weile!!") #VIELE SCHÄTZUNGEN: dauert eine Weile!! # k Schätzungen k<-k drinnen<-rep(0,k) for(j in 1:k) { xr<-runif(n) yr<-runif(n) # Analyse: Ist Punkt drinnen? for(i in 1:n) { if(xr[i]<=sqrt(1/n)&yr[i]<=sqrt(1/n)){drinnen[j]<-drinnen[j]+1} } } pdach<-drinnen breaks<-seq(max(min(pdach)-0.1,0),max(pdach)+0.1,by=0.1) quartz(width=8, height=6, pointsize = 12, family = "Helvetica", antialias = TRUE) # Balkendiagramm hist(drinnen,breaks=breaks,xlab=paste("Anzahl Treffer (von",n, "Punkten)"),freq=T,main=paste("Häufigkeiten der Trefferanzahlen (in",k, "Wiederholungen)"),col="black") ############################################################################# readline("Ende") graphics.off()