Math 421  •  Fall 2006

The Cauchy-Riemann equations do not suffice for differentiability

Copyright © 2004–2006 by Murray Eisenberg.  All rights reserved.

Initializations

Load David Park's Cardano3 application packages.

Needs["Cardano3`ComplexGraphics`"]
Needs["Cardano3`ComplexRoutines`"]

Turn off some annoying warning messages that might otherwise appear about similarly-named objects.  (If you want to see these messages so as to be sure to avoid harm, evaluate expressions like the ones below but replace Off there by On.)

Off[General::spell]
Off[General::spell1]

Example 1 : \(TraditionalForm\`f(z)\  = \((\ z\&_)\)\^2\/z\ if\ z\  ≠ \ 
          0\), f(0)  =  0

This example is from Mathews & Howell, page 104.

To form the conjugate notation z* in Mathematica 5, type z EsccoEsc. Mathematica will automatically interpret this to mean Conjugate[z].

Or, if you prefer the overbar notation \(TraditionalForm\`z\&_\) for conjgate, after loading Cardano3, type:  z Ctrl& _   The Cardano3 application automatically interprets the result as meaning Conjugate[z].

The function

f[z_]  :=  ((((z\[Conjugate] ))^2)/z)
f[0]  =  0;

f[x  +  y I]

u[x_,  y_]  :=  
      ComplexExpand[
        Re[f[x  +  I y]]]
v[x_,  y_]  :=  
      ComplexExpand[
        Im[f[x  +  I y]]]
u[0,  0]  =  0;  v[0,  0]  =  0;

The Cauchy-Riemann equations do hold at z  =  0

Consider the difference quotients at z  =  0:

((u[Δx,  0]  -  u[0,  0])/Δ)x

((v[0,  Δy]  -  v[0,  0])/Δ)y

Taking the limit of those difference quotients as Δx -> 0 and Δy -> 0, respectively, we obtain: 	
	∂ (u/∂)x (0,  
            0)  =  1  =  ∂ (v/∂)y (0,  
              0).

((u[0,  Δy]  -  u[0,  0])/Δ)y

((v[Δx,  0]  -  v[0,  0])/Δ)x

Taking the limit of those difference quotients as Δx -> 0 and Δy -> 0, respectively, we obtain: 	
	∂ (u/∂)y (0,  
            0)  =  0  =   - ∂ 
                    (v/∂)x (0,  0).

Thus the Cauchy-Riemann equations for f do hold at z  =  0.

Note that the Cauchy-Riemann equations do not hold anywhere else, however:

D[u[x,  y],  x]  //  Together
D[v[x,  y],  y]  //  Together

D[u[x,  y],  y]  //  Together
D[v[x,  y],  x]  //  Together

Reduce[{
D[u[x,  y],  x]  ==  
          D[v[x,  y],  y],  
D[u[x,  y],  
            y]   ==  - 
            D[v[x,  y],  x]
}]

The function is not differentiable at 0

First look at difference quotients at z  =   0 as Δx  ->  0 (and Δy  =  0).

Simplify[((f[0  +  Δx]  -  f[0])/Δ)x,  Δx  ∈  Reals]

Hence (lim_( Δx -> 0))  ((f(0 + Δx) - f(0))/(Δx)) = 1.

Second look at difference quotients at z  =  0 along the line Δy  =  Δx as Δx  ->  0:

Simplify[((f[0  +  Δx  +  Δx I]  -  f[0])/(Δx  +  Δx I)),  Δx   ∈  Reals]

Hence (lim_( Δx -> 0))  ((f(0 + Δx + i Δx) - f(0))/(Δx + i Δx)) = 1.

Those two results show that (lim_( Δz -> 0))  ((f(0 + Δz) - f(0))/(Δz)) does not exist, in other words, that f is not differentiable at z = 0.

⚠  That is despite the following, seemingly contradictory result:

Limit[((f[0  +  Δz]  -  f[0])/Δ)z,  Δz  ->  0]

The reason for this output—which seems to suggest that, contrary to fact, f is differentiable at 0 and has derivative 1 there—is the way Mathematica calculates limits.  This is one place that Mathematica treats variables as if they were real rather than complex.  What Mathematica does is to calculate, by default, the one-sided limit (lim_(\(\(\ \)\(x\  -> \ \(1\^-\)\)\))) ((f(x)  -  f(0))/x).  (For more information, type and evaluate:  ?Direction)

Example 2: \(TraditionalForm\`g(z)\  = 
        z\^5\/\(\(|\)\(z\)\( | \^4\)\)\ if\ z\  ≠ \ 0\), g(0)  =  0

The function:

g[z_]  :=  ((z^5)/Abs)[z]^4
g[0]  =  0;

g[x  +  y I]

u[x_,  y_]  :=  
      ComplexExpand[
        Re[g[x  +  I y]]]
v[x_,  y_]  :=  
      ComplexExpand[
        Im[g[x  +  I y]]]
u[0,  0]  =  0;  v[0,  0]  =  0;

The Cauchy-Riemann equations hold at z  =  0

Consider the difference quotients at z  =  0:

((u[Δx,  0]  -  u[0,  0])/Δ)x

((v[0,  Δy]  -  v[0,  0])/Δ)y

Take the limits as Δx->0 and Δy->0, respectively to obtain:
	∂ (u/∂)x (0,  
            0)  =  1  =  ∂ (v/∂)y (0,  
              0).

((u[0,  Δy]  -  u[0,  0])/Δ)y

((v[Δx,  0]  -  v[0,  0])/Δ)x

Take limits to obtain:
	∂ (u/∂)y (0,  
            0)  =  0  =   - ∂ 
                    (v/∂)x (0,  0).

Thus the Cauchy-Riemann equations do hold at z  =  0.

Note that the Cauchy-Riemann equations do not hold anywhere else, however:

D[u[x,  y],  x]  //  Together
D[v[x,  y],  y]  //  Together

D[u[x,  y],  y]  //  Together
D[v[x,  y],  x]  //  Together

Reduce[{
D[u[x,  y],  x]  ==  
          D[v[x,  y],  y],  
D[u[x,  y],  
            y]   ==  - 
            D[v[x,  y],  x]
}]

The function is not differentiable at 0

First look at difference quotients at z  =   0 as Δx -> 0 (and Δy = 0).

Simplify[((g[0  +  Δx]  -  g[0])/Δ)x,  Δx  ∈  Reals]

Second look at difference quotients at z  =  0 along the line Δy = Δx as Δx -> 0:

Simplify[((g[0  +  Δx  +  Δx I]  -  g[0])/(Δx  +  Δx I)),  Δx   ∈  Reals]

Those two results show that (lim_( Δz -> 0))  ((g(0 + Δz) - g(0))/(Δz)) does not exist, in other words, that g is not differentiable at z = 0.

⚠  That is despite the following, seemingly contradictory result:

Limit[((g[0  +  Δz]  -  g[0])/Δ)z,  Δz  ->  0]

The same explanation for the output holds here as for Example 1.