四元数の内積が欲しかったのでメモ。
四元数は2つの虚数単位, , (), と4つの実数, , , を用いて
と書ける。これを実数部分(スカラー部)と虚部(ベクトル部)に分けて
とも書く。
いま、ふたつの四元数, について、積は
となる。
計算して確かめる。三角形の面積も計算してみる。
set.seed(1234) xyz <- matrix(runif(6), 3) q12 <- as.quaternion(rbind(0, xyz)) # xyz での内積 xyz[,1] %*% xyz[,2] # 四元数での内積 prod(Re(q12)) - Re(q12[1] * q12[2]) # xyz での三角形の面積 sqrt(sum(mapply(function(r) det(cbind(rbind(t(xyz[c(r, r%%3+1),]), 0), 1))^2 ,seq(3))))/2 # 四元数での三角形の面積 Mod(Im(q12[1] * q12[2]))/2