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

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

【記述統計情報倉庫】フーリエ変換の記述統計面① とりあえず「直交座標系3Dヒストグラム表示」について。

単位円Unit Circle=半径1の円弧)そのものの統計学的特性、特にヒストグラムhistogram)上への現れ方の描画結果はかなりの衝撃です。

要するに式に表すと(e^θi)t=(cos(θ)+sin(θi))となる図形を引き渡してみたのですが…

f:id:ochimusha01:20190930000257g:plain

f:id:ochimusha01:20190929234210p:plain

直交座標上には綺麗な三面図が出現…

X-Y座標(円弧面)

f:id:ochimusha01:20191003022548g:plain

X-Z座標Cos波面フーリエ変換における「偶数系波形の顕現面」。

f:id:ochimusha01:20191003040401g:plain

Y-Z座標Sin波面フーリエ変換における「奇数系波形の顕現面」。

f:id:ochimusha01:20191003040543g:plain

一方、ある種の線微分的観点から「長さ1の半径の集合体」と見ると…

f:id:ochimusha01:20191003055756p:plain

  class frequency
1 0 ~ 1 60

かかる徹底的なまでの「沈黙」が「あらゆる波形を正弦波の重ね合わせによって合成するフーリエ解析Fourier analysis)によって破られる訳です。果たしてどんな景色が広がる事になるのでしょう?

例えば有名な「三角波Triangular wave」合成…

f:id:ochimusha01:20190815110144g:plain

実は複素数空間complex n-space)からはこんな風に見えるんです。

f:id:ochimusha01:20190822154404g:plain 

f:id:ochimusha01:20190830054423g:plain
偶数系」なので実数部を正面にすると確かに三角波が合成されています。

f:id:ochimusha01:20190828002902p:plain

これくらい「揺らぎ」があれば、何とか相応に意味ある統計データが得られますね。

X-Y座標円弧面)…2周期分描画されているが、よく分からない。

library(gplots)

FATW_xy<-function(x){
switch(x,
"0"= f0<-function(x) {pi/4*x/x},
"1"= f0<-function(x) {pi/4-2*pi/pi^2*exp(2*pi*x/pi*(0+1i))},
"2"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2)},
"3"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2)},
"4"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2)},
"5"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2+exp(18*pi*x/pi*(0+1i))/9^2)}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Y, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="y",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5")
saveGIF({
for (i in Time_Code){
 FATW_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003213257g:plain

X-Z座標Cos波面)…フーリエ変換における「奇数系波形の顕現面」。ここでは「三角波の合成周期2回分)」が見て取れる。

library(gplots)

FATW_xz<-function(x){
switch(x,
"0"= f0<-function(x) {pi/4*x/x},
"1"= f0<-function(x) {pi/4-2*pi/pi^2*exp(2*pi*x/pi*(0+1i))},
"2"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2)},
"3"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2)},
"4"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2)},
"5"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2+exp(18*pi*x/pi*(0+1i))/9^2)}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5")
saveGIF({
for (i in Time_Code){
 FATW_xz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

 

f:id:ochimusha01:20191003213631g:plain

Y-Z座標Sin波面)…周期2回分描画されている。

library(gplots)

FATW_yz<-function(x){
switch(x,
"0"= f0<-function(x) {pi/4*x/x},
"1"= f0<-function(x) {pi/4-2*pi/pi^2*exp(2*pi*x/pi*(0+1i))},
"2"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2)},
"3"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2)},
"4"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2)},
"5"= f0<-function(x) {pi/4-2*pi/pi^2*(exp(2*pi*x/pi*(0+1i))+exp(6*pi*x/pi*(0+1i))/3^2+exp(10*pi*x/pi*(0+1i))/5^2+exp(14*pi*x/pi*(0+1i))/7^2+exp(18*pi*x/pi*(0+1i))/9^2)}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$Y, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="y",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5")
saveGIF({
for (i in Time_Code){
 FATW_yz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003213939g:plain

 

放物線Parabola

f:id:ochimusha01:20190815171145g:plain

複素数空間complex n-space)における全体像。

f:id:ochimusha01:20190822162110g:plain

f:id:ochimusha01:20190830055226g:plain

偶数系」なので実数部を正面にすると確かに放物線が合成されています。
f:id:ochimusha01:20190828003425p:plain

X-Y座標円弧面)…大きさの増大が目盛りに逃がされている?

library(gplots)

FAPB_xy<-function(x){
switch(x,
"0"= f0<-function(x) {pi^2/3*x/x},
"1"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i)))},
"2"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2)},
"3"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2)},
"4"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2)},
"5"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2)},
"6"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2)},
"7"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2)},
"8"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)},
"9"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)-exp(x*9*(0+1i))/9^2}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Y, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="y",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FAPB_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003215108g:plain

