It is straightforward to verify that z=0 is a branch point for w[z]=Sqrt[z]:
Clear["Global`*"];
expr1 = Sqrt[r Exp[I θ]] /. {θ -> α} // PowerExpand // Simplify
expr2 = Limit[Sqrt[r Exp[I θ]] /. {θ -> α + ε π}, ε -> 2, Direction -> "FromBelow"] // PowerExpand // Simplify
Simplify[expr1 - expr2]
(* 2 E^((I α)/2) Sqrt[r] *)
And z=0 is a branch point for w[z]=Log[z]:
Clear["Global`*"];
expr1 = Log[r Exp[I θ]] /. {θ -> α} // PowerExpand // Simplify
expr2 = Limit[Log[r Exp[ I θ]] /. {θ -> α + ε π}, ε -> 2, Direction -> "FromBelow"] // PowerExpand // Simplify
Simplify[expr1 - expr2]
(* -2 I π *)
However, for some more complex functions, verification is not straightforward. For example, for z = (-1 + Sqrt[5])/2, it is challenging to confirm that it is a branch point of w[z] = Log[-1/+1], or that z = a is a branch point of Sqrt[(z-a) (z+b)].
How can we write Mathematica (MMA) code to determine, for any given complex function w[z], how w[z] changes when z encircles any point in the z-plane counterclockwise along a small circle of infinitesimal radius, say, by one revolution (2 Pi)? This would help identify whether the point is a branch point.
EDIT I am aware that the function ComplexAnalysis'BranchPoints can be used to find branch points, but sometimes the branch points obtained by this function are incorrect( https://mathematica.stackexchange.com/a/289606/69835 ). Moreover, it is not the case that branch points cannot be found outside of this function. One approach is to first find the zeros and singular points (using specialized functions and code), and then systematically check whether these zeros and singular points satisfy the definition of branch points ( https://mathworld.wolfram.com/BranchPoint.html ) through a program. My question is how to programmatically check whether these zeros and singular points meet the definition of branch points, in order to make decisions and ultimately obtain all branch points.
The approach to finding the branch points of a complex function w[z] using MMA programming is as follows: first, determine all the zeros and singular points of w[z]. Then, for each of these points, compare whether the following two complex numbers are equal: the complex numbers centered at the point (e.g., point A)), denoted as z1-A and z2-A, with equal magnitudes and infinitesimally small, and where the argument of z1-A is 0, and the argument of z2-A is 2 Pi (Limit->2 Pi). If these two complex numbers are not equal, the point A is identified as a branch point.
Log[(z - 1)/(z + 1)],is replaced byLog[-1/+1]), not indicating the change. – user64494 Jan 21 '24 at 12:52ComplexAnalysis BranchPointsgives incorrect results. Thanks. – bbgodfrey Jan 22 '24 at 14:29Simplify[expr1 - expr2]do you derive thatz==0is a branch point? TIA. – user64494 Jan 23 '24 at 05:58