- 3要素で三葉結び目とその拡張版を描いて、が保存されることがわかった(ただし、2つの周期パラメタC1,C2が、定数倍関係の時)
- 要素数を増やす方向で一般化してみよう
- 3要素を、円周の3等分方向としてとったから、n要素にするときには円周のn当分方向としてとることにする
- やはりが保存されることがわかる(C2がC1の定数倍の解き)
- ついでに、(C1=C2=0),(C1=-C2),(C2=0)の場合など、Rソース上、例外処理が必要な場合に対応できるようにソースに場合分けを入れたバージョンが以下。
library(rgl)
nm<-5
myi<-complex(real=0,imaginary=1)
X<-3
npt<-1000
t<-seq(from=0,to=1,length.out=npt)*2*pi*X
delta<-1/nm
C1<-1
C2<-3
k<-1
xs<-matrix(0,nm,length(t))
for(i in 1:nm){
if(C1==C2){
if(C2==0){
xs[i,]<-complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+complex(real=0,imaginary=k*(t+delta*i*2*pi))
}else{
xs[i,]<-1/2*1/(C1+C2)*exp(myi*(C1+C2)*(t+delta*i*2*pi))+complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+k/C2*exp(myi*(C2)*(t+delta*i*2*pi))
}
}else if(C1==-C2){
if(C2==0){
xs[i,]<-complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+complex(real=0,imaginary=k*(t+delta*i*2*pi))
}else{
xs[i,]<-complex(real=0,imaginary=1/2*(t+delta*i*2*pi))+1/2*1/(C1-C2)*exp(myi*(C1-C2)*(t+delta*i*2*pi))+k/C2*exp(myi*(C2)*(t+delta*i*2*pi))
}
}else if(C2==0){
xs[i,]<-1/2*1/(C1+C2)*exp(myi*(C1+C2)*(t+delta*i*2*pi))+1/2*1/(C1-C2)*exp(myi*(C1-C2)*(t+delta*i*2*pi))+complex(real=0,imaginary=k*(t+delta*i*2*pi))
}else{
xs[i,]<-1/2*1/(C1+C2)*exp(myi*(C1+C2)*(t+delta*i*2*pi))+1/2*1/(C1-C2)*exp(myi*(C1-C2)*(t+delta*i*2*pi))+k/C2*exp(myi*(C2)*(t+delta*i*2*pi))
}
}
open3d()
plot3d(Im(xs[1,]),Im(xs[2,]),Im(xs[3,]),col=rainbow(1000),main="虚部")
open3d()
plot3d(Re(xs[1,]),Re(xs[2,]),Re(xs[3,]),col=rainbow(1000),main="実部")
par(mfcol=c(1,2))
ylim<-c(min(Im(xs)),max(Im(xs)))
plot(Im(xs[1,]),type="l",col=1,ylim=ylim,main="Im(x),Im(y),Im(z)")
par(new=TRUE)
plot(Im(xs[2,]),type="l",col=2,ylim=ylim)
par(new=TRUE)
plot(Im(xs[3,]),type="l",col=3,ylim=ylim)
plot(Mod(apply(xs,2,sum)),ylim=c(2*min(-1,Mod(x+y+z)),2*max(1,Mod(x+y+z))),main="保存量Mod(xs)")
par(mfcol=c(1,1))
matplot(Im(t(xs)),type="l")