三角関数から by RY

  • 2次元の場合
    • 半径1の円がある
    • その周は2\pi
    • 今、この円周上の点の座標を(\cos(\theta),\sin(\theta))で与えることができる
    • この点は、ある基準点(1,0)から角度\thetaだけ円周に沿って移動した点
    • この弧の長さが\thetaであり、この角度も\thetaと言う
    • (\cos(\theta),\sin(\theta))を考えてみよう
    • 2つの点((1,0),(0,1)から、順方向(角\thetaを計っている方向)にどのくらいの距離を行くと、点(\cos(\theta),\sin(\theta))になるかをもって、この点を表すとすると、(\phi_1,\phi_2)=(\theta,\frac{\pi}{2}-\theta)という値のペアが得られる
    • \phi_1+\phi_2=\frac{\pi}{2}であり、点の座標は(\sin(\phi_1),\sin(\phi_2))と表される
    • \phi_1+\phi_2=\frac{\pi}{2}:これは、総量が\frac{\pi}{2}=\frac{S_2}{2^2}を2つの成分に分けるわけ方である(ただし、S_kはk-次元球の表面積(今はk=2なので円周)であり、右辺の分母2^2の指数は次元(k=2)
    • ここで、ちょっと考え方を変えて、\phi_2を使って、第1成分の値を、\phi_1を使って第2成分の値を表すことにすれば、(\cos(\phi_2),\cos(\phi_1))と表せる
  • 3次元を考える
    • 球面の\frac{1}{2^3}を考える
    • この部分球面上に点をとって、その点と、3基準点(1,0,0),(0,1,0),(0,0,1)のそれぞれを通る大円を描く
    • この大円によって、\frac{1}{8}部分球面は3等分できる
    • 今、この部分球面の面積は、単位球表面積の\frac{1}{8}であって、計算でき、3つの値は、(1,0,0),(0,1,0)を"底辺"とする球面上の三角形と、同様に、2基準点を結ぶ大円を"底辺"とする球面上三角形の"面積(立体角)"に分割される
    • この立体角を\phi_{2,3},\phi_{3,1},\phi_{1,2}とする
    • ただし、3つの\phi_{i,j}t\not = i,jのとき第t成分であるとする
    • 定義より\phi_{2,3}+\phi_{3,1}+\phi_{1,2}=\frac{S_3}{2^3}
    • ここで、部分球面上の点のユークリッド座標を(x_1,x_2,x_3)であるとし、(x_1,x_2,x_3)=(f(\phi_{2,3}),f(\phi_{3,1}),f(\phi_{1,2}))であるような関数fが定義できるのだろうか
    • このfは「3次元における三角関数(自由度が2(3変数で、1制約(\phi_{2,3}+\phi_{3,1}+\phi_{1,2}=\frac{S_3}{2^3}))
    • このような分割が球面上の点を一意に定めるが、問題は、そのときに\phi_{i,j}が等しいときにx_k, k \not = i,jが等しいか、ですが、次のように試してみると、そのようことは言えないようである
KyuumenSankaku<-function(v1,v2,v3){
 t12<-acos(sum(v1*v2))
 t23<-acos(sum(v2*v3))
 t31<-acos(sum(v3*v1))

 s1<-acos((cos(t23)-cos(t31)*cos(t12))/(sin(t12)*sin(t31)))
 s2<-acos((cos(t31)-cos(t12)*cos(t23))/(sin(t12)*sin(t23)))
 s3<-acos((cos(t12)-cos(t31)*cos(t23))/(sin(t31)*sin(t23)))

 area<-s1+s2+s3-pi

 list(vs=matrix(c(v1,v2,v3),ncol=3,byrow=TRUE),t=c(t12,t23,t31),s=c(s1,s2,s3),area=area,area2=area/(pi/2))

}
v1<-c(0,1,0)
v2<-c(0,0,1)
library(MCMCpack)
Niter<-1000
v3s<-rdirichlet(Niter,c(1,1,1))
v3s<-sqrt(v3s)
area<-rep(0,Niter)
for(i in 1:Niter){
 #v3<-runif(3)
 #v3<-v3/sqrt(sum(v3^2))
 #v3<-c(1/sqrt(3),1/sqrt(3),1/sqrt(3))

 area[i]<-KyuumenSankaku(v1,v2,v3s[i,])$area2

}

plot(v3s[,1],area,xlab="x1",ylab="rittaikaku")

    • つまり、[tex;(\phi_{i,j})]の値の組によって(x_i')は決まるのであって、k=2のときは、次元が低いために特殊で、それが三角関数(パラメタ数1の関数)であるらしい
    • 逆に言えば、高次元の三角関数は、パラメタ数がk-1の関数である、と。
    • 球面三角形、球面三角法については、こちらこちら
  • では次元を一般化する
  • k次元空間にあるk次元球の表面(k-1次元球面)を考える
    • 基準点(1,0,0,...,0),...(0,0,...,0,1)がk個ある
    • k次元空間に1点ある
    • その点と、k個の基準点から(k-1)個の点を取り出して、全部でk個の点のセットを作る。そのようなセットはkセットある
    • それぞれのセットに立体角がある。(k-1)個の基準点に含まれない基準点がi番目の基準点としたとき、この立体角をi番目の立体角として\phi_iとする
    • \sum_{i=1}^k \phi_i =S_kである
    • (\phi_i)k個の変数からなり、1個の制約\sum_{i=1}^k \phi_i =S_kがあるので、自由度がk-1
    • このk-1自由度のk個の変数で(x_i);i=1,2,...,kが定められる(だろう)
    • x_i=f_k(\phi_i)なる関数f_kはないのだが、[tex:f*1]という多パラメタ関数があるらしく、それが高次元三角関数であるということか。
  • こちらに続く

*1:\phi_1,\phi_2,...,\phi_k