コードが汚いことは気にしないで!
複素正則函数 $f(z)$ に対して、実二次元平面におけるベクトル場
$$ (x,y)\mapsto (\mathrm{Re}\,f(x+iy),-\mathrm{Im}\,f(x+iy)) $$が対応している。そのベクトル場に沿った流れの図を描きたい。
特に特別な形の有理函数 $Q(z)$ に対する $f(z)=\sqrt{Q(z)}$ の流れの図を描きたい。
モチベーションは exact WKB に親しみやすくなること。
$\sqrt{Q(z)}$ の流れの図から Stokes 曲線を見て取ることができる。
using PyPlot
#PyPlot.svg(true) #slow
ae()=axes()[:set_aspect]("equal")
plotstart() = plt[:figure](figsize=(8,8))
function plotvf(z,w)
r = abs.(w)
plt[:quiver](real(z),imag(z),real(w./r),-imag(w./r), log.(r))
end
plotstream(z,w) = plt[:streamplot](real(z),imag(z),real(w),-imag(w),
color="orange", linewidth=0.5, arrowsize=0.01, density=(3,3))
ploto(x,y,c)=plot(x,y,"o",color=c,mew=2)
plotx(x,y,c)=plot(x,y,"x",color=c,mew=2)
x = [-2:0.2:2;]'
y = x'
z = x .+ y.*im
δ=0.5
for t in -δ:δ:δ
plotstart()
title("\$t = $t\$")
w = exp(im*t)*sqrt.(1-z.^2)
plotvf(z,w)
plotstream(z,w)
#grid("on")
plotx(1,0,"black")
plotx(-1,0,"black")
plot([-1,-2],[0,0],color="blue")
plot([1,2],[0,0],color="blue")
ae()
end