theoretical-physics
theoretical-physics copied to clipboard
Add complex analysis section
Introduce arg
, Im
, Re
(or maybe im
, re
). So, in particular, write things like:
arg(z) = atan2(im(z), re(z))
and not
arg(x+iy) = atan2(y, x)
because the latter makes things more complicated. It turns out everything can be written using arg
, re
and im
.
Pick a branch cut, at negative x-axis for arg. Everything else follows from it. Few examples valid for all complex values of all variables:
exp(log(z)) = z
log(exp(z)) = z + 2*pi*i*floor( (pi-Im(z))/(2*pi) )
exp(z)^k = exp(k*z) * exp(2*pi*i*k*floor( (pi-Im(z))/(2*pi) ))
log(z1 * z2) = log(z1) + log(z2) + 2*pi*i*floor( (pi-arg(z1)-arg(z2))/(2*pi) )
exp(x+y) = exp(x)*exp(y)
z^(x+y) = z^x * z^y
(x*y)^a = x^a * y^b * exp(2*pi*i*a*floor( (pi-arg(x)-arg(y))/(2*pi) ))
(z^a)^b = z^(a*b) * exp(2*pi*i*b*floor( (pi-Im(a*log(z)))/(2*pi) ))
Then add some worked out examples:
0 = log(1) = log((-1)*(-1)) = log(-1) + log(-1) + 2*pi*i*floor( (pi-pi-pi)/(2*pi) ) = i*pi + i*pi + 2*pi*i*(-1) = 0
One can find more here:
http://functions.wolfram.com/ElementaryFunctions/Log/16/ShowAll.html
Usually one has to be extremely careful and think about all the branches etc. But the above approach provides a robust, simple, algorithmic way to work with complex expressions. That should be stressed.