【トーラス構造と古典数学】等比数列(幾何数列)③振動関数を巡る収束と拡散。

[【Rで球面幾何学】等比数列(幾何数列)①その基本的性質について。](https://qiita.com/ochimusha01/items/cbbe0eadabf149fc720b)
[【Rで球面幾何学】等比数列(幾何数列)②同心円集合(Concentric Set)に射影(Projection)する準備](https://qiita.com/ochimusha01/items/3c9b6aa40a3033a0f350)
![OIAS009.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103063144.gif)
そもそも**数学分野**(<font color="blue">特に教育界</font>)界においては、**振動関数**(<font color="blue">Mathematical Oscillation Function</font>)についてあまり大っぴらに語られてこなかった歴史がある様子に思えます。

##公比<font color="green">D=-1</font>の時
X軸上は-1と1の間を無限に往復する。
![MOF021.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103071257.gif)

```R
#振動関数(Mathematical Oscillation Function)
#公比D=-1
#-1^xにi^2=-1を代入
#(0+1i)^2^x=(0+1i)^2x

MOF01<-function(index){
z0<-complex(real=0,imaginary=1)
f0<-function(x)z0^(2*x)
c0<-f0(index)
cx<-Re(c0)
cy<-Im(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-1,1),ylim=c(-1,1),main="Mathematical Oscillation Function",xlab="X axis",ylab="Y axis")
text(cx,cy,"X",cex=2,col=rgb(0,1,0))
segments(0,0,cx,cy,col=rgb(0,1,0))
abline(h=0, col=rgb(1,0,0))
abline(v=0, col=rgb(1,0,0))
}

#アニメーション動作設定
Time_Code<-c(seq(-1,1,length=15),rev(seq(-1,1,length=15)))
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　MOF01(i)
}
}, interval = 0.1, movie.name = "MOF21.gif")
```
**公比<font color="green">D=-1</font>の時**(<font color="blue">逆転Ver.</font>)
![MOF022.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103071813.gif)

```R
#振動関数(Mathematical Oscillation Function)
#公比D=-1
#-1^xにi^2=-1を代入
#(0+1i)^2^x=(0+1i)^2x

MOF01<-function(index){
z0<-complex(real=0,imaginary=-1)
f0<-function(x)z0^(2*x)
c0<-f0(index)
cx<-Re(c0)
cy<-Im(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-1,1),ylim=c(-1,1),main="Mathematical Oscillation Function",xlab="X axis",ylab="Y axis")
text(cx,cy,"X",cex=2,col=rgb(0,1,0))
segments(0,0,cx,cy,col=rgb(0,1,0))
abline(h=0, col=rgb(1,0,0))
abline(v=0, col=rgb(1,0,0))
}

#アニメーション動作設定
Time_Code<-c(seq(-1,1,length=15),rev(seq(-1,1,length=15)))
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　MOF01(i)
}
}, interval = 0.1, movie.name = "MOF22.gif")
```
##<font color="green">0></font>公比D<font color="green">>-1</font>の時
どんどん振幅の幅が狭まっていく。
![MOF024.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103073903.gif)

```R
#振動関数(Mathematical Oscillation Function)
#公比D=-0.8

MOF01<-function(index){
z0<-complex(real=-0.8,imaginary=0)
f0<-function(x)z0^(2*x)
c0<-f0(index)
cx<-Re(c0)
cy<-Im(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-1,1),ylim=c(-1,1),main="Mathematical Oscillation Function",xlab="X axis",ylab="Y axis")
text(cx,cy,"X",cex=2,col=rgb(0,1,0))
segments(0,0,cx,cy,col=rgb(0,1,0))
abline(h=0, col=rgb(1,0,0))
abline(v=0, col=rgb(1,0,0))
}

#アニメーション動作設定
Time_Code<-seq(0,8,length=90)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　MOF01(i)
}
}, interval = 0.1, movie.name = "MOF24.gif")
```
##公比D<font color="green"><-1</font>の時
どんどん振幅の幅が広がっていく。
![MOF025.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210103/20210103074600.gif)

```R
#振動関数(Mathematical Oscillation Function)
#公比D=-1.2

MOF01<-function(index){
z0<-complex(real=-1.2,imaginary=0)
f0<-function(x)z0^(2*x)
c0<-f0(index)
cx<-Re(c0)
cy<-Im(c0)
plot(cx,cy,asp=1,type="l",xlim=c(-3,3),ylim=c(-3,3),main="Mathematical Oscillation Function",xlab="X axis",ylab="Y axis")
text(cx,cy,"X",cex=2,col=rgb(0,1,0))
segments(0,0,cx,cy,col=rgb(0,1,0))
abline(h=0, col=rgb(1,0,0))
abline(v=0, col=rgb(1,0,0))
}

#アニメーション動作設定
Time_Code<-seq(0,8,length=90)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　MOF01(i)
}
}, interval = 0.1, movie.name = "MOF25.gif")
```
正直「**ああ、やっぱり**」という感想しか湧いてこないです。以下続報…・