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

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

【複素数座標系】統計言語Rでの扱い方のまとめ。

オイラーの公式Euler's formulaexp(x*(0+1i))=cos(x)+sin(x*(0+1i))に従って円弧が描かれる時、実は元となる指数関数±exp(x*(0+1i))や対数関数±log(x*(0+1i))も、こんな見慣れない形をしてるのです。まずはこの「全ての曲線が円周上に収束していくブラックホールの様な強烈な情景を心にしっかりと焼き付けるところから始めねばなりません。

f:id:ochimusha01:20190607141445p:plain

当然Sin(Θ)/Cos(Θ)=Tan(Θ)と規定されるタンジェント関数の振る舞いも別物に。
統計言語Rでの汎用計算機代数ソフトウェアYacasによる計算例

library(Ryacas)
yacas("Sin(x)/Cos(x)")
expression(tan(x))
yacas("Tan(0)")
expression(0)
yacas("Tan(Pi/4)")
expression(1)
yacas("Tan(Pi/2)")
expression(Inf)
yacas("Tan(3*Pi/4)")
expression(-1)
yacas("Tan(Pi)")
expression(0)

統計言語Rでの検証例

#通常のタンジェント関数の振る舞い。
tan(0)
[1] 0
tan(pi/4)
[1] 1
tan(pi/2)
[1] 1.633124e+16
#無限大
tan(3*pi/4)
[1] -1
tan(pi)
[1] -1.224647e-16
round(tan(pi))
[1] 0
plot(tan,xlim=c(-6,6),ylim=c(-10,10),main=c("Tangent function"))

f:id:ochimusha01:20190608034629p:plain

ここにXi(0+1i)を放り込むと…
統計言語Rでの汎用計算機代数ソフトウェアYacasによる計算例

#Xiを放り込まれたタンジェント関数の振る舞い。長考の末、こんな答え。
library(Ryacas)
yacas("Tan(Complex(0,1))")
expression(complex_cartesian(0, (exp(1) - exp(-1))/(exp(-1) +
exp(1))))
yacas("Tan(Pi/4*Complex(0,1))")
expression(complex_cartesian(0, (exp(pi/4) - exp(-(pi/4)))/(exp(-(pi/4)) +
exp(pi/4))))
yacas("Tan(Pi/2*Complex(0,1))")
expression(complex_cartesian(0, (exp(pi/2) - exp(-(pi/2)))/(exp(-(pi/2)) +
exp(pi/2))))
yacas("Tan(3*Pi/4*Complex(0,1))")
expression(complex_cartesian(0, (exp(3 * pi/4) - exp(-(3 * pi/4)))/(exp(-(3 *
pi/4)) + exp(3 * pi/4))))
yacas("Tan(Pi*Complex(0,1))")
expression(complex_cartesian(0, (exp(pi) - exp(-pi))/(exp(-pi) +
exp(pi))))

統計言語Rでの検証例

#Xiを放り込まれたタンジェント関数の振る舞い。
tan(0+1i)
[1] 0+0.7615942i
tan(pi/4*(0+1i))
[1] 0+0.6557942i
tan(pi/2*(0+1i))
[1] 0+0.9171523i
tan(3*pi/4*(0+1i))
[1] 0+0.9821934i
tan(pi*(0+1i))
[1] 0+0.9962721i
plot(f0,xlim=c(-6,6),ylim=c(-1,1),main=c("Tangent function with xi"),xlab=c("xi"),ylab=c("tan(xi)"))
警告メッセージ:
xy.coords(x, y, xlabel, ylabel, log) で:
複素数の虚部は、コネクションで捨てられました

f:id:ochimusha01:20190608040627p:plain

 ベクトルの要素中に 1 つでもそれが見つかれば要素全体がそれとなる複素数complex)あるいは虚数解(Imaginary solutions)は固有のコマンド系を有します。
統計言語Rのコマンド一覧

complex_names=c("Real","Imaginal","Module","Argument","Conjugate")
#実部(Real)、虚部(Integer)、絶対値(Mod=Module)、偏角(Argument)、共役(Conjugate)
complex_comands=c("Re()","Im()","MOD()","Arg()","Conj()")

Complex_Comands=data.frame(Complex_Names=complex_names,Complex_Comands=complex_comands)

print(Complex_Comands)

f:id:ochimusha01:20190405041558p:plain

