He aquí un enfoque que, aunque ingenuo, puede mejorarse considerablemente. Simplemente definiré las funciones $f(w)$ y $g(w)$ y luego las funciones $x(w)$ , $y(w)$ y $z(w)$ en términos de las integrales, asegurando que los valores en el cero son cero. He cambiado la variable compleja $z$ a $w$ para evitar el conflicto con la coordenada cartesiana $z$ . Los parámetros de entrada serán las coordenadas polares $r$ y $t$ con el dominio especificado para describir el disco de la unidad.
Clear[f, g, x1, y1, z1];
f[w_] = 1/(w^6 + 1);
g[w_] = w^2;
x1[w_] = Integrate[f[w] (1 - g[w]^2)/2, w];
(* Make value zero at zero *)
x1[w_] = x1[w] - x1[0];
y1[w_] = Integrate[I*f[w] (1 + g[w]^2)/2, w];
z1[w_] = Integrate[f[w] g[w], w];
ParametricPlot3D[
Re[{x1[r*Exp[I*t]], y1[r*Exp[I*t]], z1[r*Exp[I*t]]}],
{r, 0, 1}, {t, 0, 2 Pi}]
Bueno, en realidad no está tan mal. Está claro que tenemos algunos problemas con los cortes de rama y que sólo obtenemos una parte de la superficie, lo que en realidad es de esperar. Lo más fácil es restringir nuestro dominio de entrada a una región que evite los cortes de rama y luego utilizar la pieza resultante, junto con la simetría conocida del resultado deseado para montar la figura final. Aquí hay una pieza que, creo, debería ser un bloque de construcción razonable.
basePic = ParametricPlot3D[
Re[{x1[r*Exp[I*t]], y1[r*Exp[I*t]], z1[r*Exp[I*t]]}],
{r, 0, 1}, {t, Pi/3, Pi}, PlotRange -> Automatic,
PlotPoints -> 100, MaxRecursion -> 8]
Podemos colocar tres copias de esto, giradas simétricamente alrededor del $z$ -eje, reflejar la figura resultante sobre un plano normal a la $z$ -y, por último, traducirlo varias veces para obtener una buena imagen. Aquí está el resultado.
Y aquí está el código, que he aplazado ya que es bastante, bueno, codificado. Realmente todo es cuestión de manipular directamente las primitivas gráficas que forman la basePic.
primitives = First[Normal[basePic]];
rotate[prim_, t_] := prim /. {
Line[pts_] :> Line[RotationMatrix[t, {0, 0, 1}].# & /@ pts],
Polygon[pts_] :> Polygon[RotationMatrix[t, {0, 0, 1}].# & /@ pts]
};
primitives =
Table[Rotate[primitives, t, {0, 0, 1}], {t, {0, 2 Pi/3, 4 Pi/3}}];
primitives = {primitives, primitives /. {
Line[pts_] :>
Line[ReflectionMatrix[{0, 0, 1}].(# - {0, 0, Re[z1[Exp[2 I]]]}) +
{0, 0, Re[z1[Exp[2 I]]]} & /@ pts],
Polygon[pts_, VertexNormals -> vn_] :>
Polygon[ReflectionMatrix[{0, 0,
1}].(# - {0, 0, Re[z1[Exp[2 I]]]}) +
{0, 0, Re[z1[Exp[2 I]]]} & /@ pts,
VertexNormals -> (-{#[[1]], #[[2]], #[[3]]} & /@ vn)]}
};
primitives = {primitives, primitives /. {
Line[pts_] :> Line[# - {0, 0, 4 Re[z1[Exp[2 I]]]} & /@ pts],
Polygon[pts_, VertexNormals -> vn_] :>
Polygon[# - {0, 0, 4 Re[z1[Exp[2 I]]]} & /@ pts,
VertexNormals -> vn]},
primitives /. {
Line[pts_] :> Line[# + {0, 0, 4 Re[z1[Exp[2 I]]]} & /@ pts],
Polygon[pts_, VertexNormals -> vn_] :>
Polygon[# + {0, 0, 4 Re[z1[Exp[2 I]]]} & /@ pts,
VertexNormals -> vn]}
};
Graphics3D[primitives,
PlotRange -> {{-0.7, 0.7}, {-0.7, 0.7}, {-1.2, 1.8}},
Axes -> True, ViewPoint -> {0.95, -3.2, 0.54}]