JustToThePoint English Website Version
JustToThePoint en español

Continuous Argument Function for Complex Numbers: A Comprehensive Guide

When you have eliminated the impossible, whatever remains, however improbable, must be the truth, Sherlock Holmes.

image info

Continuous Argument Function for Complex Numbers: A Comprehensive Guide

Introduction to the Argument of a Complex Number

A complex number $z$ can be expressed in the form $z = x + iy$, where $x, y \in \mathbb{R}$ and $i$ is the imaginary unit satisfying $i^2 = -1$.

Equivalently, $z$ can be written in polar form: $z = r e^{i\theta} = r(\cos\theta + i\sin\theta),$ where $r = |z| = \sqrt{x^2 + y^2}$ is the modulus and $\theta$ is the argument — the angle from the positive real axis to the ray from the origin through $z$, measured counterclockwise.

Definition. For a nonzero complex number $z = x + iy \neq 0$, the argument $\arg(z)$ is the angle $\theta$ satisfying: $x = |z|\cos\theta, \qquad y = |z|\sin\theta.$

For any nonzero complex number $z = x + iy$, the argument is the angle $\theta$ such that: $z = |z|e^{i\theta}, \qquad |z| = \sqrt{x^2 + y^2}, \qquad \theta = \arg(z).$

The principal value $\operatorname{Arg}(z)$ is a single-valued choice of $\arg(z)$ — by convention usually taken in $(-\pi, \pi]$ — but because angles are defined only up to multiples of $2\pi$, the full argument is multi-valued: $\arg(z) = \{ \theta \in \mathbb{R} : z = |z|e^{i\theta} \} = \{\operatorname{Arg}(z) + 2\pi k : k \in \mathbb{Z}\}.$ In other words, adding any integer multiple of $2\pi$ to the angle yields the exact same complex number.

Properties of the Argument Function

Let $z = x + iy \neq 0$

  1. Periodicity (Multi-valuedness): The argument function is periodic with a period of $2\pi$. This means that for any integer k, $\arg(z) = \mathrm{Arg}(z) + 2\pi k$.
    The argument function assigns to each nonzero $z$ an infinite set of real numbers, any two of which differ by an integer multiple of $2\pi$. Geometrically, rotating the angle by a full turn yields the same point.
  2. Principal Range: The principal value of the argument, usually denoted as $\text{Arg}(z)$, is typically taken in the interval $(-\pi, \pi]$ (by convention, other intervals of length 2π are possible).
    Some texts use [0, $2\pi$).
  3. Uniqueness: While a complex number has infinitely many arguments differing by integer multiples of $2\pi$, the principal value provides a unique representation within a specific interval of length $2\pi$.
  4. Special values:
    If $\operatorname{Re}(z) > 0$ and $\operatorname{Im}(z) = 0$: $\operatorname{Arg}(z) = 0$ (positive real axis).
    If $\operatorname{Re}(z) < 0$ and $\operatorname{Im}(z) = 0$: $\operatorname{Arg}(z) = \pi$ (negative real axis).
    If $\operatorname{Re}(z) = 0$ and $\operatorname{Im}(z) > 0$: $\operatorname{Arg}(z) = \frac{\pi}{2}$ (positive imaginary axis).
    If $\operatorname{Re}(z) = 0$ and $\operatorname{Im}(z) < 0$: $\operatorname{Arg}(z) = -\frac{\pi}{2}$ (negative imaginary axis).

The Discontinuity Problem

However, the standard principal argument function has a critical limitation: it is not continuous everywhere in the complex plane. When moving around the origin (e.g., traversing a circle, $z = e^{i\theta}$), the argument “jumps” by $ 2\pi $ at the point where the angle crosses a boundary (e.g., from $ \pi $ to $ -\pi $ or vice versa). This discontinuity arises because the argument is inherently multi-valued, and the standard definition restricts it to a specific interval.

Consider a complex number $ z = e^{i\theta} $ (a point on the unit circle) as $\theta$ increases from $ 0 $ to $ 2\pi $. If we use $\operatorname{Arg}(z) \in (-\pi, \pi]$:

Why No Continuous Global Argument Exists?

The domain $\mathbb{C} \setminus \{0\}$ is not simply connected — it has a “hole” at the origin. This topological property causes trouble when trying to define arg(z) continuously on the entire domain:

This is a classic example of a monodromy phenomenon: the value of a function changes when you loop around a singularity.

Proposition. There is no continuous function $\theta: \mathbb{C} \setminus \{0\} → \mathbb{R}$ such that $\theta(z) \in \arg(z)$ for all $z \in \mathbb{C} \setminus \{0\}$.

