#### Construction of Fuzzy S^4 #### require(zoo) n <- 4 ran <- 100 d <- function(k){ k*(n+2-k) } # dim of block-k num <- function(k){ sum(d(1:k)) } # dim up to block-k N <- (n+1)*(n+2)*(n+3)/6 # num(n+1)=sum(dim(1:(n+1))) ##### for(k in 1:(n+1)){ if(k == 1){ b1 <- zoo(diag(sample(-ran:ran, d(k), replace=TRUE)), 1:d(k)) }else{ for(m in 1:(n+2-k)){ if(m == 1){ b2 <- zoo(matrix(sample(-ran:ran, k^2, replace=TRUE), k,k), 1:(m*k)) }else{ b <- zoo(matrix(sample(-ran:ran, k^2, replace=TRUE),k,k), ((m-1)*k + 1):(m*k)) b2 <- merge.zoo(b2, b, all=TRUE, fill=0) b2 <- zoo(b2, 1:(m*k)) } } b2 <- zoo(b2, (num(k-1)+1):num(k)) b1 <- merge.zoo(b1, b2, all=TRUE, fill=0) b1 <- zoo(b1, 1:num(k)) } } b1 <- zoo(b1, 1:N) S4 <- matrix(b1, N,N) S4 ### S4 gives block-diagonal representation of fuzzy S4 ###