- 前の記事でトーラスは2重周期だった
- 数字を見たら、一般化しようということで、2重をk重にしてみよう
- (2重周期の)トーラスの座標を作るときには、まず、大きな円を描き、その円周上の点に、円周と垂直に交わるように小さな円を描いた
- これを繰り返していけばよい
- (2重周期の)トーラスは3次元空間に作られる
- k重周期のトーラスはk+1次元空間に作られる
- i重目はi-1重目より半径を短くするのがよいだろう(そうしなくてもよいのかもしれない。定義次第か…)
- 座標の与え方は多次元球の角座標から正規直交座標に直すのと同じように、cos,sinのうち、sinの分を新規に導入する軸の座標そのものとし、cosの分をすでに与えた座標(の増分)に応じて与えることとする
k<-3
Rs<-1:k
Rs[1]<-1
Rs[2]<-0.9
Rs[3]<-0.6
r<-0.9
Rs<-r^(1:k)
Ps<-rpois(k,30)
Ps[1]<-3
Ps[2]<-11
Ps[3]<-23
library(schoolmath)
Ps<-sample(primes(1,100)[3:9],k)
Ps
n<-1000
t<-seq(from=0,to=1,length.out=n)*2*pi
MultDimTorus<-function(Rs,v){
C<-cos(v)
S<-sin(v)
ret<-rep(0,length(v)+1)
preret<-ret
for(i in 1:length(v)){
if(i==1){
ret[1]<-Rs[1]*C[1]
ret[2]<-Rs[1]*S[1]
}else{
incr<-ret-preret
preret<-ret
incr<-incr/sqrt(sum(incr^2))
ret<-ret+Rs[i]*C[i]*incr
ret[i+1]<-Rs[i]*S[i]
}
}
return(ret)
}
Xs<-matrix(0,length(t),k+1)
for(i in 1:length(t)){
Xs[i,]<-MultDimTorus(Rs,t[i]*Ps)
}
plot3d(Xs[,1],Xs[,2],Xs[,3],cex=0.1,col=gray((1:length(t))/length(t)),xlim=xlim,ylim=ylim,zlim=zlim)
plot3d(Xs[,1],Xs[,2],Xs[,3],cex=0.1,col=gray((1:length(t))/length(t)))
sphereCoords<-function(v){
C<-cos(v)
S<-sin(v)
ret<-c(1,S)
for(i in 1:length(v)){
for(j in i:length(v)){
ret[i]<-ret[i]*C[j]
}
}
return(ret)
}
- メモ
- ??????
- 曲線が乗っている多様体のトポロジータイプと、微分方程式の周期関数の次数とが関係するのか?トポロジータイプと変数同士の関係を描いたグラフとは一緒?
- ??????
- 未確認。
- のとき
- としてであるようにとしたいとする
- が条件か…
- の条件を外すとが条件か…
- とするとが条件か…