library(xtable)
print(xtable(Complex_Comands),type = 'html') 

  Complex_Names Complex_Comands
1 Real Re()
2 Imaginal Im()
3 Module MOD()
4 Argument Arg()
5 Conjugate Conj()

#参考にしたサイト

種々のベクトル

統計言語Rによる実装例その1

# 虚数 1+i を表すときは 1+1i と表記する。1+i とすると i は変数と認識される。

c(1+1i, 2+3i) 

[1] 1+1i 2+3i 

#実数部分をRe(x) 、虚数部分をIm(x)で取り出せる。
xi<-c(2+3i)
Re(xi)
[1] 2
Im(xi)
[1] 3

complex(re=1:3, im=4:6) # re=実部(Real Part) ,im=虚部(Imaginary Part)

[1] 1+4i 2+5i 3+6i

complex(mod=c(1,2), arg=c(0, pi)) # mod:絶対値,arg:偏角

[1] 1+0.000000e+00i -2+2.449213e-16i

#参考にしたサイト

種々のベクトル

汎用計算機代数ソフトウェアYacasの対応操作

#Yacasの虚数単位はI
yacas("I")
expression(complex_cartesian(0, 1))
yacas("3+2*I")
expression(complex_cartesian(3, 2))
#実数部分をRe(x) 、虚数部分をIm(x)で取り出せる。
yacas("Re(Complex(3,2))")
expression(3)
yacas("Im(Complex(3,2))")
expression(2)
#共益複素数
yacas("Conjugate(Complex(3,2))")
expression(complex_cartesian(3, -2))

#極形式
yacas("Mod(1+I)") #絶対値
expression(remainder(complex_cartesian(1, 1)))
yacas("Arg(1+I)") #偏角
expression(pi/4)

統計言語Rによる実装例その2

z<-complex(real=3,imaginary=2)
print(z)
[1] 3+2i
Re(z) # 実数成分を取り出す
[1] 3
Im(z) #虚数成分を取り出す
[1] 2
Conj(z) # 共役複素数
[1] 3-2i 
#極座標(polar coordinates)表示関係
Mod(z)
[1] 3.605551
sqrt(Re(z)^2+Im(z)^2)
[1] 3.605551
# 複素平面ではz=x+ iy として「絶対値(Mod)=距離」sqrt(x^2+y^2)=Mod(z)
Arg(z)
[1] 0.5880026

Mod(z)*(cos(Arg(z))+complex(real=0,imaginary=1)*sin(Arg(z))

[1] 0.5880026

#z=x+iy = Mod(z) * cos(t)+i sin(t); t=Arg(z)
この世界観における「オイラーの等式」の扱いは以下。

# e^{pi i} = -1
exp(pi*complex(real=0,imaginary=1))
[1] -1+0i

#参考にしたサイト

種々のベクトル

実数の世界と虚数の世界の往復について…
統計言語Rによる検証例

#Rの標準ライブラリは、複素数として明示された場合だけ相応の対応をする。
sqrt(1)
[1] 1
sqrt(complex(real=1,imaginary=0))
[1] 1+0i
sqrt(1+0i)
[1] 1+0i
sqrt(-1)
[1] NaN
警告メッセージ: sqrt(-1) で計算結果が NaN になりました sqrt(complex(real=-1,imaginary=0))
[1] 0+1i
sqrt(-1+0i)
[1] 0+1i

汎用計算機代数ソフトウェアYacasの対応操作

library(Ryacas)
yacas("sqrt(1)")
expression(sqrt(1))
yacas("Sqrt(complex(real=1,imaginary=0))")
expression(root(complex(false, false), 2))
yacas("Sqrt(1+0*I)")
expression(1)
yacas("sqrt(-1)")
expression(sqrt(-1))
yacas("Sqrt(Complex(-1,0) )")
expression(complex_cartesian(0, 1))
yacas("Sqrt(-1+0*I)")
expression(complex_cartesian(0, 1))
#オイラーの等式の扱い
exp(pi*complex(real=0,imaginary=1))
[1] -1+0i
yacas("Exp(Pi*Complex(0,1))")
expression(-1)

 

以下の投稿に密接に関わってくる数理モデルとしての根幹部。

f:id:ochimusha01:20190419005154g:plain


f:id:ochimusha01:20190512232958g:plain