# functions maluj <- function(u) { q <- cbind(0,0); a <- matrix(nrow=0,ncol=2); b <- matrix(nrow=0,ncol=2); for (i in 1:nrow(u)) { m <- rep(u[i,],each=nrow(q)); q0 <- q-m/2; q1 <- q+m/2; m <- rep(u[i,],each=nrow(a)); a0 <- a-m/2; a1 <- a+m/2; m <- rep(u[i,],each=nrow(b)); b0 <- b-m/2; b1 <- b+m/2; q <- rbind(q0,q1); a <- rbind(a0,a1,q0); b <- rbind(b0,b1,q1); } r <- 0.6*sqrt(nrow(u)); plot(0,0,xlim=c(-r,r),ylim=c(-r,r),type="n",xlab="",ylab=""); arrows(a[,1],a[,2],b[,1],b[,2],length=0,code=3); } uni <- function(x) { x/sqrt(sum(x^2)); } ortog <- function(n) { u <- uni(rnorm(n)); v <- uni(rnorm(n)); cbind(uni(u+v),uni(u-v)); } krychle <- function(n,ind=NULL) { if (is.null(ind)) { maluj(ortog(n)); } else { ind2 <- sprintf("%02d",as.integer(ind)); jmeno <- paste("dim",n,"i",ind2,".png",sep=""); png(file=jmeno); maluj(ortog(n)); dev.off(); } }