Lecture 4: trigonometric functions and notions from analysis

Complex analysis, lecture 2
(January 30, 2026)

1.  More examples with branch points

First, let’s look at some slightly more complicated examples than we saw last time. In particular, we want to see what happens when there are multiple branch points. (We haven’t explicitly defined the term “branch point” yet; one definition is as an end of a branch cut, another would be as a point around which the function has nontrivial phase factor.)

Consider f(z)=z(1z). There are two points to worry about: near z=0 and near 1z=0, i.e. z=1. Near z=0, the function 1z is well-defined and single-valued, with no (nontrivial) phase factor, so as discussed last time the phase factor of f(z)=z1z near z=0 is the same as that of z, namely 1. Similarly, the phase factor of f near z=1 is the same as that of 1z, again 1.

Let’s make a branch cut between these two points. As we travel around a small circle near 0, we multiply the value of our function by 1; if we then move to near 1 and travel around it, we get another factor of 1, so coming back to the original point we have multiplied by 1. In other words, traveling around the complex plane in any path that doesn’t cross this branch cut from 0 to 1 will have no jump discontinuities: f(z) is continuous on the complex plane with this branch cut.

One can form a Riemann surface for f by gluing together two copies of this slit plane along the slits, identifying opposite edges.

As usual, there are many possible branch cuts we could have used instead; for example any path connecting 0 and 1 works. More exotically, we could instead make two branch cuts, one along the negative real axis and one from 1 out to infinity along the positive real axis. When we add in the point at infinity, this can also be considered to be a path connecting 0 and 1, just one which passes through !

Another interesting example is the function f(z)=z1/z. Writing z1/z=(z21)/z=(z+1)(z1)/z, there are at least three points of interest: z=1, z=1, and z=0 at which 1/z is ill-behaved. We should also consider the point at which 1/z vanishes, namely z=, in the extended complex numbers.

As above, at each branch point the phase factor is 1, so any two combine to give a branch cut, and avoiding these f should be continuous. For example, we can make a cut from to 1 and another from 0 to 1, which can be thought of as a sphere with two slits, or equivalently a cylinder. The Riemann surface for f is then given by two of these cylinders glued together at both ends, forming a torus (donut) shape; this is another example of a naturally-occurring Riemann surface which is not a sphere. (They’re not all tori either! but that is the next-simplest example.)

One can also apply this logic to simpler functions like z or logz: the branch cuts connect the two branch points, one at 0 and one at . This is more evidence for why it’s helpful to think of the extended complex numbers, modeled as the Riemann sphere, rather than just , with which we can’t see the second branch point.

2.  Trigonometric and hyperbolic functions

When we’ve seen the imaginary exponential

eiθ=cosθ+isinθ,

we’ve always taken θ to be a real number: that way cosθ and sinθ are well-defined. However, the left-hand side is defined for all complex numbers, so we can hope to use this to extend the definitions of sine and cosine to complex numbers, e.g. by taking real and imaginary parts.

To get a more algebraic expression, consider the equations

eiz=cosz+isinz,
eiz=cos(z)+isin(z)=coszisinz.

Solving for cosz and sinz, we get

cosz=eiz+eiz2,
sinz=eizeiz2i.

We can see from this for example that sinz and cosz have period 2π, using the fact that ez has period 2πi.

When z is real, this recovers the usual sine and cosine, but when z is complex this still makes sense and gives complex versions of trigonometric functions. We can likewise define other trigonometric functions in terms of these, e.g. tanz=sinzcosz.

Just as in the real case, the inverse functions of the trigonometric functions are highly multivalued. We can define them in terms of the complex logarithm: for example, if w=sinz=12i(eizeiz), letting t=eiz this is 2iw=tt1, so t22iwt1=0. By the quadratic formula, it follows that

t=eiz=iw±1w2,

and so

z=sin1(w)=ilog(iw±1w2).

