【連続極座標系】ネイピア数e(2.718282)近似値の極限の近傍について。


単位円を表す公式$e^{iπ}$は、実際のコンピューター上での描画においては**ネイピア数e**(<font color=blue>2.718282</font>)近似値の限界から無限に円を描き続ける事が出来ません。

[「世界で一番美しい公式」オイラーの等式の罠？](https://qiita.com/ochimusha01/items/7fa9d091f7ba9414dfc3)
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fo%2Fochimusha01%2F20210429%2F20210429131445.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&w=1400&fit=max&s=d6fbd3a32eed3b43462139dfbfc948c2)

なので以下の様な現象が起こる事自体については(<font color=blue>まだRからPythonに乗り換える以前の</font>)昨年の段階から気付いてましたが、来年にはこの辺りについてもっと深く掘り下げていきたいと考えています。

#±i^ax(<font color=blue>-1≦a≦1</font>)の場合

[オイラー座標系②複素等比数列による整数概念の再構築](https://qiita.com/ochimusha01/items/5b095114cafafba8428f)
まずは関数$-1^x$に$i^2=-1$を代入すると$i^{2x}$となります。これをさらに普遍化して$±i^{ax}$と置きましょう。**-1≦a≦1**の範囲の挙動は予想通り単位円上の軌道に確実に収まります。

<font color=green>$i^{ax}(a=0→1)$</font>
![image.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210105/20210105003122.gif)
Rによる実装

```R
Int01<-function(Rad){

cx00<-seq(-3,3,length=61)
f0<-function(x) 1^x
cy00<-f0(cx00)
s00<-complex(re=cx00,im=cy00)
plot(s00,type="l",xlim=c(-2,2),ylim=c(-2,2),main="(0+1i)^ax(a= 0→1)",xlab="Real",ylab="Imaginal",col=rgb(0,1,0))

#-1^x=(0±1i)^2x(i^2=-1)
par(new=T)#上書き
c01<-seq(-1,1,length=61)
f0<-function(x) (0+1i)^(x*Rad)
s01<-f0(cx00)
plot(s01,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01+1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01-1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01+2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01-2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

abline(h=0,col=c(200,200,200)) 
abline(v=0,col=c(200,200,200)) 
abline(v=1,col=c(200,200,200)) 
abline(v=2,col=c(200,200,200)) 
abline(v=-1,col=c(200,200,200)) 
abline(v=-2,col=c(200,200,200)) 

even01<-paste("y=(0+1i)^",Rad,"x(Even)")
odd01<-paste("y=(0+1i)^",Rad,"x(Odd)")

legend("bottomleft", legend=c("y=1^x",even01,odd01), lty =c(1,1,1),col=c(rgb(0,1,0),rgb(0,0,1),rgb(1,0,0)))
}

#アニメーション動作設定
Time_Code<-seq(0,1,length=11)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i)
}
}, interval = 0.1, movie.name = "Int04.gif")
```

<font color=green>$-i^{ax}(a=0→1)$</font>(<font color=blue>共役作用の為、見た目はまるで同じ</font>)
![image.gid](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210104/20210104020409.gif)
Rによる実装

```R
Int01<-function(Rad){

cx00<-seq(-3,3,length=61)
f0<-function(x) 1^x
cy00<-f0(cx00)
s00<-complex(re=cx00,im=cy00)
plot(s00,type="l",xlim=c(-2,2),ylim=c(-2,2),main="(0-1i)^ax(a= 0→1)",xlab="Real",ylab="Imaginal",col=rgb(0,1,0))

#-1^x=(0±1i)^2x(i^2=-1)
par(new=T)#上書き
c01<-seq(-1,1,length=61)
f0<-function(x) (0-1i)^(x*Rad)
s01<-f0(cx00)
plot(s01,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01+1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01-1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01+2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01-2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

abline(h=0,col=c(200,200,200)) 
abline(v=0,col=c(200,200,200)) 
abline(v=1,col=c(200,200,200)) 
abline(v=2,col=c(200,200,200)) 
abline(v=-1,col=c(200,200,200)) 
abline(v=-2,col=c(200,200,200)) 

even01<-paste("y=(0-1i)^",Rad,"x(Even)")
odd01<-paste("y=(0-1i)^",Rad,"x(Odd)")

legend("bottomleft", legend=c("y=1^x",even01,odd01), lty =c(1,1,1),col=c(rgb(0,1,0),rgb(0,0,1),rgb(1,0,0)))
}

#アニメーション動作設定
Time_Code<-seq(0,1,length=11)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i)
}
}, interval = 0.1, movie.name = "Int05.gif")
```
<font color=green>$-(i^{ax})(a=0→1)$</font>(<font color=blue>展開が逆に</font>)
![image.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210105/20210105071334.gif)
Rによる実装

```R
Int01<-function(Rad){

cx00<-seq(-3,3,length=61)
f0<-function(x) 1^x
cy00<-f0(cx00)
s00<-complex(re=cx00,im=cy00)
plot(s00,type="l",xlim=c(-2,2),ylim=c(-2,2),main="-(0+1i)^ax(a= 0→1)",xlab="Real",ylab="Imaginal",col=rgb(0,1,0))

#-1^x=(0±1i)^2x(i^2=-1)
par(new=T)#上書き
c01<-seq(-1,1,length=61)
f0<-function(x) -(0+1i)^(x*Rad)
s01<-f0(cx00)
plot(s01,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01+1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01-1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))
par(new=T)#上書き
plot(s01+2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))
par(new=T)#上書き
plot(s01-2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

abline(h=0,col=c(200,200,200)) 
abline(v=0,col=c(200,200,200)) 
abline(v=1,col=c(200,200,200)) 
abline(v=2,col=c(200,200,200)) 
abline(v=-1,col=c(200,200,200)) 
abline(v=-2,col=c(200,200,200)) 

even01<-paste("y=-(0+1i)^",Rad,"x(Even)")
odd01<-paste("y=-(0+1i)^",Rad,"x(Odd)")

legend("bottomleft", legend=c("y=1^x",even01,odd01), lty =c(1,1,1),col=c(rgb(0,1,0),rgb(0,0,1),rgb(1,0,0)))
}

#アニメーション動作設定
Time_Code<-seq(0,1,length=11)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i)
}
}, interval = 0.1, movie.name = "Int06.gif")
```
#±i^ax(<font color=blue>a>1あるいはa<-1</font>)の場合
**a>1あるいはa<-1の場合**には見た事のない挙動を始めます。一応はその軌跡の全てが単位円の範囲に収まってはいるものの、その分布が独特の**分布の周期的遷移**を描くのです。ああ、数学的語彙が足らなくて、まずこういう現象をどう呼ぶか自体が分からない!!

<font color=green>$i^{ax}$</font>(<font color=blue>a=0→40</font>)
![image.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210108/20210108084751.gif)
Rによる実装

```R
Int01<-function(Rad,Range){

cx00<-seq(-3,3,length=61)

f0<-function(x) 1^x

cy00<-f0(cx00)

s00<-complex(re=cx00,im=cy00)

title01<-paste("(0+1i)^ax(a=",Range,")")

plot(s00,type="l",xlim=c(-2,2),ylim=c(-2,2),main=title01,xlab="Real",ylab="Imaginal",col=rgb(0,1,0))

#-1^x=(0±1i)^2x(i^2=-1)

par(new=T)#上書き
c01<-seq(-1,1,length=61)
f0<-function(x) (0-1i)^(x*Rad)

s01<-f0(cx00)

plot(s01,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

par(new=T)#上書き

plot(s01+1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))

par(new=T)#上書き

plot(s01-1,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(1,0,0))

par(new=T)#上書き

plot(s01+2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

par(new=T)#上書き

plot(s01-2,type="l",xlim=c(-2,2),ylim=c(-2,2),main="",xlab="",ylab="",col=rgb(0,0,1))

abline(h=0,col=c(200,200,200)) 
abline(v=0,col=c(200,200,200)) 
abline(v=1,col=c(200,200,200)) 
abline(v=2,col=c(200,200,200)) 
abline(v=-1,col=c(200,200,200)) 
abline(v=-2,col=c(200,200,200))

even01<-paste("y=(0+1i)^",Rad,"x(Even)")
odd01<-paste("y=(0+1i)^",Rad,"x(Odd)")

legend("bottomleft", legend=c("y=1^x",even01,odd01), lty =c(1,1,1),col=c(rgb(0,1,0),rgb(0,0,1),rgb(1,0,0)))

}
#アニメーション動作設定
Time_Code<-seq(0,40,length=201)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i,c("0→40"))
}
}, interval = 0.1, movie.name = "Int11.gif")
```
<font color=green>$i^{ax}$</font>(<font color=blue>a=0→20</font>)
![image.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210108/20210108083821.gif)
Rによる実装

```R
#アニメーション動作設定
Time_Code<-seq(0,20,length=201)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i,c("0→20"))
}
}, interval = 0.1, movie.name = "Int12.gif")
```
<font color=green>$i^{ax}$</font>(<font color=blue>a=20→40</font>)
![image.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210108/20210108084218.gif)
Rによる実装

```R
#アニメーション動作設定
Time_Code<-seq(20,40,length=201)
#アニメーション
library("animation")
saveGIF({
for (i in Time_Code){
　Int01(i,c("0→20"))
}
}, interval = 0.1, movie.name = "Int13.gif")
```
さて、この現象の詳細は一体どうなってるんでしょう？　素人考えで恐縮ですが、もしかしたらもっと数学に詳しい人なら、この現象についてちゃんと数式が示せるのでは？