# Code von Franziska Wandtner, 2011, wandtner@math.uni-frankfurt.de ########################################################################## ########################################################################## rm(list=ls()) ########################################################################### # Graphikparameter werden gesetzt # Für Mac quartz(width=6, height=6) par(cex.main=1.3,cex.axis=1.0,cex.lab=1.0) par(font.main=1,mar=c(3,3,4,3)) ########################################################################## n<-100 x<-rnorm(n,0,1) y<-rnorm(n,0,1) c<-ceiling(max(x,y,-x,-y)) ### HIER KANN MAN DIE ÜBERSCHRIFT ÄNDERN plot(x,y,pch=19,cex=0.45,col="black",ylim=c(-c,c),xlim=c(-c,c),main="100 standardnormalverteilte Punkte (X,Y)",xlab="X",ylab="Y") readline("Gerade") #Gerade (3/5t,4/5t) d<-c+1 xx<-c(-3/5*d,3/5*d) yy<-c(-4/5*d,4/5*d) lines(xx,yy,lwd=2) text(3/5*c+0.3,4/5*c,"g",font=2) #Projektion auf g readline("Projektion des ersten Punkts auf g") points(x[1],y[1],col="blue",cex=0.5) arrows(x[1],y[1],(3/5*x[1]+y[1]*4/5)*3/5,(3/5*x[1]+y[1]*4/5)*4/5,length=0.1,col="blue") text(-c+1,c-0.5,"Projektion auf g",col="blue",cex=1) readline("Projektion aller Punkte auf g") for(i in 2:100) { arrows(x[i],y[i],(3/5*x[i]+y[i]*4/5)*3/5,(3/5*x[i]+y[i]*4/5)*4/5,length=0.1,col="blue") } readline("Histogramm") quartz(width=9.5, height=6) par(font.main=1,mar=c(4,2.5,4,2)) par(mfrow=c(1,2)) plot(x,y,pch=19,cex=0.45,col="black",ylim=c(-c,c),xlim=c(-c,c),main="100 standardnormalverteilte Punkte (X,Y)",xlab="",ylab="") lines(xx,yy,lwd=2) text(3/5*c+0.3,4/5*c,"g",font=2) text(-c+1.5,c-0.5,"Projektion auf g",col="blue",cex=1) for(i in 1:100) { arrows(x[i],y[i],(3/5*x[i]+y[i]*4/5)*3/5,(3/5*x[i]+y[i]*4/5)*4/5,length=0.1,col="blue") } step<-0.5 breaks<-seq(-2*c,2*c,step) ### HIER KANN MAN DIE ÜBERSCHRIFT ÄNDERN hist(3/5*x+4/5*y,breaks=breaks,main="Histogramm (100 projizierte Punkte)",col="grey",ylim=c(0,0.5),xlab="3/5*X+4/5*Y",freq=F) readline("Standardnormalverteilung") f<-function(x){1/sqrt(2*pi)*exp(-x^2/2)} xx<-seq(-6,6,0.1) yy<-rep(0,length(xx)) for(i in 1:length(xx)){yy[i]<-f(xx[i])} lines(xx,yy,col="red",lwd=2) text(-4,0.45,"N(0,1)-Dichte",col="red",cex=1) ############################################################################# readline("1000 Punkte") n<-1000 x<-rnorm(n,0,1) y<-rnorm(n,0,1) c<-ceiling(max(x,y,-x,-y)) plot(x,y,pch=19,cex=0.45,col="black",ylim=c(-c,c),xlim=c(-c,c),main="1000 standardnormalverteilte Punkte (X,Y)",xlab="X",ylab="Y") d<-c+1 xx<-c(-3/5*d,3/5*d) yy<-c(-4/5*d,4/5*d) lines(xx,yy,lwd=2) text(3/5*c+0.3,4/5*c,"g",font=2) text(-c+1.5,c-0.5,"Projektion auf g",col="blue",cex=1) for(i in 1:n) { arrows(x[i],y[i],(3/5*x[i]+y[i]*4/5)*3/5,(3/5*x[i]+y[i]*4/5)*4/5,length=0.1,col="blue") } step<-0.5 breaks<-seq(-2*c,2*c,step) hist(3/5*x+4/5*y,breaks=breaks,main="Histogramm (1000 projizierte Punkte)",col="grey",ylim=c(0,0.5),xlab="3/5*X+4/5*Y",freq=F) f<-function(x){1/sqrt(2*pi)*exp(-x^2/2)} xx<-seq(-6,6,0.1) yy<-rep(0,length(xx)) for(i in 1:length(xx)){yy[i]<-f(xx[i])} lines(xx,yy,col="red",lwd=2) text(-4,0.45,"N(0,1)-Dichte",col="red",cex=1) ########################################################################### #Ende readline("Ende") graphics.off()