Skip to content

Add complex analysis section #23

@certik

Description

@certik

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions