共形変換 続き

  • 昨日、共形変換とそれを定義づけるに際して出てくる複素関数の諸用語についてメモをした
  • その中で、複素平面全域で微分可能な複素関数級数展開できること、そのような関数は正則であることを書き、正則関数は共形変換を定めるし、正則関数を分母分子にする有理型関数も一部の点を除き微分可能であって、そこを除けば微分可能であるので、滑らかに複素平面上の動きを作る〜微分方程式を表す「ベクトル場」が得られることが、なんとなく了解できた。
  • とすると、適当に複素多項式を作れば、それが表す共形変換も作れるから、それをやってみる

n <- 5
ks <- runif(n+1)*0.01 + 1i*runif(n+1)*0.01

make.poly.fx <- function(ks){
	n <- length(ks)
	tmp.fx <- function(x){
		ret <- rep(0,length(x))
		for(i in 1:n){
			ret <- ret + x^(i-1)*ks[i]
		}
		ret
	}
}
xy <- my.grid(X=seq(from=-2,to=2,length=20),Y=seq(from=-2,to=2,length=20))
z <- xy[,1] + 1i * xy[,2]
#t <- seq(from=0,to=1,length=100)
#a <- runif(1)*2+1i*runif(1)
#b <- runif(1)*3+1i*runif(1)*3
#z <- a*t+b
my.f <- make.poly.fx(ks)

zz <- my.f(z)

plot(Re(zz),Im(zz),pch=20,cex=0.1,type="p")
  • 有理型にしてみる

n <- 3
n.2 <- 6
ks <- runif(n+1)*0.01 + 1i*runif(n+1)*0.01
ks.2 <- runif(n.2+1)*0.01 + 1i*runif(n.2+1)*0.01

make.poly.fx <- function(ks){
	n <- length(ks)
	tmp.fx <- function(x){
		ret <- rep(0,length(x))
		for(i in 1:n){
			ret <- ret + x^(i-1)*ks[i]
		}
		ret
	}
}
xy <- my.grid(X=seq(from=-2,to=2,length=20),Y=seq(from=-2,to=2,length=20))
z <- xy[,1] + 1i * xy[,2]
#t <- seq(from=-10,to=10,length=100)
#a <- runif(1)*2+1i*runif(1)
#b <- runif(1)*3+1i*runif(1)*3
#z <- a*t+b
my.f <- make.poly.fx(ks)
my.f.2 <- make.poly.fx(ks.2)
zz <- my.f(z)/my.f.2(z)

q.val <- 0.2
xlim <- quantile(Re(zz),c(q.val,1-q.val))
ylim <- quantile(Im(zz),c(q.val,1-q.val))
plot(Re(zz),Im(zz),pch=20,cex=0.1,type="p",xlim=xlim,ylim=ylim)