「諸概念の迷宮(Things got frantic)」用語集

本編で頻繁に使うロジックと関連用語のまとめ。

【円関数としてのe^Xiとlog(Xi)】ちゃんと1回だけ円を描くのは底(root)がeか1/eの時だけ?

f:id:ochimusha01:20190512232958g:plain

どうして複素数Xi(0+1i)を指数関数a^xや対数関数Log(x,base=a)に与えると円が描かれるのでしょうか

要するに円弧はプロッティング上、絶対値を同じくする周期関数2つを90度位相をズラしてx軸とy軸に割り振ると描かれるのです。 
f:id:ochimusha01:20190628101523p:plain
例えば-πからπにかけて値をX軸のCos関数とY軸のSin関数に与えても結果は同じ。この場合ネイピア数eや複素数を意識する必要はありません。

 

①指数関数a^xは無限に続く奇関数と偶関数の連続である。

複素数Xix*(0+1i))を与えられた関数は偶関数を実数部、奇関数を複素数部に割り振る(絶対値=原点からの距離は変わらない)。

③実数部をX軸、複素数部をY軸に割り振ると、例えば(偶関数の集合たる)Sin関数と(奇関数の集合たる)Cos関数が綺麗に分離される(Cos(θ)+Sin(θi)

ところで指数関数Y=a^Xi対数関数Y=Log(Xi,base=a)が「ちゃんと1回だけ」円を描くのは底(root)をネイピア数e(exp(1)=2.718282)もしくは1/e(exp(-1)=0.3678794)とする以下の8種類の関数だけだったりします。

  • 指数関数e^Xiexp(x*(0+1i)))あるいは1/e^Xiexp(-1*(0+1i))
  • 上の符号を逆転させた指数関数-e^Xiあるいは-1/e^Xi
  • 対数関数log(Xi)あるいはlog(Xi,base=1/exp(1))
  • 上の符号を逆転させた対数関数-log(Xi)あるいは-log(Xi,base=1/exp(1))

どれも共通するのは「x=0の時の座標が半径1の円弧上」という辺り?

①指数関数e^Xiexp(x*(0+1i)))あるいは1/e^Xiexp(-1*(0+1i)))の場合

統計言語Rによる実演例「1/e^Xiとe^Xiの狭間」

