function ∮(f,path)
s=0
for i in 2:length(path)
s=s+f((path[i]+path[i-1])/2)*(path[i]-path[i-1])
end
return s
end
∮ (generic function with 1 method)
function □(leftdown,rightup,num)
r1=real(leftdown)
r2=real(rightup)
i1=imag(leftdown)
i2=imag(rightup)
a=linspace(r1,r2,num)+i1*im
b=linspace(i1,i2,num)*im+r2
c=linspace(r2,r1,num)+i2*im
d=linspace(i2,i1,num)*im+r1
return vcat(vcat(a,b),vcat(c,d))
end
□ (generic function with 4 methods)
g(z)=z*3
f(z)=1/z
f (generic function with 1 method)
gは極を持たない複素平面全域で正則な関数
fは原点に極を持つ
cc=□(3+im,4+3*im,4)
∮(g,cc)
8.881784197001252e-16 + 3.552713678800501e-15im
∮(g,□(3+im,0+im,4))
0.0 + 0.0im
cr=□(1+im,3+im)
∮(g,cr)
1.5543122344752192e-15 - 4.440892098500626e-16im
c=□(1+im,3+2*im)
println(∮(g,c))
println(∮(f,c))
1.0547118733938987e-15 - 3.552713678800501e-15im -0.00018306775067675196 + 0.0009021823204503621im
c=□(-5+-5im,4+4*im)
println(∮(g,c))
println(∮(f,c))
0.0 + 0.0im 9.71445146547012e-17 + 6.291421562431563im
2*π
6.283185307179586