【Rで球面幾何学】そもそも複素数Xi（x*(0+1i)）はどう振る舞う？

[【Rで球面幾何学】指数関数や対数関数における「ネイピア数周期」の意味について。](https://qiita.com/ochimusha01/items/bebb9eb56346f57ff651)
今回の投稿の出発点はここ。
![20190927233136 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/216d94f6-b445-ae38-64d8-bd6f8db5a2c9.png)


###①**自然指数関数**<font color="green">e^Xi</font>（<font color="blue">exp(x*(0+1i))</font>）あるいは<font color="green">1/e^Xi</font>（<font color="blue">exp(-1*(0+1i))</font>）の場合

**根**を<font color="green">-1</font>(<font color="blue">1/root</font>)から<font color="green">0</font>(<font color="blue">root/root</font>)にかけて変化させる->**下から上に円弧消失**
![20190628102302.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/17183052-29c7-20cc-2e31-67cb248665b8.gif)

**根**を<font color="green">0</font>(<font color="blue">root/root</font>)から<font color="green">1</font>(<font color="blue">root</font>)にかけて変化させる->**上から下に円弧出現**
![20190628102545.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1204f224-00ed-745d-d403-3d928e689354.gif)

###②①の符号を逆転させた**自然指数関数**<font color="green">-e^Xi</font>あるいは<font color="green">-1/e^Xi</font>

**根**を<font color="green">-1</font>(<font color="blue">1/root</font>)から<font color="green">0</font>(<font color="blue">root/root</font>)にかけて変化させる->**上から下に円弧消失**
![20190628111214.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/001550a3-de8b-e5a2-d574-b0948302d7bf.gif)

**根**を<font color="green">0</font>(<font color="blue">root/root</font>)から<font color="green">1</font>(<font color="blue">root</font>)にかけて変化させる->**下から上に円弧出現**
![20190628111345.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/4ab69ef7-2428-bc5a-655c-34b3cdfa82d2.gif)

###③**自然対数関数**<font color="green">log(Xi)</font>あるいは<font color="green">log(Xi,base=1/exp(1))</font>

**根**を<font color="green">-1</font>(<font color="blue">1/root</font>)から<font color="green">0</font>(<font color="blue">root/root</font>)にかけて変化させる->**左から右に円弧消失**
![20190628110120.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/c5c12c1a-3006-bedc-f083-85e77bee289c.gif)

**根**を<font color="green">0</font>(<font color="blue">root/root</font>)から<font color="green">1</font>(<font color="blue">root</font>)にかけて変化させる->**右から左に円弧出現**
![20190628110257.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/aff8270e-f0c0-b1b5-4984-932a1e9b4a54.gif)

###④③の符号を逆転させた**自然対数関数**<font color="green">-log(Xi)</font>あるいは<font color="green">-log(Xi,base=1/exp(1))</font>

**根**を<font color="green">-1</font>(<font color="blue">1/root</font>)から<font color="green">0</font>(<font color="blue">root/root</font>)にかけて変化させる->**右から左に円弧消失**
![20190628110800.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/16c102d8-2e2f-afbe-f994-3fe58f3cb7d5.gif)

**根**を<font color="green">0</font>(<font color="blue">root/root</font>)から<font color="green">1</font>(<font color="blue">root</font>)にかけて変化させる->**左から右に円弧出現**
![20190628110918.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/7c861496-c1c1-55df-17a0-f8cc56d26fb9.gif)

そもそもこれらの関数はどうして円を描くのでしょうか？　その秘密を読み解く為には「<font color="red">2乗すると-1になる</font>」<font color="green">Xi</font>(<font color="blue">x*(0+1i)</font>)なる関数の特徴について見ていく必要がありそうです。

##一次関数レベルの展開

この段階ではまだ独特の性質の顕現はありません。

###一次関数<font color="green">Y=Xi</font>(<font color="blue">(x*(1+0i)</font>)
![20190627232244.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/de7a0ec0-f853-c832-1322-5b50aa9f1163.png)

```R
#タイトル定義
Main_title<-c("Y=X(x*(1+0i))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,5)
x0=c(-5:5)
#関数1
f1_name<-c("Y=X(Real)") 
f1<-function(x){x*(1+0i)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###一次関数<font color="green">Y=Xi</font>(<font color="blue">x*(0+1i)</font>)
![20190627232733.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/be438525-6fae-de80-5029-4b99ec8fc31a.png)


```R
#タイトル定義
Main_title<-c("Y=Xi(x*(0+1i))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,5)
x0=c(-5:5)
#関数1
f1_name<-c("Y=Xi(Real)") 
f1<-function(x){x*(0+1i)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

両関数の**原点からの距離絶対値**を求めると一致します。ここで**絶対値**(<font color="blue">Absolute value</font>)の**概念**(<font color="blue">Concept</font>)すなわち「**その数から符号を除去したものが絶対値**」という考え方をを導入(<font color="blue">Intoroduce</font>)しておきましょう。**三平方の定理**により<font color="green">(0,0)</font>と<font color="green">(a,b)</font>の距離は<font color="green">sqrt(a2+b2)</font>で求められますが、特に<font color="green"></font>もしくは<font color="green">b=0</font>の場合に慣れ親しんでいる実数の絶対値の定義と一致します。
[【初心者向け】ピタゴラスの定理あるいは三平方の定理からの出発](https://qiita.com/ochimusha01/items/4c7f731b0ef3cc998aa1)

###一次関数<font color="green">Y=|X|</font>(<font color="green">abs(x*(1+0i))</font>)
![20190628082512.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/2c268961-5e36-711c-7952-92c370b07b58.png)

```R
#タイトル定義
Main_title<-c("Y=|X|(abs(x*(1+0i)))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-2,5)
x0=c(-5:5)
#関数1
f1_name<-c("Y=|X|(Real)") 
f1<-function(x){abs(x*(1+0i))} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|X|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###一次関数<font color="green">Y=|Xi|</font>(<font color="blue">x*(0+1i)</font>)
![20190628082625.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/0bddb916-908b-93e5-b639-10c5c0699e76.png)


```R
#タイトル定義
Main_title<-c("Y=|Xi|(x*(0+1i))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-2,5)
x0=c(-5:5)
#関数1
f1_name<-c("Y=|Xi|(Real)") 
f1<-function(x){abs(x*(0+1i))} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|Xi|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

##二次関数上における展開

ここで初めて「<font color="red">2乗すると-1になる</font>」<font color="green">Xi(x*(1+0i))</font>という数の特徴が表面化してくる訳です。

###２次関数<font color="green">Y=X^2</font>(<font color="blue">(x*(1+0i))^2</font>)
![20190628080812.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/707269c3-f8b7-f921-8ade-3d509a5e6716.png)

```R
#タイトル定義
Main_title<-c("Y=X^2((x*(1+0i))^2")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,15)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^2(Real)") 
f1<-function(x){(x*(1+0i))^2} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^2(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

描画対象が曲線になった途端「**解像度問題**（<font color="blue">どれくらい滑らかに描くか</font>）」問題が急浮上してきますね。ここではとりあえず「**-5から5の区間を60分割**」路線で進めます。

###２次関数<font color="green">Y=X^2</font>(<font color="blue">(x*(1+0i))^2</font>)の描画解像度
![20190628081028.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/81d76b98-e401-7def-5bb9-09678fe4dc9c.gif)

```R
quadratic_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^2((x*(1+0i))^2")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,15)
x0=seq(-5,5,length=N0)
#関数1
f1_name<-c("Y=X^2(Real)") 
f1<-function(x){(x*(1+0i))^2} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^2(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(3,5,7,15,30,60,30,15,7,5)
saveGIF({
for (i in Time_Code){
　　quadratic_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

ところで、ここで扱う**冪**（<font color="blue">べき</font>）**乗算**において指数関数的に目盛りの単位が増大していく問題と、マクローリン展開が「**好きなだけ微細な桁数まで近似値を算出する計算**」である事の対比は、指数関数でいう<font color="green">a^x</font>と<font color="green">1/(a^x)</font>の関係に対応しています。もちろんマクローリン展開の場合は<font color="green">f(x)=Σ(n=0~∞)(f(n)(0)/n!*x^n)=f(0)+f′(0)x+f′′(0)/2!*x^2+f(n)(0)/n!*x^n…</font>と、微分と絡めもっと精緻な考察を経る訳ですが…
[【Rで球面幾何学】オイラーの公式を導出したマクローリン級数の限界？](https://qiita.com/ochimusha01/items/4a484d5759f96abb0ab3)

###2次関数<font color="green">Y=Xi^2</font>(<font color="blue">(x*(0+1i))^2</font>)
結果がy=-x^2と一致します。
![20190628081357.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/a2cc8b8a-822d-5a04-95d2-e022a71be00a.png)

```R
#タイトル定義
Main_title<-c("Y=Xi^2((x*(0+1i))^2)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-15,5)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^2(Real)") 
f1<-function(x){(x*(0+1i))^2} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^2(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("topleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

やはり両関数の「**絶対値**（<font color="blue">原点からの距離</font>）」は一致します。そして実数の２次関数の値は絶対値そのもの…

###２次関数<font color="green">Y=|X^2|</font>(<font color="blue">(abs(x*(1+0i))^2)</font>)
![20190628082148.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/ff8abf4c-1ccc-ca60-5f54-961d611c9ec4.png)

```R
#タイトル定義
Main_title<-c("Y=|X^2|((abs(x*(1+0i))^2)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,15)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|X^2|(Real)") 
f1<-function(x){(abs(x*(1+0i))^2)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|X^2|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###２次関数<font color="green">Y=|Xi^2|</font>(<font color="blue">(abs(x*(0+1i))^2)</font>)
![20190628082240.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/585884ad-fe7d-b63a-7d34-95b7d2b3d9e6.png)

```R
#タイトル定義
Main_title<-c("Y=|Xi^2|(abs((x*(0+1i))^2))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,15)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|Xi^2|(Real)") 
f1<-function(x){(abs(x*(0+1i))^2)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|Xi^2|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

##三次関数以上の展開

３次関数以上では実数のみの関数と複素数も含む関数の振る舞いの相違がさらに顕著な形で現れてきます。

###３次関数<font color="green">Y=X^3</font>(<font color="blue">x*((1+0i))^3</font>)
![20190628082920.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/5f14aa5e-e096-b8bb-e0e6-bcb1e6bcb5d9.png)

```R
#タイトル定義
Main_title<-c("Y=X^3((x*(1+0i))^3")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^3(Real)") 
f1<-function(x){(x*(1+0i))^3} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^3(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###3次関数<font color="green">Y=Xi^3</font>(<font color="blue">(x*(0+1i))^3</font>)
![20190628083029.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/231fec4f-5dc7-6eba-03e9-468a2f95ed67.png)

```R
#タイトル定義
Main_title<-c("Y=Xi^3((x*(0+1i))^3)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^3(Real)") 
f1<-function(x){(x*(0+1i))^3} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^3(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

###４次関数<font color="green">Y=X^4</font>(<font color="blue">(x*(1+0i))^4</font>)
![20190628083241.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/d7052bd9-cc7d-556e-0cc0-6d895751ff65.png)

```R
#タイトル定義
Main_title<-c("Y=X^4((x*(1+0i))^4")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,120)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^4(Real)") 
f1<-function(x){(x*(1+0i))^4} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^4(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###4次関数<font color="green">Y=Xi^4</font>((<font color="blue">x*(0+1i))^4</font>)
![20190628083357 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/c938fb42-dc33-5709-7087-8da1eef49bf7.png)


```R
#タイトル定義
Main_title<-c("Y=Xi^4((x*(0+1i))^4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,120)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^4(Real)") 
f1<-function(x){(x*(0+1i))^4} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^4(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

それでも両関数の**絶対値**はあくまで一致しているのです。

###3次関数<font color="green">Y=|X^3|</font>(<font color="blue">(abs(x*(1+0i))^3)</font>)
![20190628083920.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/d7d9020b-f1b7-1330-43c1-be5274959afd.png)

```R
#タイトル定義
Main_title<-c("Y=|X^3|((abs(x*(1+0i))^3)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-7,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|X^3|(Real)") 
f1<-function(x){(abs(x*(1+0i))^3)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|X^3|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###3次関数<font color="green">Y=|Xi^3|</font>(<font color="blue">(abs(x*(0+1i))^3)</font>)
![20190628084020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1ef2c2ae-4e7d-1584-8e77-04dd830bcb8c.png)

```R
#タイトル定義
Main_title<-c("Y=|Xi^3|(abs((x*(0+1i))^3))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-7,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|Xi^3|(Real)") 
f1<-function(x){(abs(x*(0+1i))^3)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|Xi^3|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

###４次関数<font color="green">Y=|X^4|</font>(<font color="blue">(abs(x*(1+0i))^4)</font>)
![20190628084131.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/8499d04e-c177-f67d-4a05-a481bea92950.png)

```R
#タイトル定義
Main_title<-c("Y=|X^4|((abs(x*(1+0i))^4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,120)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|X^4|(Real)") 
f1<-function(x){(abs(x*(1+0i))^4)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|X^4|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
```

###４次関数<font color="green">Y=|Xi^4|</font>(<font color="blue">(abs(x*(0+1i))^4)</font>)
![20190628084225.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/d338fff8-caa5-faf1-6d8d-9d8544397461.png)

```R
#タイトル定義
Main_title<-c("Y=|Xi^4|(abs((x*(0+1i))^4))")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,120)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=|Xi^4|(Real)") 
f1<-function(x){(abs(x*(0+1i))^4)} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=|Xi^4|(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green))
```

##連続して眺めてみる。

こうしてみると**実数のみの冪乗算**では複素数部がずっと<font color="green">0</font>のままに見えますが、実は指数が小数点を含む場合は結構（<font color="blue">絶対値を実数部と一致させる為に</font>）動いてます。まるで「<font color="red">達磨さんが転んだ</font>」の様に…そう、実は平方眼(<font color="blue">Square Grid</font>)四象限のうちX座標かY座標の符号がマイナスの領域では既に虚数の挙動が観測されていたものの「<font color="red">誤差</font>」として切り捨てられていただけだったのです。
[【Rで球面幾何学】「半円しか描けなかった」世界の思い出？](https://qiita.com/ochimusha01/items/cf74b1fff650edb0a496)
![CFD01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/0ba98cbe-b449-9b1d-b0f0-4a6b60e55f35.gif)
![CFD90Sift02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/dae51c2d-b2ce-515b-c55e-d8dec59a0760.gif)

###N次関数<font color="green">Y=X^N</font>(<font color="blue">(x*(1+0i))^N</font>) (<font color="blue">N=0~4</font>)
![20190628061754.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/3b082fea-d15e-742e-0184-36d8a3f6eec0.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(1+0i))^N (N=0~4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^N(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,4,length=40),seq(4,0,length=40))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="green">Y=X^N</font>(<font color="blue">(x*(1+0i))^N</font>) (<font color="blue">N=1~2</font>)
![20190628063143.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/a8f624d5-28b7-9014-356a-1fb4dc0ffde5.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(1+0i))^N (N=1~2)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,5)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^N(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(1,2,length=10),seq(2,1,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="green">Y=X^N</font>(<font color="blue">(x*(1+0i))^N</font>) (<font color="blue">N=2~3</font>)
![20190628064144.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/32018d96-1dbc-ee2c-f017-964ad31f4c32.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(1+0i))^N (N=2~3)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^N(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(2,3,length=10),seq(3,2,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="blue">Y=X^N</font>(<font color="blue">(x*(1+0i))^N</font>) (<font color="blue">N=3~4</font>)
![20190628065146.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/c1e2c941-1c5c-a2f0-5944-e25bfdc47bc3.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(1+0i))^N (N=3~4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^N(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(3,4,length=10),seq(4,3,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

そして複素数を含む冪乗算では奇関数と偶関数の変わり目に「**実数部と虚数部の交代**」が起こるのです。

###N次関数<font color="green">Y=X^N</font>(<font color="blue">(x*(0+1i))^N</font>) (<font color="blue">N=0~4</font>)
![20190628070951.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1d231690-ed67-f6b7-f420-beae2b0e7c5a.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(0+1i))^N (N=0~4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=X^N(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=X^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,4,length=40),seq(4,0,length=40))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="green">Y=Xi^N</font>(<font color="blue">(x*(0+1i))^N</font>) (<font color="blue">N=1~2</font>)
![20190628065852.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/d3d5780e-497b-edf7-d9f9-02d6b14bdd4f.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=X^N((x*(0+1i))^N (N=1~2)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-5,5)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^N(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(1,2,length=10),seq(2,1,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="green">Y=Xi^N</font>(<font color="blue"></font>(<font color="blue">x*(1+0i))^N</font>) (<font color="blue">N=2~3</font>)
![20190628070230.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/e923521a-2bc6-92e2-7024-95d346875da5.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=Xi^N((x*(0+1i))^N (N=2~3)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^N(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(2,3,length=10),seq(3,2,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

###N次関数<font color="green">Y=X^N</font>(<font color="blue">(x*(1+0i))^N</font>) (<font color="blue">N=3~4</font>)
![20190628070502.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/34526e4a-435c-6f3f-c8d0-b8a1f8424773.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=Xi^N((x*(0+1i))^N (N=3~4)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-30,30)
x0=seq(-5,5,length=60)
#関数1
f1_name<-c("Y=Xi^N(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-c("Y=Xi^N(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(3,4,length=10),seq(4,3,length=10))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST.gif") 
```

まさにこの特徴とマクローリン展開を組み合わせる事によって、**オイラーの公式**<font color="green">e^Xi=cos(X)+sin(Xi)</font>は証明された訳ですね。もちろん「<font color="red">奇関数と偶関数が無限に循環する</font>」なるという特徴こそが、この公式が成立する前提となっています。
[【Rで球面幾何学】オイラーの公式とは、そもそも何か？](https://qiita.com/ochimusha01/items/ebb190371d9f268723a6)
![20190512232958.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/5e4451eb-9eb8-e8dd-040d-a04a87773795.gif)

##半径１の単位円への収束？

ところで**冪演算**（<font color="blue">Exponentiation</font>）<font color="green">Y=X^N</font>や<font color="green">Y=Xi^N</font>は次元数が上がれば上がるほど増率が加速し、以下の形に収束していくのです。

- <font color="green">Y=±Xi^±N</font>の**極限値**は<font color="green">x=-1</font>すなわち**半径1の単位円の直径分**(<font color="blue">{0,-1}-{0,1}</font>),<font color="green">x=1</font>
- <font color="green">X=±Yi^±N</font>の**極限値**は<font color="green">y=-1</font>,すなわち**半径1の単位円の直径分**(<font color="blue">{-1,0}-{1-0}</font>),),<font color="green">y=1</font>

###N次関数<font color="green">Y=(1+0i)X^N</font>(<font color="blue">N=0~8</font>)
![20190927083947.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210114/20210114233803.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=(1+0i)x^N(N=0~8)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-paste("Y=(1+0i)X^",N0,"(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-paste("Y=(1+0i)X^",N0,"(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,8,length=80),seq(8,0,length=80))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST08.gif") 
```

###N次関数<font color="green">Y=(0+1i)X^N</font>(<font color="blue">N=0~8</font>)
![20190927084428.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210114/20210114234956.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=(0+1i)X^N(N=0~8)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-5,5)
gs_y<-c(-60,60)
x0=seq(-5,5,length=60)
#関数1
f1_name<-paste("Y=(0+1i)X^",N0,"(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-paste("Y=(0+1i)X^",N0,"(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(x0,y1,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(x0,y2,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,8,length=80),seq(8,0,length=80))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST08i.gif") 
```

もちろん<font color="green">X=Yi^N</font>は<font color="green">Y=log(N,base=Xi)</font>の形に直せます。「（<font color="blue">ただ単にX座標とY座標を入れ替えただけの</font>）**解像度粗め**」設定だとこうした挙動がより明確となります。

###N次関数<font color="green">Y=log(N,base=(1+0i)X) (<font color="blue">N=0~8</font>)
![20190927090248.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210115/20210115000948.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=log(N,base=(1+0i)X)(N=0~8)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-60,60)
gs_y<-c(-5,5)
x0=seq(-60,60,length=60)
#関数1
f1_name<-paste("Y=log(",N0,",base=(1+0i)X)(Real)") 
f1<-function(x){(x*(1+0i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-paste("Y=log(",N0,",base=(1+0i)X)(Imaginal)") 
y2<-Im(f1(x0))
#グラフの色の決定
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(y1,x0,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(y2,x0,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,8,length=80),seq(8,0,length=80))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST08rr.gif") 
```

###N次関数<font color="green">Y=log(N,base=(0+1i)X) (<font color="blue">N=0~8</font>)
![20190927091103.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210115/20210115001704.gif)

```R
Real_function_01<-function(N0){

#タイトル定義
Main_title<-c("Y=log(N,base=(0+1i)X)(N=0~8)")
x_title<-c("Real Expanse")
y_title<-c("Imaginaly Expanse")
#グラフのスケール決定
gs_x<-c(-60,60)
gs_y<-c(-5,5)
x0=seq(-60,60,length=60)
#関数1
f1_name<-paste("Y=log(",N0,",base=(0+1i)X)(Real)") 
f1<-function(x){(x*(0+1i))^N0} 
y1<-Re(f1(x0))
#関数2
f2_name<-paste("Y=log(",N0,",base=(0+1i)X)(Imaginal)")
y2<-Im(f1(x0))
#グラフの色の決定
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(y1,x0,xlim=gs_x,ylim=gs_y,type="l",col=Blue, main=Main_title,xlab=x_title,ylab=y_title)
par(new=T)#上書き指定
plot(y2,x0,xlim=gs_x,ylim=gs_y,type="l",col=Green, main="",xlab="",ylab="")
#基準線
#abline(h=0,,col=Gray)
abline(v=0,,col=Gray)
#凡例描画
legend("bottomleft", legend=c(f1_name,f2_name),lty=c(1,1),col=c(Blue,Green)) 
}

library("animation")
Time_Code=c(seq(0,8,length=80),seq(8,0,length=80))
saveGIF({
for (i in Time_Code){
　　Real_function_01(i)
}
}, interval = 0.1, movie.name = "TEST08ri.gif") 
```

おやおや、まるである種のステップ関数に収束していく様に見えますね。なるほど、これまで**実数共役**(<font color=blue>Real Conjugate</font>)の概念を私の視野から隠してきたのは、この「<font color=purple>第一象限の実数関数では虚数部が動かない</font>」振る舞いだったのです。そして**指数関数**<font color=purple>Y=X^N</font>の**実数部**の挙動は**マクローリン級数**(<font color=blue>McLaughlin Series</font>)による近似過程そのままです。
[【Rで球面幾何学】オイラーの公式を導出したマクローリン級数の限界？](https://qiita.com/ochimusha01/items/4a484d5759f96abb0ab3)
![image.gif](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F597772%2F0a9d3bb6-1636-86b7-78f8-c03fef2238a2.gif?ixlib=rb-1.2.2&auto=format&gif-q=60&q=75&w=1400&fit=max&s=5aecc9cfcf2e36909c86dee833a2ef3c)

さてこの話、どちらに向けて収束していくのでしょう? そんな感じで以下続報…