0
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-12-05

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

「世界で一番美しい公式」オイラーの等式の罠?
image.png

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

±i^ax(-1≦a≦1)の場合

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

$i^{ax}(a=0→1)$
image.gif
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")

$-i^{ax}(a=0→1)$(共役作用の為、見た目はまるで同じ)
image.gid
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")

$-(i^{ax})(a=0→1)$(展開が逆に)
image.gif
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(a>1あるいはa<-1)の場合

a>1あるいはa<-1の場合には見た事のない挙動を始めます。一応はその軌跡の全てが単位円の範囲に収まってはいるものの、その分布が独特の分布の周期的遷移を描くのです。ああ、数学的語彙が足らなくて、まずこういう現象をどう呼ぶか自体が分からない!!

$i^{ax}$(a=0→40)
image.gif
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")

$i^{ax}$(a=0→20)
image.gif
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")

$i^{ax}$(a=20→40)
image.gif
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")

さて、この現象の詳細は一体どうなってるんでしょう? 素人考えで恐縮ですが、もしかしたらもっと数学に詳しい人なら、この現象についてちゃんと数式が示せるのでは?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0