Re: How to deal with this message?
- To: mathgroup at smc.vnet.net
- Subject: [mg112653] Re: How to deal with this message?
- From: "David Park" <djmpark at comcast.net>
- Date: Fri, 24 Sep 2010 04:12:04 -0400 (EDT)
There is a way to smoothly handle branch cuts in analytic complex functions. Riemann figured it out and of course it's now called a Riemann surface. On the Riemann surface for a multivalued function, the function becomes single-valued and continuous. As you move around the Riemann surface you can continuously recover all the original multivalues. They just occur at different places on the surface. Branch points are real, but branch lines are artifacts and disappear on a Riemann surface. So, can one represent this graphically with Mathematica? Yes, with the right kind of dynamic graphic. We can try to plot a Riemann surface, say by separately plotting the modulus and argument surfaces for the function. However, one or both of these will have artifacts. A surface may cross itself, or there may be a jump from one "edge" of a surface to another "edge". (For example, plotting the real and imaginary surfaces for Sqrt[z] you get two surfaces that each cross themselves, but they don't cross along the same line so the Riemann surfaces doesn't actually cross itself.) Still, such plots can be useful for visualizing the function, maybe as an adjunct to the method I describe next. Another method for the graphical representation of a complex function is a vector plot. For each point in the complex plane attach a vector that represents the complex value of the function. In principle, this is a method of representing the four dimensions required for a complex function plot because we have two dimensions in the plane and two dimensions in the vectors. But if we tried a dense set of points the vectors would interfere with each other so this is not practical. A more practical method is to use a single point but drag it around to explore the complex function. If you do this with regular Mathematica, say with the Sqrt[z], then the vector will jump as the dragged point crosses the branch line. This is because Mathematica doesn't know how to move on Riemann surfaces. Presentations does have routines, Multivalues and CalculateMultivalues, that do know how to follow a path on a Riemann surface. CalculateMultivalues keeps track of the previous evaluation and uses a linear programming assignment problem algorithm to associate the new values with the old values. We only have to follow one of the values because the Riemann surface eventually recovers all of them. With this, the function value (the vector) varies smoothly as the point is moved around. There is no branch line or discontinuity. For example, with Sqrt[z] you can drag the point around the origin, but you will have to drag it around twice to get back to the original value. Drag it around only once and the vector will point in the opposite direction. We are moving on the Riemann surface without any artifacts but we can't actually see the surface. We can only "see" it by its effects. A more interesting function is f[z_] := Sqrt[z - 1] Power[z - I, (3)^-1] This function is portrayed in a paper Murray Eisenberg and I did, "Visualizing Complex Functions with the Presentations Application" in The Mathematica Journal. http://www.mathematica-journal.com/issue/v11i2/EisenbergPark.html The function has branch points at 1 and I. The point must be dragged twice around the branch point at 1 to recover its original value, and three times around the branch point at I to recover the original value. If we look at the close-in argument surface at 1 we will see three interleaved helical surfaces. Circling the point 1 we will be on one of these surfaces. But the three surfaces are all smoothly connected regions of the larger Riemann surface, so if we take a detour around the point at I and then return to circling 1 we will see that we are on another part of the Riemann surface that gives different values, but repeats with two circuits. And if we take another detour around the point I then we will be on the third part of the surface, which again has different values but repeats with two circles. Taking a fourth detour around I (always in the same direction) we will be back to the original part of the Riemann surface. A similar picture emerges from circling the branch point at I and taking detours around 1. So it is possible to travel on a smooth path on function's Riemann surface and obtain a smooth single valued function with no branch lines or other artifacts. And many of these surfaces are beautiful and fun to explore in this manner. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Bill Rowe [mailto:readnews at sbcglobal.net] On 9/22/10 at 1:56 AM, olfa.mraihi at yahoo.fr (olfa) wrote: >Could someone help me to understand in simple terms this message >(especially branch cuts and dependency on them) and how to find >solution to avoid this message. A function with a branch cut is one that exhibits a discontinuity. For example, the square root function exhibits such a discontinuity when fed complex values. That is In[1]:= {Sqrt[-1 + 0.01 I], Sqrt[-1 - 0.01 I]} Out[1]= {0.00499994 + 1.00001 I, 0.00499994 - 1.00001 I} Many mathematical functions exhibit similar behavior for some points in the complex plane. As for avoiding problems with branch cuts, I've no way to provide meaningful suggestions until you provided details of what it is you are trying to do when you got the error message.