JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Finding the Harmonic Conjugate

Last guide told you that a harmonic u always has a partner v making u + i v holomorphic. This one hands you the actual procedure: given u(x,y), integrate the Cauchy-Riemann equations to build v step by step — and learn exactly when the hunt is guaranteed to succeed, when it can fail, and a slick shortcut that skips the integrals.

The partner you are hunting for

You arrive here already convinced of the headline fact from the previous guide: if u(x,y) is harmonic on a nice region — meaning it satisfies Laplace's equation u_xx + u_yy = 0 — then there exists a second harmonic function v(x,y), its harmonic conjugate, such that f = u + i v is holomorphic. That guide argued the conjugate exists. This guide answers the down-to-earth follow-up question: given a specific u, how do I actually write down v? The answer is a short, mechanical recipe, and the whole of it comes straight out of the Cauchy-Riemann equations.

The two equations are the entire engine: u_x = v_y and u_y = -v_x. Read them not as constraints to check but as instructions to follow. The left-hand sides are things you can compute right now — they are just partial derivatives of the u you were handed. The right-hand sides are partial derivatives of the unknown v. So the Cauchy-Riemann equations literally tell you both partial derivatives of v in terms of partial derivatives of u. Knowing both partials of a function and recovering the function itself is exactly an integration problem, and that is the whole game.

Given:  u(x,y)  harmonic   ->   want v with  f = u + i v  holomorphic

  Cauchy-Riemann:    u_x = v_y        u_y = -v_x

  so the GRADIENT of v is read straight off u:

     v_x = -u_y          v_y =  u_x

  integrate one, differentiate the result, match the other.
The Cauchy-Riemann equations hand you both partial derivatives of v in terms of u — recovering v is then pure integration.

The recipe, step by step

Here is the standard four-move procedure. The one subtlety to keep your eye on is that when you integrate a partial derivative with respect to x, the 'constant of integration' is not a constant — it is an unknown function of the OTHER variable, y. That leftover function is exactly what the second equation pins down. Watch how the two Cauchy-Riemann equations cooperate: the first builds a draft of v, the second corrects the one piece the first could not see.

  1. Compute u_x and u_y from the given u. (Optional sanity check: verify u_xx + u_yy = 0, so that a conjugate exists at all — if u is not harmonic, no v can work.)
  2. Use the first equation v_y = u_x and integrate with respect to y: v(x,y) = integral of u_x dy + g(x), where g(x) is an unknown function of x alone (the 'constant' of y-integration).
  3. Differentiate this draft v with respect to x to get v_x, then set it equal to -u_y (the second equation). Everything cancels except a condition on g'(x).
  4. Solve for g'(x), integrate once to get g(x) (a genuine constant of integration remains — the conjugate is unique only up to an additive real constant), and substitute back. You now have v.

A tiny worked example

Let us run the recipe on u(x,y) = x^2 - y^2. First the partials: u_x = 2x and u_y = -2y. A quick harmonic check, u_xx + u_yy = 2 + (-2) = 0, so a conjugate exists. Now step 2: v_y = u_x = 2x, and integrating with respect to y gives v = 2xy + g(x). Step 3: differentiate, v_x = 2y + g'(x), and this must equal -u_y = -(-2y) = 2y. Comparing, g'(x) = 0, so g(x) = C, a constant. Hence v = 2xy + C.

Now the satisfying payoff. Assemble f = u + i v = (x^2 - y^2) + i(2xy). That is not a random expression — it is exactly z^2, since (x + i y)^2 = x^2 - y^2 + i(2xy). The recipe took the bare real part x^2 - y^2 and reconstructed the whole holomorphic function z^2 (up to the harmless constant iC). This is the practical face of the slogan that a holomorphic function is determined by its real part: u alone, plus the Cauchy-Riemann machinery, was enough to rebuild f.

One honest caution about what 'the' conjugate means. The C you collected is real and arbitrary, so v is determined only up to adding a real constant; equivalently f is determined only up to adding the purely imaginary constant iC. That is the complete extent of the ambiguity — no more, no less. People still say 'the' harmonic conjugate because, on a connected region, fixing the value of v at a single point removes the constant and makes it genuinely unique. Note also the asymmetry: if v is the conjugate of u, then u is NOT the conjugate of v — rather -u is, because the conjugate of v has its own roles for u_x and u_y swapped with a sign.

When the hunt can fail

The recipe always succeeds on a disk, a rectangle, the whole plane — any region with no holes. But existence of a single-valued conjugate is NOT automatic on a region with a hole in it, and this is the one genuine pitfall to remember. The standard cautionary tale is u(x,y) = log|z| = (1/2) log(x^2 + y^2), the textbook harmonic function on the punctured plane (everywhere except the origin). It is perfectly harmonic where it is defined, yet its only candidate conjugate is the angle, v = arg z = theta — and the angle increases by 2 pi every time you loop around the origin, so it cannot be defined as a single-valued function on the whole punctured plane.

What goes wrong mechanically is illuminating. Locally — on any small patch away from the origin — the recipe runs fine and produces a perfectly good v; the trouble is only global. When you try to extend that local v all the way around the hole and back to your starting point, it does not return to the same value; it has crept up by 2 pi. So a single-valued conjugate exists locally everywhere but cannot be stitched into one consistent function across the loop. This is the same multivaluedness that forces a branch cut on log z, seen from the harmonic-conjugate side.

A shortcut that skips the integrals

Once the recipe feels routine, there is a faster route worth knowing, often called the Milne-Thomson method, and it leans on something subtle you may have met as the Wirtinger derivatives. The idea: instead of building v laboriously and then assembling f = u + i v, reconstruct the holomorphic f' directly and integrate once in z. The key observation is that for a holomorphic f, the derivative is f'(z) = u_x - i u_y (this is just the Cauchy-Riemann equations rearranged), and the right-hand side is built only from partials of u.

Here is the trick that makes it almost magic. Form the expression u_x(x,y) - i u_y(x,y), then formally substitute x = z and y = 0 everywhere it appears. The result is a function of z alone, and it equals f'(z). Integrate that with respect to z, add a constant, and you have f directly — its imaginary part is your conjugate v, no double integration of g(x) required. On our example, u_x - i u_y = 2x - i(-2y) = 2x + 2iy; substituting x = z, y = 0 gives 2z; and integrating gives f = z^2 + C, matching what the long recipe produced.

Be honest about why this 'substitute x = z, y = 0' move is legal — it is not folklore. It works because a holomorphic function agrees with its own power series, and on the real axis (y = 0, x = z real) that series already encodes the function for all z, by the same identity-theorem fact that a holomorphic function is pinned down by its values on a line. So whether you prefer the patient four-step integration or the slick one-line substitution, both rest on the same single foundation — the Cauchy-Riemann equations — and both deliver the same f. Pick the integration route when you want transparency and the shortcut when you want speed.