root_move_01<-function(rp){

#タイトル定義
Main_title<-c("Alternative to root")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#関数定義
f1<-function(x){rp^(x*(0+1i))} 
theta <- c(seq(0, pi, length=180),seq(-pi, 0, length=180))
Circle_x=Im(f1(theta))
Circle_y=Re(f1(theta))

f2<-function(x){-rp^(x*(0+1i))} 
#f3<-function(x){log(x*(0+1i))}
cnv_y <- c(seq(-3, 3, length=300))
Log_plus <- f1(cnv_y)
#f4<-function(x){-log(x*(0+1i))} 
Log_minus <-f2(cnv_y) 
#f5<-function(x){2*x^2} 
#f6<-function(x){x^2} 
#f7<-function(x){4*x+5} 
#凡例用関数名定義
f1_name<-c("root^xi(x=Real,y=Imaginaly),r=1") 
f2_name<-c("Exponential root^xi,-root^xi")  
f3_name<-c("Logarithmic log(xi, base=root),-log(xi, base=root)")  
#f4_name<-c("2*(x-3)^2") 
#f5_name<-c("2*x^2")  
#f6_name<-c("x^2") 

#グラフのスケール決定
gs_x<-c(-1.7,1.7)
gs_y<-c(-1.7,1.7)
#グラフの色の決定
Black<-rgb(0,0,0)
Red<-rgb(1,0,0)
Magenta<-rgb(1,0,1)
Blue<-rgb(0,0,1)
Green<-rgb(0,1,0)
Cyan<-rgb(0,1,1)
Yellow<-rgb(1,1,0)
Gray<-"#777777"
#グラフ描画
plot(Circle_x,Circle_y,xlim=gs_x,ylim=gs_y,type="l",col=Black, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(f1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(f2,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_plus, cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_minus,cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
#基準線
abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#塗りつぶし
polygon(c(Circle_x), #x
c(Circle_y), #y
density=c(30), #塗りつぶす濃度
angle=c(45),     #塗りつぶす斜線の角度
col=segC)  
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name,f3_name),lty=c(1,1,1),col=c(Black,Blue,Green))
}

根(root)を-1(1/root)から0(root/root)にかけて変化させる->下から上に円弧消失

#-1から0へ

library("animation")
Time_Code=c(exp(-1.0),exp(-0.9),exp(-0.8),exp(-0.7),exp(-0.6),exp(-0.5),exp(-0.4),exp(-0.3),exp(-0.2),exp(-0.1),exp(0.0))
saveGIF({
for (i in Time_Code){
  root_move_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628102302g:plain

根(root)を0(root/root)から1(root)にかけて変化させる->上から下に円弧出現

#0から+1へ
library("animation")
Time_Code=c(exp(0),exp(0.1),exp(0.2),exp(0.3),exp(0.4),exp(0.5),exp(0.6),exp(0.7),exp(0.8),exp(0.9),exp(1.0))
saveGIF({
for (i in Time_Code){
  root_move_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628102545g:plain

それでは根(root)が1/e以下だったり、e以上だったりするとどうなるのでしょう。なんと指数単位で円弧を重ね書きし続けるのです。

根(root)がe以上

#+1から+2へ
library("animation")
Time_Code=c(exp(1.0),exp(1.1),exp(1.2),exp(1.3),exp(1.4),exp(1.5),exp(1.6),exp(1.7),exp(1.8),exp(1.9),exp(2.0))
saveGIF({
for (i in Time_Code){
  root_move_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif")  

f:id:ochimusha01:20190628103123g:plain

根(root)が1/e以下

#-1から-2へ
library("animation")
Time_Code=c(exp(-1.0),exp(-1.1),exp(-1.2),exp(-1.3),exp(-1.4),exp(-1.5),exp(-1.6),exp(-1.7),exp(-1.8),exp(-1.9),exp(-2.0))
saveGIF({
for (i in Time_Code){
  root_move_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628103446g:plain

②①の符号を逆転させた指数関数-e^Xiあるいは-1/e^Xi

統計言語Rによる実演例「-1/e^Xiと-e^Xiの狭間」

root_move_02<-function(rp){

#タイトル定義
Main_title<-c("Alternative to root")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#関数定義
f1<-function(x){rp^(x*(0+1i))} 
theta <- c(seq(0, pi, length=180),seq(-pi, 0, length=180))
f2<-function(x){-rp^(x*(0+1i))} 
Circle_x=Im(f2(theta))
Circle_y=Re(f2(theta))
#f3<-function(x){log(x*(0+1i))}
cnv_y <- c(seq(-3, 3, length=300))
Log_plus <- f1(cnv_y)
#f4<-function(x){-log(x*(0+1i))} 
Log_minus <-f2(cnv_y) 
#f5<-function(x){2*x^2} 
#f6<-function(x){x^2} 
#f7<-function(x){4*x+5} 
#凡例用関数名定義
f1_name<-c("-root^xi(x=Real,y=Imaginaly),r=1") 
f2_name<-c("Exponential root^xi,-root^xi")  
f3_name<-c("Logarithmic log(xi, base=root),-log(xi, base=root)")  
#f4_name<-c("2*(x-3)^2") 
#f5_name<-c("2*x^2")  
#f6_name<-c("x^2") 

#グラフのスケール決定
gs_x<-c(-1.7,1.7)
gs_y<-c(-1.7,1.7)
#グラフの色の決定
Black<-rgb(0,0,0)
Red<-rgb(1,0,0)
Magenta<-rgb(1,0,1)
Blue<-rgb(0,0,1)
Green<-rgb(0,1,0)
Cyan<-rgb(0,1,1)
Yellow<-rgb(1,1,0)
Gray<-"#777777"
#グラフ描画
plot(Circle_x,Circle_y,xlim=gs_x,ylim=gs_y,type="l",col=Black, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(f1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(f2,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_plus, cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_minus,cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
#基準線
abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#塗りつぶし
polygon(c(Circle_x), #x
c(Circle_y), #y
density=c(30), #塗りつぶす濃度
angle=c(45),     #塗りつぶす斜線の角度
col=segC)  
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name,f3_name),lty=c(1,1,1),col=c(Black,Blue,Green))
}

根(root)を-1(1/root)から0(root/root)にかけて変化させる->上から下に円弧消失

#-1から0へ

library("animation")
Time_Code=c(exp(-1.0),exp(-0.9),exp(-0.8),exp(-0.7),exp(-0.6),exp(-0.5),exp(-0.4),exp(-0.3),exp(-0.2),exp(-0.1),exp(0.0))
saveGIF({
for (i in Time_Code){
  root_move_02(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628111214g:plain
根(root)を0(root/root)から1(root)にかけて変化させる->下から上に円弧出現

#0から+1へ
library("animation")
Time_Code=c(exp(0),exp(0.1),exp(0.2),exp(0.3),exp(0.4),exp(0.5),exp(0.6),exp(0.7),exp(0.8),exp(0.9),exp(1.0))
saveGIF({
for (i in Time_Code){
  root_move_02(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628111345g:plain

③対数関数log(Xi)あるいはlog(Xi,base=1/exp(1))

統計言語Rによる実演例「log(Xi)とlog(Xi,base=1/exp(1)の狭間」

root_move_03<-function(rp){

#タイトル定義
Main_title<-c("Alternative to root")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#関数定義
f1<-function(x){rp^(x*(0+1i))} 
theta <- c(seq(0, pi, length=180),seq(-pi, 0, length=180))
Circle_y=Im(f1(theta))
Circle_x=Re(f1(theta))

f2<-function(x){-rp^(x*(0+1i))} 
#f3<-function(x){log(x*(0+1i))}
cnv_y <- c(seq(-3, 3, length=300))
Log_plus <- f1(cnv_y)
#f4<-function(x){-log(x*(0+1i))} 
Log_minus <-f2(cnv_y) 
#f5<-function(x){2*x^2} 
#f6<-function(x){x^2} 
#f7<-function(x){4*x+5} 
#凡例用関数名定義
f1_name<-c("log(xi)(x=Real,y=Imaginaly),r=1") 
f2_name<-c("Exponential root^xi,-root^xi")  
f3_name<-c("Logarithmic log(xi, base=root),-log(xi, base=root)")  
#f4_name<-c("2*(x-3)^2") 
#f5_name<-c("2*x^2")  
#f6_name<-c("x^2") 

#グラフのスケール決定
gs_x<-c(-1.7,1.7)
gs_y<-c(-1.7,1.7)
#グラフの色の決定
Black<-rgb(0,0,0)
Red<-rgb(1,0,0)
Magenta<-rgb(1,0,1)
Blue<-rgb(0,0,1)
Green<-rgb(0,1,0)
Cyan<-rgb(0,1,1)
Yellow<-rgb(1,1,0)
Gray<-"#777777"
#グラフ描画
plot(Circle_x,Circle_y,xlim=gs_x,ylim=gs_y,type="l",col=Black, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(f1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(f2,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_plus, cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_minus,cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
#基準線
abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#塗りつぶし
polygon(c(Circle_x), #x
c(Circle_y), #y
density=c(30), #塗りつぶす濃度
angle=c(45),     #塗りつぶす斜線の角度
col=segC)  
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name,f3_name),lty=c(1,1,1),col=c(Black,Blue,Green))
}

根(root)を-1(1/root)から0(root/root)にかけて変化させる->左から右に円弧消失

#-1から0へ

library("animation")
Time_Code=c(exp(-1.0),exp(-0.9),exp(-0.8),exp(-0.7),exp(-0.6),exp(-0.5),exp(-0.4),exp(-0.3),exp(-0.2),exp(-0.1),exp(0.0))
saveGIF({
for (i in Time_Code){
  root_move_03(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628110120g:plain

根(root)を0(root/root)から1(root)にかけて変化させる->右から左に円弧出現

#0から+1へ
library("animation")
Time_Code=c(exp(0),exp(0.1),exp(0.2),exp(0.3),exp(0.4),exp(0.5),exp(0.6),exp(0.7),exp(0.8),exp(0.9),exp(1.0))
saveGIF({
for (i in Time_Code){
  root_move_03(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628110257g:plain

④③の符号を逆転させた対数関数-log(Xi)あるいは-log(Xi,base=1/exp(1))

 

統計言語Rによる実演例「-log(Xi)と-log(Xi,base=1/exp(1)の狭間」

root_move_04<-function(rp){

#タイトル定義
Main_title<-c("Alternative to root")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#関数定義
f1<-function(x){rp^(x*(0+1i))} 
theta <- c(seq(0, pi, length=180),seq(-pi, 0, length=180))
f2<-function(x){-rp^(x*(0+1i))} 
Circle_y=Im(f2(theta))
Circle_x=Re(f2(theta))
#f3<-function(x){log(x*(0+1i))}
cnv_y <- c(seq(-3, 3, length=300))
Log_plus <- f1(cnv_y)
#f4<-function(x){-log(x*(0+1i))} 
Log_minus <-f2(cnv_y) 
#f5<-function(x){2*x^2} 
#f6<-function(x){x^2} 
#f7<-function(x){4*x+5} 
#凡例用関数名定義
f1_name<-c("log(xi)(x=Real,y=Imaginaly),r=1") 
f2_name<-c("Exponential root^xi,-root^xi")  
f3_name<-c("Logarithmic log(xi, base=root),-log(xi, base=root)")  
#f4_name<-c("2*(x-3)^2") 
#f5_name<-c("2*x^2")  
#f6_name<-c("x^2") 

#グラフのスケール決定
gs_x<-c(-1.7,1.7)
gs_y<-c(-1.7,1.7)
#グラフの色の決定
Black<-rgb(0,0,0)
Red<-rgb(1,0,0)
Magenta<-rgb(1,0,1)
Blue<-rgb(0,0,1)
Green<-rgb(0,1,0)
Cyan<-rgb(0,1,1)
Yellow<-rgb(1,1,0)
Gray<-"#777777"
#グラフ描画
plot(Circle_x,Circle_y,xlim=gs_x,ylim=gs_y,type="l",col=Black, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(f1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(f2,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_plus, cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
plot(Log_minus,cnv_y,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
par(new=T)#上書き指定
#基準線
abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#塗りつぶし
polygon(c(Circle_x), #x
c(Circle_y), #y
density=c(30), #塗りつぶす濃度
angle=c(45),     #塗りつぶす斜線の角度
col=segC)  
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name,f3_name),lty=c(1,1,1),col=c(Black,Blue,Green))
}

根(root)を-1(1/root)から0(root/root)にかけて変化させる->右から左に円弧消失

#-1から0へ

library("animation")
Time_Code=c(exp(-1.0),exp(-0.9),exp(-0.8),exp(-0.7),exp(-0.6),exp(-0.5),exp(-0.4),exp(-0.3),exp(-0.2),exp(-0.1),exp(0.0))
saveGIF({
for (i in Time_Code){
  root_move_04(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628110800g:plain

根(root)を0(root/root)から1(root)にかけて変化させる->左から右に円弧出現

#0から+1へ
library("animation")
Time_Code=c(exp(0),exp(0.1),exp(0.2),exp(0.3),exp(0.4),exp(0.5),exp(0.6),exp(0.7),exp(0.8),exp(0.9),exp(1.0))
saveGIF({
for (i in Time_Code){
  root_move_04(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 

f:id:ochimusha01:20190628110918g:plain

ちなみに同じオイラーの公式Eulers fomula)のバリエーションたる式e^Xi=(1±Xi/N)^Nも、現れ方こそ若干異なりますがほぼ同じ動きを見せてくれなす。

f:id:ochimusha01:20190701065405g:plain

f:id:ochimusha01:20190701070834g:plain