Application Center - Maplesoft

App Preview:

Classroom Tips and Techniques: Branches and Branch Cuts for the Inverse Trig and Hyperbolic Functions

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Image 

Classroom Tips and Techniques: Branches and Branch Cuts  for the Inverse Trig and Hyperbolic Functions

Robert J. Lopez

Emeritus Professor of Mathematics and Maple Fellow

Maplesoft 

 

Introduction 

 

Properties of the inverse trig and hyperbolic functions in Maple depend on Maple's choices of branch cuts and principal branches.  Some of this information is available to the user, and some can be deduced.  In this month's article, we show how to determine principal branches and branch cuts for these twelve functions, and then provide a tool for assembling the information in a user-friendly graphical format. 

 

The FunctionAdvisor Command 

 

The FunctionAdvisor command provides access to the information Maple has stored for nearly all its special functions.  In particular, it can be queried for the branch cuts of a function.  For example, applying it to the arctangent function, we find 

 

FunctionAdvisor(branch_cuts, arctan) 

[arctan(z), `in`(z, ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I)))), `+`(`-`(I)))), `in`(z, ComplexRange(I, `*`(infinity, `*`(I))))], [arctan(y, x), ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I))))...
[arctan(z), `in`(z, ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I)))), `+`(`-`(I)))), `in`(z, ComplexRange(I, `*`(infinity, `*`(I))))], [arctan(y, x), ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I))))...
 

 

There are a number of issues to deal with here.  First, note that information for both arctan(z) and arctan(y, x) has been returned.  To focus on just the first, issue the command as 

 

FunctionAdvisor(branch_cuts, arctan)[1] 

[arctan(z), `in`(z, ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I)))), `+`(`-`(I)))), `in`(z, ComplexRange(I, `*`(infinity, `*`(I))))] (2.1)
 

 

Second, note that the "ComplexRange" construction yields to a conversion to "relation" as in 

 

convert([arctan(z), `in`(z, ComplexRange(`+`(`-`(`*`(`+`(infinity), `*`(I)))), `+`(`-`(I)))), `in`(z, ComplexRange(I, `*`(infinity, `*`(I))))], relation) 

[arctan(z), And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))] (2.2)
 

 

Third, to enter an underscore in Math mode, the escape character (\) should be typed first.  Otherwise, Math mode interprets the underscore as a signal to lower the cursor for a subscript. 

 

Finally, note that the "And" construction can be simplified.  We show how to do this after we delete arctan(z) from [arctan(z), And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))] with 

 

subsop(1 = NULL, [arctan(z), And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))]) 

[And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))] (2.3)
 

 

Since [And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))] is a list containing two instances of "And", we must map the conversion process onto the list.  Thus, we have 

 

map(convert, [And(Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)), And(Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity))], list) 

[[Re(z) = 0, `<=`(`+`(`-`(infinity)), Im(z)), `<=`(Im(z), -1)], [Re(z) = 0, `<=`(1, Im(z)), `<=`(Im(z), infinity)]]
 

 

Table 1 contains the result of all such manipulations for the inverse trig, and inverse hyperbolic functions. 

 

Matrix(%id = 63012120) 

Table 1   Modified output for FunctionAdvisor applied to each inverse trig and hyperbolic function 

 

Table 1 was generated as a Maple matrix, using a number of Maple commands to make the desired modifications.  The final results are about the best that can be obtained using a basic set of commands.  Of course, it would have been possible to typeset (by hand) a more readable version, but instead, we have captured the information in a more visual way, in Figure 4, below. 

 

Visualizing a Branch Cut 

 

Figures 1 and 2 are respectively graphs of the real and imaginary parts of the function w = arcsin(z), where z = `+`(x, `*`(i, `*`(y))). 

 