This is very multivalued: we have ambiguity both from the logarithm and from the square root. We can define a principal branch by taking the positive branch of the square root (on the interval (1,1), so that it is real-valued) and the principal branch of the logarithm; then every other branch should be given using the relations sin(2π+z)=sinz and sin(πz)=sinz, giving rise to shifts of the principal branch Sin1 by 2πn, i.e. Sin1(z)+2πn, together with (2n+1)πSin1(z) for each n. We can unify these to write every branch as πn+(1)nSin1(z).

3.  Some notions from analysis

In the past two weeks, we’ve introduced complex numbers, and studied some key functions on them and their behavior. We now turn to the “analysis” portion of the title of the course. I’ll assume some basic real analysis at this point, such as the definition of a limit of a sequence of real numbers, criteria for convergence, etc. What we do want to explain in more detail is what’s different in the complex setting.

Let’s first consider the case of the limit of a function f(z) as z approaches a point z0. In calculus, to show that this limit exists there were essentially three things to check: that the limit from the right exists, that the limit from the left exists, and that the two are equal. In real analysis, this is rephrased in terms of an epsilon–delta definition, where we use the absolute values |zz0| and |f(z)L| to avoid having to handle the two cases separately.

In the complex setting, there are many more cases: rather than just approaching from the right or left, there are infinitely many directions from which z could approach z0. So we have to check that infinitely many limits exist, and that they’re all equal to each other! Fortunately we can get around this by again using absolute values: we want to make sure that as |zz0| becomes small—i.e. when z is within a sufficiently small disk centered at z0—so does |f(z)L|, where L is the limit. (This can be rephrased as an epsilon–delta condition identically to the real case, which I’ll leave up to you.) But it’s important to keep in mind that when we make this statement, even though it now looks the same as the real condition, we’re now requiring something much more powerful, namely for the limit to exist from every direction, with every limit agreeing. This is one of the main slogans of the class:

The existence of a limit of a function on the complex numbers is a very strong condition.

What do we mean by this? Later on in this course, we’ll see all sorts of miraculous theorems. There’s a lot of cleverness that goes into the proofs of these results, but fundamentally the source of the power will be that we are assuming that these functions have good limit-theoretic properties (e.g. are continuous or, more typically, differentiable), and since we’re in the complex setting this is a very strong assumption.

For example, we’ll see later that as simple a function as f(z)=z¯, viewed as a complex function, is not differentiable!

We introduce some terminology to do with subsets of the complex plane. A subset U is open if for every point z0U, there exists some disk in U containing z0, i.e. some ϵ>0 such that the set Dϵ(z0)={z:|zz0|<ϵ} is contained in U. The way that this fails is if U has a boundary, e.g. the disk {z:|z|1} is not open, because points z0 with |z0|=1 would fail the condition above; but if we replaced with <, the condition would hold, and so this disk is open (called the open disk). More generally, conditions involving only strict inequalities are open, while ones involving or are generally not.

A subset U is called a domain if it is open and for any two points z1,z2U, we can draw a path inside U connecting z1 and z2. (Since we have not formally defined a path, for concreteness we could say a “broken line segment,” consisting of a series of line segments chained end-to-end.) If the subset has multiple components not touching each other, it is not a domain. (For example, is not a domain, since for z1 with positive imaginary part and z0 with negative imaginary part, there is no path connecting them that wouldn’t cross the real line, and hence exit .)

A subset U is convex if for any two points z1,z2U, the straight line connecting z1 and z2 is contained in U. For a fixed z0U, we say that U is star-shaped with respect to z0 if for every zU, the line connecting z0 and z is contained in U; so if U is convex, then it is star-shaped with respect to any of its points. We say U is star-shaped if it is star-shaped with respect to some point in U.

We say that a subset U is closed if its complement is open; equivalently, if for any sequence of points {xn} with each xnU which converges to some complex number L, the limit L is in fact in U. We say that U is bounded if there is some positive real number N such that for every zU, |z|N. If U is both closed and bounded, we say that it is compact (we’ll take this to be a definition, though in general compact sets have a different definition and this property is a theorem).

Compact sets have the following important property.

Proposition.

