eiφ = cosφ+isninφ Eular の公式を用いると, 複素数 z は z = r(cos φ + i sin φ) = reiφ と書くことができる。 …. 複素数の表現 z = reiφ において φ が 0 から 2π ま で変化すれば、z を表す点は半径 r の円周上 を一周する。
z <- c(0+0i,NA)
for(d in 1:16){
phi <- seq(0,2*pi,length=2^d+1)
for(i in phi)
z <- c(z,sqrt(d)/2*exp(1)^(1i*i))
z <- c(z,NA)
}
plot(z,type="b",pch=".")
par(pty = "s") # プロット領域を正方形にする
plot(z, type="b", pch=".")
grid() # グリッ
points(z, type="b", pch=".") # グリッドを上書き
points(0+0i, pch=20) # 0+0i だけをプロット 想像できましたね
library(rgl)
library(knitr)
knit_hooks$set(webgl = hook_webgl)
## Warning in file(con, "r"): file("") は、open = "w+" と open = "w+b" だけを
## サポートします: 前者を使います
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
#################################################
"回転行列" <- function(d,#角度
a){#元の座標 matrix形式
df <- matrix(c(cos(d),sin(d),-sin(d),cos(d)),2,2)
df1 <- df %*% a
}
"複素数回転" <- function(d,a){
z <- complex(real=a[1]*cos(d) - a[2]*sin(d),#######!!!!!
imaginary=a[2]*cos(d) + a[1]*sin(d))
}
c1 <- 8 ; c2 <- 0
a <- matrix(c(c1,c2),2,1)#元の座標 matrix形式
plot(0:10,0:10,type="n")
points(t(a),pch=19)
a1 <- 回転行列(pi/3,a)
par(new=TRUE)
points(t(a1),pch=21,col=4)
# 実数成分、虚数成分を与えて、複素数を作る
z1 <- complex(real=c1,imaginary=c2)
# 実数成分を取り出す
Re(z1)
## [1] 8
#[1] 3
# 虚数成分を取り出す
Im(z1)
## [1] 0
d <- pi/3
#z2 <- complex(real=cos(d),imaginary=sin(d))
#z2 * z1
z3 <- complex(real=c1*cos(d) - c2*sin(d),#######!!!!!
imaginary=c2*cos(d) + c1*sin(d))
#par(new=TRUE)
Re(z3);Im(z3);Mod(z3)
## [1] 4
## [1] 6.928203
## [1] 8
plot(0:10,0:10,type="n")
points(Re(z3),Im(z3),pch=21,col=4)
a <- c(c1,c2)
b <- 複素数回転(d,a)
#par(new=TRUE)
Re(b);Im(b);Mod(b)
## [1] 4
## [1] 6.928203
## [1] 8
plot(0:10,0:10,type="n")
points(Re(b),Im(b),pch=15,col=2)
##################################################
#複素数 sqrt(3)+i を5乗せよ
##################################################
z1 <- complex(real=sqrt(3),imaginary=1)
# 実数成分を取り出す
Re(z1)
## [1] 1.732051
#[1] 3
# 虚数成分を取り出す
Im(z1)
## [1] 1
plot(0:2,0:2,type="n")
points(Re(z1),Im(z1),pch=19)
lines(c(0,Re(z1)),c(0,1),lty=1)
r <- sqrt((Re(z1))^2 + 1^2)
cos(pi/6) == round(Re(z1)/r,7)
## [1] FALSE
#sqrt(3)+i=2(sqrt(3)+i*1/2)=2(cos(pi/6) + isin(pi/6))=2 *exp^i*pi/6
#-------
plot(-30:5,-5:30,type="n",xlab="実数",ylab="虚数",
main="複素数 sqrt(3)+i を5乗せよ!!")
abline(h=0,v=0,lty=3,col=8)
a <- seq(1:5)
n <- length(a)
y1 <- y2 <- c()
for(j in 1:n){
aa <- z1^j
y1[j] <- Re(aa);y2[j] <- Im(aa)
par(new=TRUE)
points(y1[j],y2[j],pch=19)
if(j==1){
#lines(c(0,y1[j]),c(0,y2[j]),lty=1,col=j)#線
arrows(0,0,y1[j],y2[j],lty=1,col=j)#矢印
} else{
#lines(c(y1[j-1],y1[j]),c(y2[j-1],y2[j]),lty=1,col=j)
arrows(y1[j-1],y2[j-1],y1[j],y2[j],lty=1,col=j)
}
}
(y <- cbind(y1,y2))
## y1 y2
## [1,] 1.732051e+00 1.000000
## [2,] 2.000000e+00 3.464102
## [3,] -8.881784e-16 8.000000
## [4,] -8.000000e+00 13.856406
## [5,] -2.771281e+01 16.000000