library(BosonSampling)
library(complexplus)
m <- 2
U <- randomUnitary(m)
V <- randomUnitary(m)
M <- matrix(complex(real = rnorm(m^2), imaginary = rnorm(m^2)),m)
Q <- qr.Q(qr(M))
R <- qr.R(qr(M))
Q
R
Q %*% R - M
U2 <- Q
round(U2 %*% t(Conj(U2)))
H <- M + t(Conj(M))
H - t(Conj(H))
U <- matexp(1i * H)
round(U %*% t(Conj(U)))
round(t(Conj(U)) %*% U)
H2 <- matlog(U) * 1i
H2 - H
H2 - t(Conj(H2))
- 非可換トーラスは、正方形の紙から辺のペアの貼り合わせによってトーラスを作るが、普通にトーラスを作る貼り合わせではなく、2つの辺ペアのうち1ペアについて、ずらして貼り合わせる。そのずれが無理数のとき、トーラス上の線が閉じずに無限に続く曲線となる。
library(rgl)
x <- y <- seq(from=0,to=1,length=100)
xy <- as.matrix(expand.grid(x,y))
R1 <- 3
R2 <- 1.7
X <- R1 * cos(xy[,1] * 2 * pi)
Y <- R1 * sin(xy[,1] * 2 * pi)
k <- 1.04
t <- xy[,2] * xy[,1] + (xy[,2]+k) * (1-xy[,1])
Z <- R2 * cos(t * 2 * pi)
X. <- X + R2 * sin(t * 2 * pi) * cos(xy[,1] * 2 * pi)
Y. <- Y + R2 * sin(t * 2 * pi) * sin(xy[,1] * 2 * pi)
rg <- range(c(Z,X.,Y.))
plot3d(c(X.,rg),c(Y.,rg),c(Z,rg),type="l")
for(i in 1:length(y)){
r <- runif(1)
if(r < 0.3){
s <- which(xy[,2] == y[i])
spheres3d(X.[s],Y.[s],Z[s],color=i,radius=0.09)
}
}