plot3d(Re(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
plot3d(Re(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
plot3d(Re(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
 

Plot
 

 

plot3d(Im(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
plot3d(Im(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
plot3d(Im(arcsin(`+`(x, `*`(I, `*`(y))))), x = -3 .. 3, y = -3 .. 3, axes = box, orientation = [-50, 65])
 

Plot
 

 

Figure 1   Real part of w = arcsin(z) 

Figure 2   Imaginary part of w = arcsin(z) 

 

In Figure 2, a discontinuity is apparent along the real axis, and corresponds to the information produced by the FunctionAdvisor, namely, that the branch cuts are along `<=`(z, -1) and `>=`(z, 1). 

 

The branches Command 

 

Maple 12 contains an earlier version of the branches command, which has been upgraded for the next version of Maple.  This command produces a schematic of the principal branches of z = f(w), where f is one of the twelve functions in Table 1.  For example, Figure 3 displays the result of applying the branches command to arcsin(w).   

 

This schematic is drawn in the range space, using the notation z = arcsin(w), the axis labels being hard-coded with Re(z) and Im(z).  Unfortunately, this notation contradicts the usage in the FunctionAdvisor where the functions are given as w = f(z). 

 

Fortunately, updated code in the branches command will allow the user to impose alternate labels, and to be consistent with the branch-cut information generated by the FunctionAdvisor command, as we have provided in the composite tool given in Figure 4. 

 

branches(arcsin) 

Plot_2d
 

 

Figure 3   Application of the branches command to the arcsin function 

 

The magenta boundaries indicate the continuity of the function as the boundary of the principal branch is approached.  It is unfortunate that the boundary of the branch to the left of the principal branch uses the color red.  It may be difficult to distinguish between these two colors when they are contiguous.  Similarly, the branch to the right of the principal branch uses green, and this abuts a line segment drawn in cyan, two nearly identical colors. In the modified version of the branches command, the user has control over the colors used and the labels on the axes.  The schematics drawn by the modified code can be seen below in Figure 4. 

 

Compilation of Branch Information 

 

In addition to the information shown in Figures 1, 2, and 3, it is also useful to see the image, under w = f(z), of the branch cuts of the principal branch.  It is also useful to see a graph of the branch cuts themselves - it's a lot easier to comprehend the visual than it is to interpret the analytic information in Table 1. 

 

Figure 4 is a composite of all the information that Maple can provide about principal branches and their branch cuts.  On the left, there are graphs of the real and imaginary parts of w = f(z), where f is one of the inverse functions selected by clicking on a radio button in the display.  In the central column are two graphs drawn in the w-plane, the upper one generated by the improved branches command; and the lower one being just the image in the w-plane of the cut under the mapping w = f(z).  The graph on the upper right shows the cut itself in the z-plane, and this is color-coded to the graphs of the images of the cuts in the w-plane.  This graph is interactive - dragging the "Click and Drag" indicator  

 

Image  

 

with the mouse causes the image of a point in the z-plane to appear as a red dot in the w-plane. (To select this indicator, click on the graph and make the selection from the plotting toolbar at the top of the worksheet.  Alternatively, apply Context Menu: Manipulator>Click and Drag.) 

 

Finally, at the bottom of Figure 4 the branch cuts are given in interval notation. 

 

Branches of w = f(z), the Inverse Trig and Hyperbolic Functions 

arcsin 

arcsinh 

arccos 

arccosh 

arctan 

arctanh 

arccot 

arccoth 

arcsec 

arcsech 

arccsc 

arccsch 

Embedded component 

Embedded component 

Embedded component 

Embedded component 

Embedded component 

Embedded component 

Branch Cut(s): Embedded component                         

Figure 4   Composite Maple information on the branches and branch cuts of the inverse trig and hyperbolic functions 

 

Legal Notice: The copyright for this application is owned by Maplesoft. The application is intended to demonstrate the use of Maple to solve a particular problem. It has been made available for product evaluation purposes only and may not be used in any other context without the express permission of Maplesoft.