X-Z座標Cos波面)…フーリエ変換における「偶数系波形の顕現面」。ここでは「波放物線の合成」が見て取れる。周期幅が極端に狭まっている?

library(gplots)

FAPB_xy<-function(x){
switch(x,
"0"= f0<-function(x) {pi^2/3*x/x},
"1"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i)))},
"2"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2)},
"3"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2)},
"4"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2)},
"5"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2)},
"6"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2)},
"7"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2)},
"8"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)},
"9"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)-exp(x*9*(0+1i))/9^2}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FAPB_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

 

f:id:ochimusha01:20191003215605g:plain

Y-Z座標Sin波面)…周期幅が極端に狭まっている?

library(gplots)

FAPB_xy<-function(x){
switch(x,
"0"= f0<-function(x) {pi^2/3*x/x},
"1"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i)))},
"2"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2)},
"3"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2)},
"4"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2)},
"5"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2)},
"6"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2)},
"7"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2)},
"8"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)},
"9"= f0<-function(x) {pi^2/3+4*(-exp(x*(0+1i))+exp(x*2*(0+1i))/2^2-exp(x*3*(0+1i))/3^2+exp(x*4*(0+1i))/4^2-exp(x*5*(0+1i))/5^2+exp(x*6*(0+1i))/6^2-exp(x*7*(0+1i))/7^2+exp(x*8*(0+1i))/8^2)-exp(x*9*(0+1i))/9^2}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$Y, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="y",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FAPB_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003220104g:plain

ノコギリ波Sawtooth wave

f:id:ochimusha01:20190815072440g:plain

複素数空間complex n-space)における全体像。

f:id:ochimusha01:20190822170907g:plain

f:id:ochimusha01:20190830055431g:plain

虚数部を正面に向けると確かにノコギリ波が合成されています。
f:id:ochimusha01:20190828033024p:plain

X-Y座標(円弧面)…バラツキが激しくなる。

library(gplots)

FASW_xy<-function(x){
switch(x,
"0"= f0<-function(x) {pi/2*x/x},
"1"= f0<-function(x) {pi/2-exp(x*2*(0+1i))},
"2"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2},
"3"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3},
"4"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4},
"5"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5},
"6"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6},
"7"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7},
"8"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8},
"9"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9},
"10"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10},
"11"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12},
"12"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14},
"13"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16},
"14"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18},
"15"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18-exp(x*38*(0+1i))/19-exp(x*40*(0+1i))/20}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Y, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="y",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9","10","11","12","13","14","15")
saveGIF({
for (i in Time_Code){
 FASW_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003221629g:plain

X-Z座標Cos波面)…周期1回分?(波形の乱れが酷い

library(gplots)

FASW_xz<-function(x){
switch(x,
"0"= f0<-function(x) {pi/2*x/x},
"1"= f0<-function(x) {pi/2-exp(x*2*(0+1i))},
"2"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2},
"3"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3},
"4"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4},
"5"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5},
"6"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6},
"7"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7},
"8"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8},
"9"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9},
"10"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10},
"11"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12},
"12"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14},
"13"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16},
"14"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18},
"15"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18-exp(x*38*(0+1i))/19-exp(x*40*(0+1i))/20}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9","10","11","12","13","14","15")
saveGIF({
for (i in Time_Code){
 FASW_xz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191003222158g:plain

Y-Z座標Sin波面)…フーリエ変換における「奇数系波形の顕現面」。ここでは「ノコギリ波の合成周期1回分)」が見て取れる。

library(gplots)

FASW_yz<-function(x){
switch(x,
"0"= f0<-function(x) {pi/2*x/x},
"1"= f0<-function(x) {pi/2-exp(x*2*(0+1i))},
"2"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2},
"3"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3},
"4"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4},
"5"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5},
"6"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6},
"7"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7},
"8"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8},
"9"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9},
"10"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10},
"11"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12},
"12"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14},
"13"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16},
"14"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18},
"15"= f0<-function(x) {pi/2-exp(x*2*(0+1i))-exp(x*4*(0+1i))/2-exp(x*6*(0+1i))/3-exp(x*8*(0+1i))/4-exp(x*10*(0+1i))/5-exp(x*12*(0+1i))/6-exp(x*14*(0+1i))/7-exp(x*16*(0+1i))/8-exp(x*18*(0+1i))/9-exp(x*20*(0+1i))/10-exp(x*22*(0+1i))/11-exp(x*24*(0+1i))/12-exp(x*26*(0+1i))/13-exp(x*28*(0+1i))/14-exp(x*30*(0+1i))/15-exp(x*32*(0+1i))/16-exp(x*34*(0+1i))/17-exp(x*36*(0+1i))/18-exp(x*38*(0+1i))/19-exp(x*40*(0+1i))/20}
)

