まずは以下の投稿の内容のまとめから。
【Rで球面幾何学】等差数列(算術数列)① 数直線(Number Line)概念の導入(Introduction)について。
①等差数列表現(Arithmetic Progression Explession)Αn=A1+(n-1)d(ただしΑn=初項(First Term),d=公差(Common Difference))を用いると、以下の単調数列(Monotonic Sequence)が自明の場合(Torivial Case)としてそれぞれこの様に表現される。
- 自然数列(Natural Sequence)N[n]={1,2,3…,1+(n-1)*1}…区間1~無限大Inf、初項1、公差1、一般項1+(n-1)*1
- 整数列(Integer Sequence)Z[n]={0-(n-1)*1,…,-3,-2,-1,0,1,2,3,…1+(n-1)*1}…区間無限小-Inf~0~無限大Inf、初項0、公差±1、一般項0±(n-1)*1
- 偶数列(Even Sequence)e[n]={-2n,…-6,-4,-2,0,2,4,6,…2n}…区間無限小-Inf~0~無限大Inf、初項0、公差±2、一般項±2n
- 奇数列(Odd Sequence)o[n]={2n-1,…-5,-3,-1,1,3,5,…2n+1}…区間無限小-Inf~0~無限大Inf、初項0、公差±2、一般項±2n±1
②自然数の様に片側の端点(End Point)のみが無限大Infもしくは無限小-Infに開き(open)、もう片側が閉じた(closed)半開区間(Semi-Open Interval)で仕切られた算術数列を片側無限算術数列(One-Sided Infinite Arithmetic Sequence)、整数や偶数や奇数の様に初項0を中心に無限大Infと無限小-Infに挟まれた開区間(Open Interval)で仕切られた算術数列を両側無限算術数列(Two-Sided Infinite Arithmetic Sequence)と呼び分けるが、その振る舞いは公差dの符号の向き(Sign direction)によって定まる。
- dの符号が正(plus)ならば、その数列の項(term)は増加数列(Increasing Sequence)を構成し無限大Infに発散(divergence)する。
- dの符号が負(minus)ならば、その数列の項(term)は減少数列(Decreasing Sequence)を構成し無限小-Infに発散(divergence)する。
③自然数列と偶数列と奇数列は整数列の真部分集合(Proper Subset)として存在する。
【初心者向け】集合論①部分集合(subset)と真部分集合(proper subset)について。
ところで数直線(Number line)というと一般に物差しの様な棒状の何かとイメージされがちですが、実際のそれはトポロジー(topology=位相幾何学)的には「(自然数や配列の様に1で始まるタイプを除くと)初項0の原点のみで固定された直線(line)」に外ならず、ぐるりと回って円を描き、目盛りが振られているせいでそれぞれが独特の同心円集合(Concentric Set)を構成するのです。
###片側の端点(End Point)のみが無限大Infもしくは無限小-Infに開かれた片側無限算術数列(One-Sided Infinite Arithmetic Sequence)。
「円を描く関数」の集合を円関数集合(Circular Function Set)と置く。そのうち「半径rの円」についてピタゴラスの定理(Pythagorean theorem)半径r=sqrt(x^2+y^2+z^2+…)から出発する最も直接的な表現は複素数表現(Complex Expression)=極座標表現(Polar Coordinate Expression)における「絶対値(Module)=r,偏角(Augment)=θ{0→2π}」である。見え方としては反時計回りで、偏角(Augment)=θ{0→2π}の推移0→2πがこの向きを担保(Collateral)する。
OIAS01<-function(index){
#同心円の描画
c0=seq(0,2*pi,length=60)
cmp0<-complex(mod=1,arg=c0)
cx=Re(cmp0)
cy=Im(cmp0)
plot(cx,cy,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="One-sided Infinite Arithmetic Sequence",xlab="",ylab="")
par(new=T)#上書き
plot(cx*2,cy*2,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*3,cy*3,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*4,cy*4,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*5,cy*5,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
#同心円領域の塗り潰し(x=1)
polygon(cx, #x
cy, #y
density=c(50), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=2)
polygon(cx*2, #x
cy*2, #y
density=c(40), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*3, #x
cy*3, #y
density=c(30), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*4, #x
cy*4, #y
density=c(20), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*5, #x
cy*5, #y
density=c(10), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
abline(h = 0,col=c(200,200,200))
abline(v = 0,col=c(200,200,200))
segments(0,0,5,0,col=rgb(0,1,0))
par(new=T)#上書き
ax=c(0,cx[index]*1,cx[index]*2,cx[index]*3,cx[index]*4,cx[index]*5)
ay=c(0,cy[index]*1,cy[index]*2,cy[index]*3,cy[index]*4,cy[index]*5)
plot(ax,ay,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),main="",xlab="",ylab="")
}
#アニメーション動作設定
Time_Code<-seq(1,59,by=2)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
OIAS01(i)
}
}, interval = 0.1, movie.name = "OIAS03.gif")
###無限大Infと無限小-Infに挟まれた開区間(Open Interval)で仕切られた両側無限算術数列(Two-Sided Infinite Arithmetic Sequence)
①直線y=0を軸線に選ぶとxの値が+1から-1(-1から+1)にかけて推移するのに対して、yの値は決して0以下(0以上)にならない。見え方としては反時計回り。
TIASx01<-function(index){
#同心円の描画
c0=seq(0,2*pi,length=60)
cx=cos(c0)
cy=sin(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="Two-sided Infinite Arithmetic Sequence",xlab="x",ylab="y")
par(new=T)#上書き
plot(cx*2,cy*2,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*3,cy*3,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*4,cy*4,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*5,cy*5,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
#同心円領域の塗り潰し(x=1)
polygon(cx, #x
cy, #y
density=c(50), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=2)
polygon(cx*2, #x
cy*2, #y
density=c(40), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*3, #x
cy*3, #y
density=c(30), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*4, #x
cy*4, #y
density=c(20), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*5, #x
cy*5, #y
density=c(10), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
abline(h = 0,col=rgb(0,1,0))
abline(v = 0,col=c(200,200,200))
par(new=T)#上書き
axp=c(0,cx[index]*1,cx[index]*2,cx[index]*3,cx[index]*4,cx[index]*5)
ayp=c(0,cy[index]*1,cy[index]*2,cy[index]*3,cy[index]*4,cy[index]*5)
plot(axp,ayp,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),main="",xlab="",ylab="")
par(new=T)#上書き
axm=c(0,cx[index]*-1,cx[index]*-2,cx[index]*-3,cx[index]*-4,cx[index]*-5)
aym=c(0,cy[index]*-1,cy[index]*-2,cy[index]*-3,cy[index]*-4,cy[index]*-5)
plot(axm,aym,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(1,0,0),main="",xlab="",ylab="")
}
#アニメーション動作設定
Time_Code<-seq(1,29,by=2)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
TIASx01(i)
}
}, interval = 0.1, movie.name = "TIASx001.gif")
これは円関数集合(Circle Function Set)でいうとCos(θ)+Sin(θ)iに該当する。
expcos00<-function(Radian){
c0<-seq(0,pi*2,length=61)
cx<-cos(c0)
cy<-sin(c0)
plot(cx,cy,type="l",xlim=c(-1,1),asp=1,ylim=c(-1,1),main="Cos(θ)+Sin(θ)i",xlab="Cos(θ)",ylab="Sin(θ)i")
abline(h=0,col=rgb(1,0,0))
abline(v=0,col=rgb(1,0,0))
# θ位置を書き添える 。
text(cx[Radian],cy[Radian],"θ",col=rgb(0,1,0))
segments(0,0,cx[Radian],cy[Radian],col=rgb(0,1,0))
# 凡例を書き添える 。
legend("topright", legend=c("y=Cos(θ)+Sin(θ)i","x=y=0"), lty =c(1,1),col=c(rgb(0,0,0),rgb(1,0,0)))
}
#アニメーション
library("animation")
Time_Code=seq(1,59, length=30)
saveGIF({
for (i in Time_Code){
expcos00(i)
}
}, interval = 0.1, movie.name = "expcos00.gif")
②一方直線x=0を軸線に選ぶとyの値が+1から-1(-1から+1)にかけて推移するのに対して、xの値は決して0以下(0以上)にならない。見え方としては時計回り。
TIASy01<-function(index){
#同心円の描画
c0=seq(0,2*pi,length=60)
cx=sin(c0)
cy=cos(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="Two-sided Infinite Arithmetic Sequence",xlab="x",ylab="y")
par(new=T)#上書き
plot(cx*2,cy*2,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*3,cy*3,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*4,cy*4,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*5,cy*5,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
#同心円領域の塗り潰し(x=1)
polygon(cx, #x
cy, #y
density=c(50), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=2)
polygon(cx*2, #x
cy*2, #y
density=c(40), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*3, #x
cy*3, #y
density=c(30), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*4, #x
cy*4, #y
density=c(20), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*5, #x
cy*5, #y
density=c(10), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
abline(h = 0,col=c(200,200,200))
abline(v = 0,col=rgb(0,1,0))
par(new=T)#上書き
axp=c(0,cx[index]*1,cx[index]*2,cx[index]*3,cx[index]*4,cx[index]*5)
ayp=c(0,cy[index]*1,cy[index]*2,cy[index]*3,cy[index]*4,cy[index]*5)
plot(ayp,axp,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),main="",xlab="",ylab="")
par(new=T)#上書き
axm=c(0,cx[index]*-1,cx[index]*-2,cx[index]*-3,cx[index]*-4,cx[index]*-5)
aym=c(0,cy[index]*-1,cy[index]*-2,cy[index]*-3,cy[index]*-4,cy[index]*-5)
plot(aym,axm,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(1,0,0),main="",xlab="",ylab="")
}
#アニメーション動作設定
Time_Code<-rev(c(seq(45,59,by=2),seq(1,15,by=2)))
#Time_Code<-seq(1,59,by=2)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
TIASy01(i)
}
}, interval = 0.1, movie.name = "TIASy0107.gif")
これは円関数集合(Circle Function Set)でいうとSin(θ)+Cos(θ)iに該当する。
expcos0R<-function(Radian){
c0<-seq(0,pi*2,length=61)
cx<-sin(c0)
cy<-cos(c0)
plot(cx,cy,type="l",xlim=c(-1,1),asp=1,ylim=c(-1,1),main="Sin(θ)+Cos(θ)i",xlab="Sin(θ)",ylab="Cos(θ)i")
abline(h=0,col=rgb(1,0,0))
abline(v=0,col=rgb(1,0,0))
# θ位置を書き添える 。
text(cx[Radian],cy[Radian],"θ",col=rgb(0,1,0))
segments(0,0,cx[Radian],cy[Radian],col=rgb(0,1,0))
# 凡例を書き添える 。
legend("topright", legend=c("y=Cos(θ)+Sin(θ)i","x=y=0"), lty =c(1,1),col=c(rgb(0,0,0),rgb(1,0,0)))
}
#アニメーション
library("animation")
Time_Code=seq(1,59, length=30)
saveGIF({
for (i in Time_Code){
expcos0R(i)
}
}, interval = 0.1, movie.name = "expcos0R.gif")
【無限遠点を巡る数理】「半径だけの世界」から「直径もある世界」へ
まだこの時点では「偶奇性(Evenness)」問題は表面化してきません。その事実が確認出来たので、とりあえず以下続報…