| ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Implementing the General ConstructionLet us demonstrate the steps outlined above using the following not-too-simple function. A contour plot shows that We canonicalize all functions by writing them explicitly in logarithms. This rewriting allows for a more uniform treatment
of all functions. We will not have to deal separately with all of the individual Here are two examples of canonicalized functions. This representation shows the source of the three poles visible in the above contour plot. They are caused by the arguments
of the logarithms when the arguments become zero. This event happens at exactly three The next step is to determine all potential branch points. (I say potential branch points because in some situations they might turn out not to be branch points, but including them does not hurt in
any way.) To do this we select all Here are two examples of the result of applying Here are the multivalued terms of our example function. The branch points are then given as the zeros and infinities of these expressions, because a rational function can map the
branch point at infinity to a finite The branch points of The branch points of The branch points of Here are some examples of We encourage the reader to carefully examine the following values for the potential branch points and to note from which functions they arise. The following function is meromorphic in We get the following branch points for our example function We transform all exact numeric quantities into approximate floating point numbers. All of the further work is mainly numerical in nature anyway. Now that we have found the finite branch points, we divide the complex These are the sectors originating from the example function. Let us visualize the sectors together with the branch points by coloring each sector with a randomly chosen color. The function
Now we must consider all the multivalued terms in our function , .b. Logarithms will be continued according to , . We will use only a finite number of sheets--typically three--later on for the graphics. c. Powers of the form will be continued by rewriting them using logarithms as . This reduces this case to case b.d. Root objects will be continued according to Root[![]() ,![]() ]![]() Root[![]() ,![]() ], .To differentiate the various multivalued terms, we give each of them an "index," like Here are all multivalued terms numbered in The numbering for two other examples is as follows. Now we extract all indexed terms from the function and collect them in a list. Each of the numbered multivalued functions is now replaced by a symbolic function The result of We now generate differential equations from the last list of substitutions. Doing this seems like a lot of work, considering
that we already know the solution of these differential equations--these are just the values at the other sheets--but it is
unavoidable. Although we know the location of the branch points, we do not know the detailed location of the branch cuts.
So our solution might not represent the intended sheet. The branch cuts might form complicated patterns inside the sectors
calculated above, and it would be very difficult or virtually impossible to construct the "correct" sheet purely symbolically.
(Consider log(aComplicatedPolynomial). The branch points are just the zeros of aComplicatedPolynomial, but the branch cuts will typically wind through the individual sectors as complicated curves.) The resulting system of differential
equations is then of the form We obtain the differential equation for We use implicit differentiation to obtain the differential equation, meromorphic in We obtain the differential equation for Here are the differential equations corresponding to Here the differential equation corresponding to a The right-hand sides of the last system of differential equations often still contain the derivatives of some of the Let us look at the resulting system of differential equations for two more examples. Here is the differential equation system
corresponding to Here are the systems of differential equations that corresponds to some more complicated functions. Now we must consider the sheets we actually want to display. When near a branch point (i.e., at the corners of our sectors),
we will choose the sheets that we want to continue analytically. For radicals we will use all possible sheets (if the reader
is going to use high order radicals one might want to restrict this). For logarithms we will use by default three neighboring
sheets (the one "below" and the one "above" the "original" one). As with radicals, we take all sheets into account when using
This method results in the following sheet realizations of our numbered functions. Forming the outer product of all possible sheet realizations of all multivalued functions, we get all potential sheets. For our example function there are Here is the first realization. Now we implement two functions that transform a given differential equation of the form We get the following differential equations for our example function. Now we will finally solve the coupled set of differential equations to get the Riemann surface. The function We set the The following shows one sheet inside the first sector for One sheet (not always the same) for all sectors is shown. Here is a view of the surface patches from the last picture from "above." The sector structure is clearly visible. We now consider the generation of all sheets of interest inside one sector. The first step is to calculate the numerical values
of the sheets at one of the corners of a sector. If two such values agree, then they represent the same sheet (both are generated
by a differential equation without multiple solutions for given initial conditions). The built-in function The function Now we generate all patches inside a given sector. After we apply The function Here all the patches for our example function for the fifth sector are shown. One easily sees the branch point where the sheets touch each other. The function Now we finally have all the ingredients together to implement the function The function The basic test The function For convenience, we now allow equations as inputs so that implicit forms can be used, too. Now we have implemented all functions needed to visualize the Riemann surface. For our example function we arrive at the following pictures for the imaginary and real parts. As the previous picture shows, the imaginary part is a faithful image of the Riemann surface. Here is another example: the Riemann surface of an algebraic function. Note: we can get a purely polynomial description of this function by using the function Here is another example that contains the inverse of the error function. You did not really expect the last example to work, did you? As mentioned in the introduction, the Riemann surface of such
functions will be constructed in Part III of this series, and this is only the third installment of Part II! According to the test implemented in Copyright © 2002 Wolfram Media, Inc. All rights reserved. |