z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$Y, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="y",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9","10","11","12","13","14","15")
saveGIF({
for (i in Time_Code){
 FASW_yz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191004054132g:plain

矩形波Square wave

f:id:ochimusha01:20190815123000g:plain

複素数空間complex n-space)における全体像。

f:id:ochimusha01:20190822173850g:plain

f:id:ochimusha01:20190830055703g:plain

奇数系」なので虚数部を正面にすると確かに矩形波が合成されています。
f:id:ochimusha01:20190828033422p:plain

f:id:ochimusha01:20190828033453p:plain

X-Y座標円弧面)…周期1回分。

library(gplots)
FASqW_xy<-function(x){
switch(x,
"0"= f0<-function(x) {1/2*x/x},
"1"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))},
"2"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))},
"3"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))},
"4"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))},
"5"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))},
"6"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))},
"7"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))},
"8"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))},
"9"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))+2/(17*pi)*exp(x*17*(0+1i))}
)
z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Y, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="y",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FASqW_xy(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191004055528g:plain

X-Z座標Cos波面)…周期1回分。

library(gplots)
FASqW_xz<-function(x){
switch(x,
"0"= f0<-function(x) {1/2*x/x},
"1"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))},
"2"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))},
"3"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))},
"4"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))},
"5"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))},
"6"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))},
"7"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))},
"8"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))},
"9"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))+2/(17*pi)*exp(x*17*(0+1i))}
)
z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$X, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="x",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FASqW_xz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

f:id:ochimusha01:20191004060127g:plain
Y-Z座標Sin波面)…フーリエ変換における「奇数系波形の顕現面」。ここでは「矩形波の合成周期1回分)」が見て取れる。

library(gplots)
FASqW_yz<-function(x){
switch(x,
"0"= f0<-function(x) {1/2*x/x},
"1"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))},
"2"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))},
"3"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))},
"4"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))},
"5"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))},
"6"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))},
"7"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))},
"8"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))},
"9"= f0<-function(x) {1/2+2/pi*exp(x*(0+1i))+2/(3*pi)*exp(x*3*(0+1i))+2/(5*pi)*exp(x*5*(0+1i))+2/(7*pi)*exp(x*7*(0+1i))+2/(9*pi)*exp(x*9*(0+1i))+2/(11*pi)*exp(x*11*(0+1i))+2/(13*pi)*exp(x*13*(0+1i))+2/(15*pi)*exp(x*15*(0+1i))+2/(17*pi)*exp(x*17*(0+1i))}
)
z_axis<-seq(1,-1,length=60)
radian_axis<-seq(0,2*pi,length=60)
x_axis<-Re(f0(radian_axis))
y_axis<-Im(f0(radian_axis))
polygon_60 <- data.frame(X=x_axis, Y=y_axis,Z=z_axis)

#3Dヒストグラム。遠近法プロット (persp)用データをhist2d() を使用して作成
h2d <- hist2d(polygon_60$Y, polygon_60$Z, show=FALSE, same.scale=TRUE, nbins=c(20,30))
# 遠近法プロット (persp) 描画
persp( h2d$x, h2d$y, h2d$counts,
ticktype="detailed", theta=60, phi=30,
expand=0.5, shade=0.5, col="cyan", ltheta=-30,main="polygon 60 with hist2d()",xlab="y",ylab="z",zlab="counts")

}

#アニメーション
library("animation")
Time_Code=c("0","0","0","0","0","1","1","1","2","2","2","3","3","3","4","4","4","5","5","6","7","8","9")
saveGIF({
for (i in Time_Code){
 FASqW_yz(i)
}
}, interval = 0.1, movie.name = "polygon_60_hist2d.gif")

 

f:id:ochimusha01:20191004060559g:plain

詳細な考察については、とりあえず以下に続く…