Parametrize plots on the imaginary plane to a real axes plane?

“For every plot generated using imaginary numbers, there exists an alternate parameterization using only real numbers.”

Something I’ve been thinking a lot about. I assume it has a name, is well-studied, and has been proved or disproved already.

Let’s use the Mandelbrot Set as an example. We could re-label the “real” and “imaginary” axes “x” and “y” if we wanted. Surely, there must be a simple parameterization x = ( something ) , y = ( something ) that generates the boundary of the set without utilizing Sqrt[-1] ?

Dear @Bryan Lettner does your question have any relation to Wolfram Technologies?

This forum permits only subjects related to Wolfram Technologies. Post elsewhere for other subjects or make clear the connection to Wolfram Technologies. Please read the guidelines.

Yes, it relates to Mathematica. Apologies for not being more specific. I am trying to use Mathematica to answer the questions below. We generate the first two iterations of the Mandelbrot Set with:

ContourPlot[{ Abs[x + I y] == 2,  Abs[x + (x + I y)^2 + I y] == 2}, {x, -2, 2}, {y, -2, 2}]

The first iteration is Abs(x + I y) = 2 . It corresponds to a simple circle, { x(t)= 2 Cos(t) , y(t)= 2 Sin(t) } .
Finding a parameterization { x(t) , y(t) } that corresponds to the 2nd iteration, Abs(x + (x + I y)^2 + I y) = 2 proves more difficult. (it’s not an ellipse, though it looks like one).

Question 1: Right-clicking the plot allows you to Get Coordinates for one specific point. Is there a way to export a list of many coordinates for the curve? Quadruple clicking on the curve highlights many point on the curve.

How would we export the coordinates of those points to a list?

Question 2: Using Reduce can help us solve for x or y, for instance:

Yet somehow, y = (all that) is equivalent to 2 Sin(t) when mapping from {real, imaginary} to {x,y}. Does anyone know of a way to show that this is true ? I would think it’s straightforward, since it’s just a simple circle. But i’m lost. Thank you.

You can get the implicit relation as below.

ee = x + (x + I y)^2 + I y;
eesq = ComplexExpand[Expand[ee*Conjugate[ee]]]

(* Out[170]= x^2 + 2 x^3 + x^4 + y^2 + 2 x y^2 + 2 x^2 y^2 + y^4 *)

A parametric form is a different matter though. Not sure what might work for that.

I am pretty sure there is a more elegant solution to your problem. But try this

plt = ContourPlot[{Abs[x + I y] == 2,  Abs[x + (x + I y)^2 + I y] == 2}, {x, -2, 2}, {y, -2, 2}]

curve is the number of the curve which you want to extract:

curve = 2;
ind = Flatten[List @@ plt[[1, 2, 1, curve + 2, 2]]];

Now get the points you want to have:

points = List @@ plt[[1, 1]][[#]] & /@ ind

and look

    plt2=ListPlot[points]
    Show[plt2, plt]

Somewhat more elegant would be:

plt = ContourPlot[{Abs[x + I y] == 2,    Abs[x + (x + I y)^2 + I y] == 2}, {x, -2, 2}, {y, -2, 2}]
curve = 2;
ind = Cases[List @@ plt, Line[x_] -> x, Infinity][[curve]];
ppp = List @@ Cases[List @@ plt, GraphicsComplex[x_, y__] -> x][[1]];
points = ppp[[#]] & /@ ind;
plt2 = ListPlot[points]
Show[plt2, plt]