Weierstrass Parameterizations

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

Introduction

Given a domain, U, in the complex plane and two functions, f[z]and g[z]: U -> C such that 
1.) f is complex analytic on U
2.) g is meromorphic on U
3.) at each pole of g[z], f[z] has a zero of order at least that of the pole of g[z]
then we can construct a minimal surface as follows:

Weierstrass[f_, g_]:=ComplexExpand[Re[(∫(({{f[z] (1 - g[z]^2)}, {I f[z] (1 + g[z]^2)}, {2 f[z] g[z]}})) \[DifferentialD]z) /.{z -> u + I v}]] //Simplify

The functions f[z]and g[z]are called the Weierstraa data for the surface.

The Trinoid

For example, the following two functions define a surface called the trinoid.  The trinoid is similar to the catendoid, except that it has three ends.

trinoidF[z_]  :=  (1/((((z^3) - 1))^2))
trinoidG[z_]  :=  (z^2)

trinoid  =  Weierstrass[trinoidF, trinoidG]

ParametricPlot3D[trinoid, {u, -2, 2}, {v, -2, 2}, 
      PlotPoints ->  50]

The three vertical planes are not a part of the surface.  They are an artifact of Mathematica's plotting program.  Notice that f[x] has poles of order two at the three solutions to the equation (z^3) = 1.  Therefore, these points are not part of the domain, U.  Nonetheless, Mathematica has tried to plot those points.

More generally,. the k-noid (with k ends) has Weierstrass data f[z]  =  (1/((((z^k) - 1))^2)) , g[z]  =  (z^(k - 1)).

Conjugate minimal surfaces: the catenoid and the helicoid

The Weierstrass data for the catenoid are the following:

catenoidF[z_]  :=  ((-(E^(-z)))/2)
catenoidG[z_]  :=  -(E^z)
catenoid  =  
      Weierstrass[catenoidF,  catenoidG]  // FullSimplify

ParametricPlot3D[catenoid, {u, -1, 1}, {v, 0, 2  π}]

If S is a minimal surface with Weierstrass data {F[z],  G[z]}, then the conjugate minimal surface has Weierstrass data {i F[z],  G[z]}.

hyperboloid  =  
      Weierstrass[(I catenoidF[z]) &,  catenoidG]  // 
        FullSimplify

ParametricPlot3D[
      hyperboloid, {u, -1, 1}, {v, 0, 2  π}]

The Weierstrass data for the associated family of minimal surfaces is {(e^(i t)) F[z],  G[z]}.

<< Graphics`Animation`

associated  =  
      Weierstrass[((E^(I t)) catenoidF[
                  z]) &,  catenoidG]  // FullSimplify

Doubleclick on the image below to start the animation.

Table[
      ParametricPlot3D[associated, {u, -1, 1}, {v, 0, 2  π}, 
        Axes -> False,  Boxed ->  False], {t, 
        0, π,  π/20}]

More Examples

Enneper's surface

enneperF[z_] := 1
enneperG[z_] := z
enneper = Weierstrass[enneperF, enneperG]

ParametricPlot3D[enneper, {u, -1.5, 1.5}, {v, -1.5, 1.5}, 
      PlotPoints -> 50]

Bour's surface

bourF[z]  :=  1
bourG[z]  :=  (Sqrt[z])
bour = Weierstrass[bourF,  
        bourG]

ParametricPlot3D[bour, {u, -5, 5}, {v, -5, 5}, 
      PlotPoints ->  50]