closures.html closures.mws ● ● CCC functions ❍ arcsin, arccos, arctanh ❍ arctan, arccot, arcsinh Exceptions ❍ arccsc, arcsec ❍ arccoth ❍ arccsch ❍ arccosh and arcsech Closures of branch cuts for elementary functions in Maple 7. Robert M. Corless August 1, 2001 This worksheet looks at the closures of the Maple implementations of the elementary functions on their branch cuts, by experiment. Done during the Celebration of Light, Vancouver; reflections of fireworks bouncing off the glass buildings in front of me, thunder and cheers echoing all around. I emphasize that this worksheet explores Maple's implementations: other computer algebra systems may differ, not usually in the placement of the branch cut but perhaps on the closures. > restart; > plots[setoptions](axes=BOXED,colour=BLACK,scaling=CONSTRAINED); plots[setoptions3d](axes=BOXED,style=PATCHNOGRID); The routine "compar" takes a function "f", a point "a", and a direction "dir" (meant to be a signed zero). If f(a+dir)-f(a) is zero then f is continuous at a in the direction dir. The routine returns four lists, checking out +/-a +/- dir. > compar := proc( f, a, dir ) print( evalf([a,dir,f(a+dir)-f(a)]), evalf([a,-dir,f(a-dir)-f(a)]), evalf([-a,dir,f(-a+dir)-f(-a)]), evalf([-a,-dir,f(-a-dir)-f(-a)]) ) end proc; http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (1 of 21)9/14/2004 5:10:14 AM closures.html > CCC functions CCC means ``counter-clockwise closure'' and in these cases the rule holds. arcsin, arccos, arctanh The branch cuts for these three functions are the segments of the real axis larger than 1 in magnitude (separately verified by plotting the imaginary parts). > compar( arcsin, 2., 0.*I ); > plot3d( Im(arcsin(x+I*y)), x=-2..2, y=-1..1, colour=Re(arcsin(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (2 of 21)9/14/2004 5:10:14 AM closures.html > compar( arccos, 2, 0.*I ); > plot3d( Im(arccos(x+I*y)), x=-2..2, y=-1..1, colour=Re(arccos(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (3 of 21)9/14/2004 5:10:14 AM closures.html > compar( arctanh, 2, 0.*I ); > plot3d( Im(arctanh(x+I*y)), x=-2..2, y=-1..1, colour=Re(arctanh(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (4 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; The following hand-coded call to "plot" indicates graphically which side the cuts are closed on, by the presence of tick-marks. > plot( [[t,0,t=-3..-1],[t,0,t=1..3], seq([-(1+i/N),t,t=0..0.2], i=0..2*N), seq([(1+i/N),-t,t=0..0.2], i=0..2*N)], view=[-3..3,-3..3] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (5 of 21)9/14/2004 5:10:14 AM closures.html > arctan, arccot, arcsinh The branch cuts for these three functions are the segments of imaginary axis larger than 1 in magnitude. > compar( arctan, 2*I, 0. ); > plot3d( Re(arctan(x+I*y)), x=-1..1,y=-3..3, colour=Im(arctan(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (6 of 21)9/14/2004 5:10:14 AM closures.html > compar( arccot, 2*I, 0. ); > plot3d( Re(arccot(x+I*y)), x=-1..1,y=-3..3, colour=Im(arccot(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (7 of 21)9/14/2004 5:10:14 AM closures.html > compar( arcsinh, 2*I, 0. ); > plot3d( Re(arcsinh(x+I*y)), x=-1..1,y=-3..3, colour=Im(arcsinh(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (8 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; > plot( [[0,t,t=-3..-1],[0,t,t=1..3], seq([-t,-(1+i/N),t=0..0.2], i=0..2*N), seq([t,(1+i/N),t=0..0.2], i=0..2*N)], view=[-3..3,-3..3] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (9 of 21)9/14/2004 5:10:14 AM closures.html > Exceptions arccsc, arcsec These two functions have branch cuts on the real line between -1 and 1, and a closure switch at 0. > compar( arccsc, 1/2, 0.*I ); > plot3d( Im(arccsc(x+I*y)), x=-2..2, y=-1..1, colour=Re(arccsc(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (10 of 21)9/14/2004 5:10:14 AM closures.html > compar( arcsec, 1/2, 0.*I ); > plot3d( Im(arcsec(x+I*y)), x=-2..2, y=-1..1, colour=Re(arcsec(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (11 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; > plot( [[t,0,t=-1..0],[t,0,t=0..1], seq([-(i/N),-t,t=0..0.15], i=0..N), seq([(i/N),t,t=0..0.15], i=0..N)], view=[-2..2,-2..2] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (12 of 21)9/14/2004 5:10:14 AM closures.html > arccsc(0); arccsc(0.*I); arccsc(-0.*I); arccsc(0.+0.*I); arccsc(-0.+0.*I); Error, (in arccsc) numeric exception: division by zero > arcsec(0); Error, (in arcsec) numeric exception: division by zero arccoth This is the same as the above two, except the closure is different: it is closed on top. http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (13 of 21)9/14/2004 5:10:14 AM closures.html > compar( arccoth, 1/2, 0.*I ); > compar( arccoth, 2, 0.*I ): > plot3d( Im(arccoth(x+I*y)), x=-2..2, y=-1..1, colour=Re(arccoth(x+I*y)) ); > N := 5; > plot( [[t,0,t=-1..1],[t,0,t=0..1], seq([(i/N),t,t=0..0.15], i=-N..N)], view=[-2..2,-2..2] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (14 of 21)9/14/2004 5:10:14 AM closures.html arccsch This is closed counterclockwise about each singularity, and has a closure switch at 0. > compar( arccsch, I/2, 0. ); > plot3d( Re(arccsch(x+I*y)), x=-1..1, y=-2..2, colour=Im(arccsch(x+I*y))); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (15 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; > plot( [[0,t,t=-1..0],[0,t,t=0..1], seq([t,-(i/N),t=0..0.15], i=0..N), seq([-t,(i/N),t=0..0.15], i=0..N)], view=[-2..2,-2..2] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (16 of 21)9/14/2004 5:10:14 AM closures.html arccosh and arcsech These are the true oddballs. The branch cuts are not symmetric. > compar( arccosh, 2, 0.*I ); > compar( arccosh, 1/2, 0.*I ); > plot3d( Im(arccosh(x+I*y)), x=-2..2, y=-1..1, orientation=[-70,60], colour=Re(arccosh(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (17 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; > plot( [[t,0,t=-2..1], seq( [-1-i/N,t,t=0..0.15], i=0..N ), seq( [-i/N, t, t=0..0.15], i=0..N ), seq( [i/N,t,t=0..0.15], i=0..N ) ], view=[-2..2,-2..2] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (18 of 21)9/14/2004 5:10:14 AM closures.html > compar( arcsech, 2, 0.*I ); > compar( arcsech, 1/2, 0.*I ); > plot3d( Im(arcsech(x+I*y)), x=-2..2, y=-1..1, orientation=[-70,60], colour=Re(arcsech(x+I*y)) ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (19 of 21)9/14/2004 5:10:14 AM closures.html > N := 5; > plot( [[t,0,t=-2..0],[t,0,t=1..2], seq( [-1-i/N,-t,t=0..0.15], i=0..N ), seq( [-i/N, -t, t=0..0.15], i=0..N ), seq( [1+i/N,-t,t=0..0.15], i=0..N ) ], view=[-2..2,-2..2] ); http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (20 of 21)9/14/2004 5:10:14 AM closures.html > > > > http://www.mapleapps.com/powertools/EssentialMaple7/html/closures.html (21 of 21)9/14/2004 5:10:14 AM
© Copyright 2026 Paperzz