Proof.

  1. Assume, for the sake of contradiction, that such a continuous function θ exists. Define a function $g : \mathbb{R} \to \mathbb{R}$ by: g(t) = $\frac{1}{2\pi}(θ(e^{it})+θ(e^{-it})), t \in \mathbb{R}$. Since by assumption θ is continuous and the exponential function is continuous, g is continuous, too.

  2. $g$ is integer-valued. For each $t$, since $\theta(e^{it}) \in \arg(e^{it})$ and $\theta(e^{-it}) \in \arg(e^{-it})$, there exist integers $n_t$ and $m_t$ such that $\theta(e^{it}) = t + 2n_t\pi, \qquad \theta(e^{-it}) = -t + 2m_t\pi.$ Therefore, $g(t) = \frac{1}{2\pi}(θ(e^{it})+θ(e^{-it})) = \frac{1}{2\pi}(t + 2n_t\pi -t + 2m_t\pi) = \frac{1}{2\pi}(2(n_t\pi + m_t\pi)) = n_t + m_t \in \mathbb{Z}$.

  3. $g$ must be constant. A continuous function $g : \mathbb{R} \to \mathbb{Z}$ must be constant, because:
    $\mathbb{Z}$ carries the discrete topology — every singleton $\{n\}$ is both open and closed. If $g : \mathbb{R} \to \mathbb{Z}$ is continuous, then each preimage $g^{-1}(\{n\})$ is both open and closed (clopen) in $\mathbb{R}$. Since $\mathbb{R}$ is connected, the only clopen subsets are $\varnothing$ and $\mathbb{R}$ itself. Therefore, exactly one preimage is all of $\mathbb{R}$, and $g$ is constant.

  4. Now evaluate g at two specific points.
    At t = 0, g(0) = $\frac{1}{2\pi}(θ(e^{i0})+θ(e^{-i0})) = \frac{1}{2\pi}(θ(1)+θ(1)) = \frac{1}{\pi}(θ(1))$
    Since $\theta(1) \in \arg(1) = \{2\pi k : k \in \mathbb{Z}\}$, we have $\theta(1) = 2\pi k$ for some integer $k$, giving $g(0) = 2k$ — an even integer.
    At $t = \pi$: $g(\pi) = \frac{1}{2\pi}\bigl(\theta(e^{i\pi}) + \theta(e^{-i\pi})\bigr) = \frac{1}{2\pi}\bigl(\theta(-1) + \theta(-1)\bigr) = \frac{\theta(-1)}{\pi}.$
    Since $\theta(-1) \in \arg(-1) = \{(2k'+1)\pi : k' \in \mathbb{Z}\}$, we have $\theta(-1) = (2k'+1)\pi$, giving $g(\pi) = 2k'+1$ — an odd integer.
    Since $g$ is constant, $g(0) = g(\pi)$, which requires an even integer to equal an odd integer — an obvious contradiction. $\quad\square$

Conclusion. The argument function on $\mathbb{C} \setminus \{0\}$ is inherently a multi-valued function. No single-valued continuous selection is possible on the full punctured plane.

Constructing Continuous Argument Functions via Branch Cuts

What about branches? To obtain a single-valued, continuous version of arg(z), we must restrict the domain by introducing a branch cut. For example:

Computation

In practice, the principal argument is computed using the two-argument arctangent function $\operatorname{atan2}(y, x)$ function, which accounts for the quadrant of $ z $ in the complex plane.

Definition. For $z = x + iy =re^{i\theta}, (x, y) \neq (0, 0),$ with r = |z|, arg(z) is a multi-valued function given by $|z|=\sqrt{x^2+y^2}, \text{arg(z)} = \{\theta + 2\pi n: n \in \mathbb{Z}\}$. Besides, $\theta = \text{Arg(z)} = \text{atan2}(y, x)$ is a single-valued branch, which by convention is taken to lie in the range $-\pi < \theta ≤ \pi$:

$$\operatorname{Arg}(z) = \operatorname{atan2}(y, x) = \begin{cases} \arctan\!\left(\dfrac{y}{x}\right), & \text{if } x > 0, \\[8pt] \arctan\!\left(\dfrac{y}{x}\right) + \pi, & \text{if } x < 0 \text{ and } y \geq 0, \\[8pt] \arctan\!\left(\dfrac{y}{x}\right) - \pi, & \text{if } x < 0 \text{ and } y < 0, \\[8pt] +\dfrac{\pi}{2}, & \text{if } x = 0 \text{ and } y > 0, \\[8pt] -\dfrac{\pi}{2}, & \text{if } x = 0 \text{ and } y < 0, \\[8pt] \text{undefined}, & \text{if } x = 0 \text{ and } y = 0. \end{cases}$$

Why $\arctan(y/x)$ alone is insufficient. The standard $tan^{-1}$ only returns values in $(-\pi/2, \pi/2)$ and cannot distinguish between opposite quadrants, e.g., $\arctan\!\left(\frac{1}{1}\right) = \arctan\!\left(\frac{-1}{-1}\right) = \frac{\pi}{4},$ but $\operatorname{Arg}(1+i) = \pi/4$ while $\operatorname{Arg}(-1-i) = -3\pi/4$. However, $\arctan\!\left(\frac{1}{1}\right) = \arctan\!\left(\frac{-1}{-1}\right) = \frac{\pi}{4}$.

The atan2(y, x) function resolves quadrant ambiguities by using the signs of both x and y.

atan2

Quadrant Handling:

  1. x > 0: Right half-plane (quadrants I and IV), $\operatorname{Arg}(z)$ ranges from $(-\pi/2, \pi/2)$, e.g., $\operatorname{Arg}(1+i) = \pi/4$.
  2. $x < 0, y \geq 0$ (quadrant II), $\operatorname{Arg}(z)$ ranges from $(\pi/2, \pi]$, e.g., $\operatorname{Arg}(-1+i) = -\pi/4 + \pi = \frac{3\pi}{4}$
  3. $x < 0, y < 0$ (quadrant III), $\operatorname{Arg}(z)$ ranges from $(-\pi, -\pi/2)$, e.g., $\operatorname{Arg}(-1-i) = \pi/4 -\pi = -3\pi/4$.
  4. $x = 0, y > 0$ (positive imaginary axis), $\operatorname{Arg}(z) = \pi/2$.
  5. $x = 0, y < 0$ (negative imaginary axis), $\operatorname{Arg}(z) =-\pi/2$

This implementation ensures continuity everywhere except along the negative real axis, where there's a branch cut (jumping from π to -π). This formulation is exactly what’s implemented in most programming languages and mathematical software, making it the standard practical approach for complex number computations.

Examples

  1. z = 1 + i. Here, x = 1 > 0, the argument is $\theta(z) = \tan^{-1}(1/1) = \frac{\pi}{4}\approx 0.7854.$.
  2. z = -1 + i. Here, x = -1 < 0 and $y = 1 \geq 0$ $\theta(z) = \tan^{-1}(1/-1) + \pi = -\frac{\pi}{4} + \pi = \frac{3\pi}{4} \approx 2.3562.$.
  3. z = -1 - i. Here, x = -1 < 0 and y = -1 < 0. $\theta(z) = \tan^{-1}(-1/-1) - \pi = \frac{\pi}{4} - \pi = -\frac{3\pi}{4}\approx -2.3562.$.
  4. $z = -3$. Here $x = -3 < 0$ and $y = 0 \geq 0$, so: $\operatorname{Arg}(z) = \arctan\!\left(\frac{0}{-3}\right) + \pi = 0 + \pi = \pi.$
  5. $z = 2i$. Here $x = 0$ and $y = 2 > 0$, so $\operatorname{Arg}(z) = \pi/2$.

Software implementation

# Import cmath Library
import cmath
import math

z = -1 - 1j
# Using coordinates
theta1 = math.atan2(z.imag, z.real)
print(f"Via coordinates: {theta1}") # Output: -2.356... (-3π/4)

# Using complex object directly (computes phase)
theta2 = cmath.phase(z)
print(f"Via cmath:       {theta2}") # Output: -2.356...

# Print quadrant-aware arctangent
z = 1 + 1j
print(cmath.phase(z)) # 0.7853981633974483 ≈ π/4
z = -1 + 1j
print(cmath.phase(z)) # 2.356194490192345 ≈ 3π/4
z = -1 - 1j
print(cmath.phase(z)) # -2.356194490192345 ≈ -3π/4

Algebraic Identities for the Argument

Bitcoin donation

JustToThePoint Copyright © 2011 - 2026 Anawim. ALL RIGHTS RESERVED. Bilingual e-books, articles, and videos to help your child and your entire family succeed, develop a healthy lifestyle, and have a lot of fun. Social Issues, Join us.

This website uses cookies to improve your navigation experience.
By continuing, you are consenting to our use of cookies, in accordance with our Cookies Policy and Website Terms and Conditions of use.