1
$\begingroup$

Just when I thought I understood the basics of branch cuts, I started to plot some standard functions to see how they were handled on a computer. I used python 2.7

I plotted the function

\begin{align} \sqrt{z^2-1} \end{align}

and got:

enter image description here

So why are there branch cuts along the entire imaginary axis and between +1 and -1? For branch cuts I thought we had to identify where the argument of the square root is zero, which gives us the branch points and then we are free to take lines from those branch points to infinity in any way we like. Am I missing something? How would I tailor the inbuilt python function to choose my own branch cuts?

Original question:

I came upon this presentation. What concerns me are the branch cuts for

\begin{align} \sqrt{z^2-1} = \sqrt{z+1}\sqrt{z-1}\\ \sqrt{1-z^2} = \sqrt{1-z}\sqrt{1+z} \end{align}

enter image description here

The image shows the branch cuts in red for the first identity on the left and the second on the right. Why is there a branch cut extending the imaginary axis in the second case?

$\endgroup$
  • $\begingroup$ I dont have a high opinion of the source. $\endgroup$ – Rene Schipperus Sep 8 '14 at 17:03
  • $\begingroup$ Is that to say I should regards the above as completely false? Thanks. $\endgroup$ – Dipole Sep 8 '14 at 17:10
  • $\begingroup$ Yeah, plus I looked at some of the other things he said, and he clearly doesnt understand what is happening. $\endgroup$ – Rene Schipperus Sep 8 '14 at 17:15
  • $\begingroup$ In the first place those two functions are multiples of each other by a factor of $i$. $\endgroup$ – Rene Schipperus Sep 8 '14 at 17:16
  • $\begingroup$ Ok, well in a way that is slightly reassuring as it confused me! $\endgroup$ – Dipole Sep 8 '14 at 17:26
2
$\begingroup$

The "branch-cuts" along the imaginary axis seem to be a software artifact. The value of $\sqrt{z^2-1}$ is (apparently) computed by first computing $z^2-1$, and then taking the square root, choosing the square root with non-negative real part [and probably the one with non-negative imaginary part when the square root is purely imaginary]. That loses the information where the value whose square root shall be taken comes from, and thus leads to an even function (since $z^2-1$ is even), instead of a continuous branch, which would be an odd function (with the branch-cut $[-1,1]$). To avoid that, you need to remember where $z$ lies, and for $z$ in the left [or in the right, if you want the other branch] half-plane multiply the computed value with $-1$ [also for $z$ in the upper or lower half of the imaginary axis].

Then you should get a nice smooth plot, with a branch-cut on the interval $[-1,1]$.

For branch cuts I thought we had to identify where the argument of the square root is zero, which gives us the branch points and then we are free to take lines from those branch points to infinity in any way we like.

That describes the situation for $\sqrt{z}$ and similar, but generally, there are a few other considerations. If you have a rational function $f$, and consider $\sqrt{f(z)}$, the potential branch points are the zeros and poles of $f$.

But zeros and poles of even multiplicity are not actual branch points (in a neighbourhood of such a point you have $f(z) = (z-z_0)^{2k}\cdot h(z)$ with a holomorphic $h$ that does not vanish at $z_0$, so $\sqrt{h(z)}$ is holomorphic in a neighbourhood of $z_0$ and $\sqrt{f(z)} = (z-z_0)^k\sqrt{h(z)}$ is a well-defined meromorphic function in a neighbourhood of $z_0$), so only the zeros and poles of odd multiplicity are actual branch-points. [The situation is similar for $k$-th roots, zeros and poles whose multiplicity is a multiple of $k$ aren't branch-points, zeros and poles of other multiplicities are; essential singularities of $f$ may or may not be branch-points of $\sqrt[k]{f(z)}$, consider $\exp \frac{1}{z}$ and $z\exp \frac{1}{z}$.] Then you need to connect each branch-point to at least one other branch-point with a branch-cut to obtain a domain on which a holomorphic branch of $\sqrt[k]{f(z)}$ is defined.

In the situation here, $\infty$ is a pole of multiplicity $2$ of $z^2-1$, so we have only the two branch-points $1$ and $-1$ of $\sqrt{z^2-1}$. Any curve connecting the two branch-points gives a region on which a holomorphic branch of $\sqrt{z^2-1}$ is defined, whether that curve passes through $\infty$ or not. The most common choices of branch-cuts are the interval $[-1,1]$ and the other arc of the real axis (plus $\infty$) connecting the two points, $\bigl(\mathbb{R}\setminus (-1,1)\bigr) \cup \{\infty\}$ [the latter branch-cut makes $\sqrt{z^2-1}$ an even function on its domain].

The image shows the branch cuts in red for the first identity on the left and the second on the right.

I don't think splitting the radicand into factors is a good idea here. For $\sqrt{z+1}$ and $\sqrt{z-1}$ (resp. $\sqrt{1+z}$ and $\sqrt{1-z}$), you need a branch-cut connecting $\mp 1$ to $\infty$, but for $\sqrt{z^2-1}$, $\infty$ is in no way a special point. The branch-cuts of a product can [often] be chosen quite differently from the branch-cuts of the factors.

Why is there a branch cut extending the imaginary axis in the second case?

There shouldn't be. It's most likely an artifact of how the values are computed by the software.

How would I tailor the inbuilt python function to choose my own branch cuts?

Write a wrapper that multiplies the result of the inbuilt square root function with $-1$ for $z$ in the appropriate parts of the plane, according to your chosen branch-cuts.

$\endgroup$
  • $\begingroup$ Thanks for your detailed answer! $\endgroup$ – Dipole Sep 9 '14 at 12:02
  • $\begingroup$ I think I might have to post some code showing how I go about manually choosing the branch cuts, to confirm if I am doing so correctly, but perhaps Computational SE is the more appropriate place to do so. $\endgroup$ – Dipole Sep 9 '14 at 12:25
  • $\begingroup$ I don't know, the question would be whether you got the mathematics right, wouldn't it? That would be on topic here. But if you post here, you'd need to also describe what the code does in the text, I think, only the code would not be enough since we can't assume fluency in Python here. $\endgroup$ – Daniel Fischer Sep 9 '14 at 12:31
  • $\begingroup$ Ok sounds good! Should I open a new question or add to this one? $\endgroup$ – Dipole Sep 9 '14 at 12:39
  • $\begingroup$ I think a new question would be better. $\endgroup$ – Daniel Fischer Sep 9 '14 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.