【Rで球面幾何学】等比数列(幾何数列)①その基本的性質について。
等比数列(Geometric Progression)または幾何数列(Geometric Sequence)の発散(Divergence)と収束(Convergence)の条件については、また項を改めて。
説明の多くが以下の様に大雑把にも程がある内容だったので後回しにしたのですが…
等比数列(geometric progression/geometric sequence=幾何数列)) - Wikipedia
公比rについて、
①**r>1の場合**…初項の符号によって正もしくは負の無限大に発散する。
②**rが<−1か<1の場合**…0に収束する。
③**r=−1の場合**…aと−aの値のみを交互にとる(振動)。
④**r<−1の場合**…振動する(発散する。正もしくは負の無限大に発散するということではない)。
よく考えてみれば目盛りを切って各点の振る舞いに計測基準を与える数直線(Number line)そのものは「(添字の無限小-Infから0未満までが0と1の間、0そのものが1,0以上が1以上に転写された)片側の端点(End Point)のみが無限大Infもしくは無限小-Infに開かれた片側無限算術数列(One-Sided Infinite Arithmetic Sequence)」として導入するのが正しいのかもしれません。
###①(初項a,公差0の等差数列と完全に合致する)初項a,公比1の等差数列を「目盛り」として射影した場合。
【Rで球面幾何学】等差数列(算術数列)① 数直線(Number Line)概念の導入(Introduction)について。
まさしく「等差数列そのもの」という感じ。
OIAS01<-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="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))
par(new=T)#上書き
ax1=c(0,cx[index]*1)
ay1=c(0,cy[index]*1)
plot(ax1,ay1,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(1,0,0),main="",xlab="",ylab="")
par(new=T)#上書き
ax2=c(cx[index]*1,cx[index]*2,cx[index]*3,cx[index]*4,cx[index]*5)
ay2=c(cy[index]*1,cy[index]*2,cy[index]*3,cy[index]*4,cy[index]*5)
plot(ax2,ay2,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),main="",xlab="",ylab="")
segments(0,0,5,0,col=rgb(0,1,0))
}
#アニメーション動作設定
Time_Code<-seq(1,59,by=2)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
OIAS01(i)
}
}, interval = 0.1, movie.name = "OIAS04.gif")
###②指数尺(すなわち自然指数関数e^xの値)を「目盛り」として射影した場合。
【Rで球面幾何学】指数・対数関数の発見
随分それっぽくなりました。状況によっては十分選択肢に入る範囲。
OIAS01<-function(index){
#同心円の描画
c0=seq(0,2*pi,length=60)
cx=cos(c0)
cy=sin(c0)
plot(cx*exp(-2),cy*exp(-2),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*exp(-1),cy*exp(-1),asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*exp(0),cy*exp(0),asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*exp(1),cy*exp(1),asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
par(new=T)#上書き
plot(cx*exp(2),cy*exp(2),asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="",xlab="",ylab="")
#同心円領域の塗り潰し(x=1)
polygon(cx*exp(-2), #x
cy*exp(-2), #y
density=c(50), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=2)
polygon(cx*exp(-1), #x
cy*exp(-1), #y
density=c(40), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=3)
polygon(cx*exp(0), #x
cy*exp(0), #y
density=c(30), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=4)
polygon(cx*exp(1), #x
cy*exp(1), #y
density=c(20), #塗りつぶす濃度
angle=c(45), #塗りつぶす斜線の角度
col=c(200,200,200)) #塗りつぶす色
#同心円領域の塗り潰し(x=5)
polygon(cx*exp(2), #x
cy*exp(2), #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))
par(new=T)#上書き
ax1=c(0,cx[index]*exp(-2),cx[index]*exp(-1),cx[index]*exp(0))
ay1=c(0,cy[index]*exp(-2),cy[index]*exp(-1),cy[index]*exp(0))
plot(ax1,ay1,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(1,0,0),main="",xlab="",ylab="")
par(new=T)#上書き
ax2=c(cx[index]*exp(0),cx[index]*exp(1),cx[index]*exp(2))
ay2=c(cy[index]*exp(0),cy[index]*exp(1),cy[index]*exp(2))
plot(ax2,ay2,asp=1,type="o",xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),main="",xlab="",ylab="")
segments(0,0,5,0,col=rgb(0,1,0))
}
#アニメーション動作設定
Time_Code<-seq(1,59,by=2)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
OIAS01(i)
}
}, interval = 0.1, movie.name = "OIAS09.gif")
等比数列の各項が置かれる数直線自体はこんな感じ。この上で「振動を中心とする0への収束や無限大への発散」は展開される訳です。以下続報…
【Rで球面幾何学】等比数列(幾何数列)③振動関数を巡る収束と拡散。