【トーラス構造と古典数学】等比数列(幾何数列)②同心円集合(Concentric Set)に射影(Projection)する準備

[【Rで球面幾何学】等比数列(幾何数列)①その基本的性質について。](https://qiita.com/ochimusha01/items/cbbe0eadabf149fc720b)

>**等比数列**(<font color="blue">Geometric Progression</font>)または**幾何数列**(<font color="blue">Geometric Sequence</font>)の**発散**(<font color="blue">Divergence</font>)と**収束**(<font color="blue">Convergence</font>)の条件については、また項を改めて。

説明の多くが以下の様に大雑把にも程がある内容だったので後回しにしたのですが…

[等比数列(geometric progression/geometric sequence=幾何数列）) - Wikipedia](https://ja.wikipedia.org/wiki/%E7%AD%89%E6%AF%94%E6%95%B0%E5%88%97)

>**公比**<font color="green">r</font>について、
①**<font color="green">r>1</font>の場合**…初項の符号によって正もしくは負の無限大に発散する。
②**<font color="green">rが<−1か<1</font>の場合**…<font color="green">0</font>に収束する。
③**<font color="green">r=−1</font>の場合**…<font color="green">a</font>と<font color="green">−a</font>の値のみを交互にとる（<font color="blue">振動</font>）。
④**<font color="green">r<−1</font>の場合**…<font color="green">振動</font>する（<font color="blue">発散する。正もしくは負の無限大に発散するということではない</font>）。

よく考えてみれば目盛りを切って各点の振る舞いに計測基準を与える**数直線**(<font color="blue">Number line</font>)そのものは「(<font color="blue">添字の無限小-Infから0未満までが0と1の間、0そのものが1,0以上が1以上に転写された</font>)**片側の端点**(<font color="blue">End Point</font>)**のみが無限大**<font color="green">Inf</font>**もしくは無限小**<font color="green">-Inf</font>**に開かれた片側無限算術数列**(<font color="blue">One-Sided Infinite Arithmetic Sequence</font>)」として導入するのが正しいのかもしれません。

###①（<font color="blue">初項a,公差０の等差数列と完全に合致する</font>）初項<font color="green">a</font>,公比<font color="green">1</font>の等差数列を「目盛り」として射影した場合。
[【Rで球面幾何学】等差数列(算術数列)① 数直線(Number Line)概念の導入(Introduction)について。](https://qiita.com/ochimusha01/items/4e5eca346c85f161c3b7)
まさしく「**等差数列そのもの**」という感じ。

![OIAS003.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103062700.gif)

```R
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")
```

###②指数尺（<font color="blue">すなわち自然指数関数e^xの値</font>）を「目盛り」として射影した場合。
[【Rで球面幾何学】指数・対数関数の発見](https://qiita.com/ochimusha01/items/3e28f4f06abd8cef0af1)
随分それっぽくなりました。状況によっては十分選択肢に入る範囲。
![OIAS009.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103063144.gif)

```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で球面幾何学】等比数列(幾何数列)③振動関数を巡る収束と拡散。](https://qiita.com/ochimusha01/items/0814db1de32fbf88d070)
![MOF024.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103073903.gif)
![MOF025.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103074600.gif)