Let U be a compact set, and f:U a continuous function. Then f is bounded and attains its maximum on U. That is: there exists some z0U such that f(z0)=sup{f(z)|zU}.

Note that this property is not true without both of the conditions on compact sets. For example, the set is closed but not bounded; and the function f(z)=|z| does not attain its maximum on (indeed, the set of values of f on does not even have a supremum, as f is unbounded). On the other hand, consider the open disk D1(0)={z:|z|<1}; this is bounded, but not closed. The same function f(z)=|z| does not attain its maximum: it is now bounded, with supremum of the values 1, but there is no point in U at which f actually has this value. If we instead used the closed disk {z:|z|1}, which is both closed and bounded, then f would attain its maximum, for example at z=1.

With the above notions established, we are almost ready to define analytic functions. Just as in the real setting, for z0 and f: a function, we say that f is differentiable at z0 if

limzz0f(z)f(z0)zz0

exists, in which case we call this the derivative of f at z0, or f(z0). All of the familiar properties from calculus apply; for example, we can rewrite this as a limit as h0 (again in the complex sense, though!); and the standard rules of differentiation (linearity, product rule, quotient rule, chain rule) apply.

Let U be an open set. We say that f is analytic on U if for every zU, f is differentiable at z, and the derivative f(z) is continuous on U.

This is notably different from the concept of analytic functions you may have seen in calculus or real analysis: there, we would have required that f be infinitely differentiable and agree with its Taylor series on U, and we would call the condition above simply being continuously differentiable. In the real setting, these are very different: there are many classes of functions in between, e.g. those that are twice-differentiable (but not necessarily more). In the complex setting, we will later see that these conditions are actually the same, justifying the term “analytic.” This is an example of the power of complex limits!

In the complex setting, we often refer to analytic functions as “holomorphic” functions; it is sometimes helpful to have a term specifically for the definition above. For example, we could rewrite the above statement that the definitions agree as the theorem that holomorphic functions are analytic. In this class, we’ll use the terms interchangeably. (Gamelin tends to prefer “analytic,” while “holomorphic” is probably more common in other sources I’ve seen, though this is only a vague sense I have; both are regularly used.)

Let’s look at some examples. The power rule applies just as in the real case, i.e.

ddzzn=nzn1,

so in particular zn is analytic on the entire complex plane; by linearity, so are all polynomials. By the quotient rule, it follows that rational functions are analytic whenever they’re defined. More generally, this shows that the quotient of two analytic functions is analytic wherever it’s defined; one can make similar arguments for sums, products, and compositions.

The class of functions which can be written as a ratio of two holomorphic functions is sufficiently important to get its own name: these are called meromorphic functions. These can be thought of as holomorphic functions except for poles; unlike rational functions, they may have infinitely many poles, but one can still show some good properties (for example, their poles won’t have limit points). Just as holomorphic functions can be written as Taylor series, we’ll see that meromorphic functions can be written as Laurent series, power series including negative powers such as 1z.

Other examples of analytic functions include the complex exponential, and therefore all the functions we’ve defined in terms of it such as trigonometric functions. When it comes to the various multivalued functions we’ve studied, e.g. z and logz, once we pick a branch these should be analytic on a suitable open set; for example, the principal branch of z should be analytic on {z:z0,π<argz<π}, but is not analytic on the whole plane, even after removing 0, since any branch must have a jump discontinuity (here at the ray argz=π).

Another non-example, as promised, is f(z)=z¯. Here we can compute directly:

f(0)=limz0z¯0¯z0=limz0z¯z.

If we take z0 along the real axis in the positive or negative directions, then z¯=z and so this limit would be 1 after restricting to real numbers. But if we take it along the imaginary axis, then z¯=z and so the limit would be 1. So the limit cannot exist!

Finally, we note that the condition for holomorphic functions that f(z) not only exist but be continuous is actually redundant: if f exists, it is automatically continuous. This is in practice not very useful as the process of checking if the derivative exist usually shows continuity as well, but it is a very pleasant result; we’ll see this in a few weeks as a corollary of some general results on complex integration.