det=+1の直交行列を作る〜リー群の寄り道〜

  • リー群とリー代数では、リー代数に正方行列があって、リー群はその行列の指数関数という関係があった
  • その話の中で、リー代数の方の正方行列が反対称行列であるとき、対応する指数行列はdet=+1の直交行列になる、という関係があった
  • じゃあ、適当に反対称行列を作って、その指数行列を作れば、それで適当なdet=+1の直交行列が作れるね、ということになる
  • やってみる
n <- 4
A <- matrix(rnorm(n^2),n,n)
A2 <- A + t(A)
A3 <- A2
A3[upper.tri(A3)] <- -A3[upper.tri(A3)]
diag(A3) <- 0
library(expm)
A4 <- expm(A3)
A4 %*% t(A4)
  • ちなみにGPArotationパッケージのRandom.Start()関数はQRdecompositionを使って、回転行列をランダムに作っている
library(GPArotation)
B4 <- Random.Start(n)
B4 %*% t(B4)