- 結び目は2次元のわっかを3次元に置いた状態
- だから、「閉じた曲線」として表せる
- 閉じた曲線については、ここ数日、やってきた通りで、パラメタを置くと、周期的に同じ位置に戻ってきてしまうような座標定義のこと
- また、曲線の位置を陽に表さずに、偏微分で表す方法もあった
- 三葉結び目を考えてみる(Mathematicaのウェブレファレンスの図は次の通り)
- これの特徴はなんだろう
- 3方向について平等(対称)
- 3方向をx,y,zとして、その一つを考えた上で、位相をずつずらしてやればよいので、xのみを考える
- x方向は、図の縦軸とする
- xについては、移動の方向は、増える方向、減る方向、増える方向、減る方向、と方向を変えた上でもとに戻る
- 方向転換点は、左右中央に2か所、中央からはずれた左右対称な位置に2か所ある
- 移動速度は、結び目を一方方向に進んでいるとすれば、常に正
- その速さの絶対値は大きい時と小さいときがあるが、方向転換する4か所のうち、左右中央の2か所のその上下中央よりの点を境に、増減が逆転する。左右中央の2か所の上側の点でも、増減が逆転している
- つまり、(方向増・速さ絶対値増)→(方向減・速さ絶対値増)→(方向増・速さ絶対値減)→(方向減・速さ絶対値減)の4相がある
- 2つの異なる周期があって、それが2対1の周波数になっていることがわかる
- は、このような位置変化に対応する
- ここで、kが1より大なら、速さの絶対値が正なので、条件を満たす
- このようにパラメタ化してみると、を速さの絶対値項と方向項とを三角関数で表すことで、それらに周期性をもたせるときには、2つの項の周期(の比)と、速さの絶対値項の大小を決めるk(速さの絶対値項と言ったが、この項が0になったり負になったりしてもよいようにkの定義域を拡張してやると、より多様な曲線に対応付けすることができるので、そうしてしまおう)
- y,zの相をずらせば
- 掲載図は、結び目ができるようにとし、2つの周期をいろいろに変えて描いたもの
- これをRで書けば
library(rgl)
X<-5
npt<-1000
t<-seq(from=0,to=1,length.out=npt)*2*pi*X
C1<-1
C2<-2.5
k<-1.5
x<-y<-z<-rep(0,length(t))
x[1]<-runif(1)
y[1]<-runif(1)
z[1]<-runif(1)
for(i in 2:length(t)){
x[i]<-x[i-1]+(cos(C1*(t[i-1]+0))+k)*cos(C2*(t[i-1]+0))
y[i]<-y[i-1]+(cos(C1*(t[i-1]+2/3*pi))+k)*cos(C2*(t[i-1]+2/3*pi))
z[i]<-z[i-1]+(cos(C1*(t[i-1]+4/3*pi))+k)*cos(C2*(t[i-1]+4/3*pi))
}
plot3d(x,y,z,col=rainbow(1000),cex=0.1)
ylim<-c(min(x,y,z),max(x,y,z))
plot(x,type="l",col=1,ylim=ylim)
par(new=TRUE)
plot(y,type="l",col=2,ylim=ylim)
par(new=TRUE)
plot(z,type="l",col=3,ylim=ylim)
C12s<-matrix(0,9,2)
C12s[1,]<-c(0,0)
C12s[2,]<-c(0,1)
C12s[4,]<-c(1,1)
C12s[5,]<-c(1,2)
C12s[6,]<-c(1,4)
C12s[7,]<-c(1,2.1)
C12s[8,]<-c(1,sqrt(2))
C12s[9,]<-c(1,sqrt(5))
par(mfcol=c())
for(c in 1:length(C12s[,1])){
C1<-C12s[c,1]
C2<-C12s[c,2]
x<-y<-z<-rep(0,length(t))
x[1]<-runif(1)
y[1]<-runif(1)
z[1]<-runif(1)
for(i in 2:length(t)){
x[i]<-x[i-1]+(cos(C1*(t[i-1]+0))+k)*cos(C2*(t[i-1]+0))
y[i]<-y[i-1]+(cos(C1*(t[i-1]+2/3*pi))+k)*cos(C2*(t[i-1]+2/3*pi))
z[i]<-z[i-1]+(cos(C1*(t[i-1]+4/3*pi))+k)*cos(C2*(t[i-1]+4/3*pi))
}
open3d()
plot3d(x,y,z,col=rainbow(1000),cex=0.1)
}
- 微分から出発したが
- は積分できて
- [tex:\frac{dx}{dt}=\frac{1}{2}(\cos*1+k\cos(C2 \times t)]から
- [tex:x=\frac{1}{2} (\frac{1}{C1+C2} \sin*2 + \frac{k}{C2} \sin(C2 t)+Const]
- Rで書けば
X<-4
npt<-1000
t<-seq(from=0,to=1,length.out=npt)*2*pi*X
C1<-1
C2<-2.4
k<-2
x<-1/(2*(C1+C2))*sin((C1+C2)*t)+1/(2*(C1-C2))*sin((C1-C2)*t)+k/C2*sin(C2*t)
y<-1/(2*(C1+C2))*sin((C1+C2)*(t+2/3*pi))+1/(2*(C1-C2))*sin((C1-C2)*(t+2/3*pi))+k/C2*sin(C2*(t+2/3*pi))
z<-1/(2*(C1+C2))*sin((C1+C2)*(t+4/3*pi))+1/(2*(C1-C2))*sin((C1-C2)*(t+4/3*pi))+k/C2*sin(C2*(t+4/3*pi))
plot3d(x,y,z,col=rainbow(1000))
- 三角関数は複素数でと表せることを使えば、x,y,zの陽なパラメタ表示も複素係数の指数関数の実部(もしくは虚部)として表せる
myi<-complex(real=0,imaginary=1)
xz<-Im(1/2*1/(C1+C2)*exp(myi*(C1+C2)*t))+Im(1/2*1/(C1-C2)*exp(myi*(C1-C2)*t))+Im(k/C2*exp(myi*(C2)*t))
yz<-Im(1/2*1/(C1+C2)*exp(myi*(C1+C2)*(t+2/3*pi)))+Im(1/2*1/(C1-C2)*exp(myi*(C1-C2)*(t+2/3*pi)))+Im(k/C2*exp(myi*(C2)*(t+2/3*pi)))
zz<-Im(1/2*1/(C1+C2)*exp(myi*(C1+C2)*(t+4/3*pi)))+Im(1/2*1/(C1-C2)*exp(myi*(C1-C2)*(t+4/3*pi)))+Im(k/C2*exp(myi*(C2)*(t+4/3*pi)))
par(mfcol=c(1,3))
plot(1/(2*(C1+C2))*sin((C1+C2)*t),Im(1/2*1/(C1+C2)*exp(myi*(C1+C2)*t)))
plot(1/(2*(C1-C2))*sin((C1-C2)*t),Im(1/2*1/(C1-C2)*exp(myi*(C1-C2)*t)))
plot(k/C2*sin(C2*t),Im(k/C2*exp(myi*(C2)*t)))
par(mfcol=c(1,1))
plot3d(xz,yz,zz,col=rainbow(1000))