How to find image of a complex function with given constraints? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What are the most common pitfalls awaiting new users?Draw the image of a complex regionFinding residues of multi-dimensional complex functionsMulti-dimensional integral in the complex plane with poles and essential singularityMinkowski sum and product of 2D-regionsFind regions in which the roots of a third degree polynomial are realHow to find function existence borderUsing MaxValue with complex argumentHow to maximize the modulus of a multivariate complex-valued function?Defining 3rd variable for parametricplot3D of two-variable complex functionHow to achieve faster performance on plotting complex valued functionsComplex continuation of an interpolated function

Unexpected result with right shift after bitwise negation

Did the new image of black hole confirm the general theory of relativity?

How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time

What to do with post with dry rot?

Stars Make Stars

How does modal jazz use chord progressions?

Mortgage adviser recommends a longer term than necessary combined with overpayments

Array/tabular for long multiplication

What did Darwin mean by 'squib' here?

What's the point in a preamp?

Fishing simulator

Limit for e and 1/e

Why is "Captain Marvel" translated as male in Portugal?

Complexity of many constant time steps with occasional logarithmic steps

Area of a 2D convex hull

Is there a documented rationale why the House Ways and Means chairman can demand tax info?

Are my PIs rude or am I just being too sensitive?

Blender game recording at the wrong time

Classification of bundles, Postnikov towers, obstruction theory, local coefficients

If A makes B more likely then B makes A more likely"

Is it possible to ask for a hotel room without minibar/extra services?

How to market an anarchic city as a tourism spot to people living in civilized areas?

Problem when applying foreach loop

I'm thinking of a number



How to find image of a complex function with given constraints?



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?What are the most common pitfalls awaiting new users?Draw the image of a complex regionFinding residues of multi-dimensional complex functionsMulti-dimensional integral in the complex plane with poles and essential singularityMinkowski sum and product of 2D-regionsFind regions in which the roots of a third degree polynomial are realHow to find function existence borderUsing MaxValue with complex argumentHow to maximize the modulus of a multivariate complex-valued function?Defining 3rd variable for parametricplot3D of two-variable complex functionHow to achieve faster performance on plotting complex valued functionsComplex continuation of an interpolated function










4












$begingroup$


I am very new to Mathematica. I have started learning it only last month. I would like to graph the image of some complex valued polynomials with some provided conditions. For example: $$ p(z_1,z_2,z_3)=z_1z_2^2 +z_2z_3+z_1z_3,$$ given that $|z_1|=1, |z_2|=2=|z_3|$.










share|improve this question











$endgroup$







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    Mar 31 at 16:41






  • 3




    $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    Mar 31 at 17:22






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    Mar 31 at 18:48






  • 1




    $begingroup$
    People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
    $endgroup$
    – Michael E2
    Mar 31 at 18:50










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    Mar 31 at 19:27















4












$begingroup$


I am very new to Mathematica. I have started learning it only last month. I would like to graph the image of some complex valued polynomials with some provided conditions. For example: $$ p(z_1,z_2,z_3)=z_1z_2^2 +z_2z_3+z_1z_3,$$ given that $|z_1|=1, |z_2|=2=|z_3|$.










share|improve this question











$endgroup$







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    Mar 31 at 16:41






  • 3




    $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    Mar 31 at 17:22






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    Mar 31 at 18:48






  • 1




    $begingroup$
    People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
    $endgroup$
    – Michael E2
    Mar 31 at 18:50










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    Mar 31 at 19:27













4












4








4





$begingroup$


I am very new to Mathematica. I have started learning it only last month. I would like to graph the image of some complex valued polynomials with some provided conditions. For example: $$ p(z_1,z_2,z_3)=z_1z_2^2 +z_2z_3+z_1z_3,$$ given that $|z_1|=1, |z_2|=2=|z_3|$.










share|improve this question











$endgroup$




I am very new to Mathematica. I have started learning it only last month. I would like to graph the image of some complex valued polynomials with some provided conditions. For example: $$ p(z_1,z_2,z_3)=z_1z_2^2 +z_2z_3+z_1z_3,$$ given that $|z_1|=1, |z_2|=2=|z_3|$.







graphics complex regions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 1 at 12:22









Michael E2

150k12203482




150k12203482










asked Mar 31 at 15:56









XYZABCXYZABC

1233




1233







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    Mar 31 at 16:41






  • 3




    $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    Mar 31 at 17:22






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    Mar 31 at 18:48






  • 1




    $begingroup$
    People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
    $endgroup$
    – Michael E2
    Mar 31 at 18:50










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    Mar 31 at 19:27












  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    Mar 31 at 16:41






  • 3




    $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    Mar 31 at 17:22






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    Mar 31 at 18:48






  • 1




    $begingroup$
    People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
    $endgroup$
    – Michael E2
    Mar 31 at 18:50










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    Mar 31 at 19:27







1




1




$begingroup$
mathematica.stackexchange.com/questions/30687/…
$endgroup$
– Alrubaie
Mar 31 at 16:41




$begingroup$
mathematica.stackexchange.com/questions/30687/…
$endgroup$
– Alrubaie
Mar 31 at 16:41




3




3




$begingroup$
Possible duplicate of Draw the image of a complex region
$endgroup$
– MarcoB
Mar 31 at 17:22




$begingroup$
Possible duplicate of Draw the image of a complex region
$endgroup$
– MarcoB
Mar 31 at 17:22




1




1




$begingroup$
Do you want to draw the image or do you want a symbolic-algebraic description of the image?
$endgroup$
– Michael E2
Mar 31 at 18:48




$begingroup$
Do you want to draw the image or do you want a symbolic-algebraic description of the image?
$endgroup$
– Michael E2
Mar 31 at 18:48




1




1




$begingroup$
People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
$endgroup$
– Michael E2
Mar 31 at 18:50




$begingroup$
People here generally like users to post code as Mathematica code instead of just images or TeX, so they can copy-paste it. It makes it convenient for them and more likely you will get someone to help you. You may find this meta Q&A helpful
$endgroup$
– Michael E2
Mar 31 at 18:50












$begingroup$
@Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
$endgroup$
– mjw
Mar 31 at 19:27




$begingroup$
@Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
$endgroup$
– mjw
Mar 31 at 19:27










4 Answers
4






active

oldest

votes


















4












$begingroup$

On the boundary of the image the Jacobian will be singular:



Clear[r, s, t, u, v, w];
Block[z1 = Exp[I r], z2 = 2 Exp[I s], z3 = 2 Exp[I t],
expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]]]
(* 4 Cos[r+2 s]+2 Cos[r+t]+4 Cos[s+t], 4 Sin[r+2 s]+2 Sin[r+t]+4 Sin[s+t] *)

sub = r + t -> u, s + t -> v, r + 2 s -> w;(* see simplified Jacobian *)
jac = D[expr, r, s, t]; (* Jacobian is 2 x 3 *)
singRST = Equal @@ Divide @@ jac // Simplify (* Singular if rows are proportional *)
singUVW = singRST /. sub // Simplify
(* Solve cannot solve the system, unless we cut it into bite-size pieces *)
solv = Solve[singUVW[[;; 2]], v] /. C[1] -> 0;
singUW = singUVW[[2 ;;]] /. solv // Simplify;
solu = Solve[#, u] & /@ singUW;
(*
-((2 Sin[r + 2 s] + Sin[r + t])/(2 Cos[r + 2 s] + Cos[r + t])) ==
-((2 Sin[r + 2 s] + Sin[s + t])/(2 Cos[r + 2 s] + Cos[s + t])) ==
-((Sin[r + t] + 2 Sin[s + t])/(Cos[r + t] + 2 Cos[s + t]))

-((Sin[u] + 2 Sin[w])/(Cos[u] + 2 Cos[w])) ==
-((Sin[v] + 2 Sin[w])/(Cos[v] + 2 Cos[w])) ==
-((Sin[u] + 2 Sin[v])/(Cos[u] + 2 Cos[v]))
*)

(* fix sub so that it works on a general expression *)
invsub = First@Solve[Equal @@@ sub, u, v, w];
sub = First@Solve[Equal @@@ invsub, r, s, t];
(*some u solutions are complex*)
realu = List /@ Cases[Flatten@solu, _?(FreeQ[#, Complex] &)];

boundaries = PiecewiseExpand /@
Simplify[
TrigExpand@Simplify[Simplify[expr /. sub] /. solv] /. realu //
Flatten[#, 1] &, 0 <= w < 2 Pi];

ParametricPlot[boundaries // Evaluate, w, 0, 2 Pi]


enter image description here



Well, it's only a start, since you have to check in the interior boundaries to see whether they might be holes. But @HenrikSchumacher has done that already.






share|improve this answer











$endgroup$












  • $begingroup$
    Amazing idea to look for critical points of the Jacobian. Good job!
    $endgroup$
    – Henrik Schumacher
    Mar 31 at 20:55











  • $begingroup$
    In my Mathematica do I have to load some packages as I am not getting any graph?
    $endgroup$
    – XYZABC
    Apr 1 at 4:59










  • $begingroup$
    @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
    $endgroup$
    – J. M. is away
    Apr 1 at 6:46










  • $begingroup$
    @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
    $endgroup$
    – Michael E2
    Apr 1 at 11:46











  • $begingroup$
    Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
    $endgroup$
    – XYZABC
    Apr 1 at 14:39



















3












$begingroup$

By letting $z_1,z_2,z_3$ trace out circles, we can see some beautiful curves that live within that blob!



 p[z1_, z2_, z3_] := z1 z2^2 + z2 z3 + z1 z3;
q[t_][a1_, a2_, b1_, b2_, c1_, c2_] :=
p[Exp[ I (a1 t + a2)], 2 Exp[ I (b1 t + b2)], 2 Exp[ I (c1 t + c2)]];
Manipulate[
ParametricPlot[Re[q[ t][a1, a2, b1, b2, c1, c2]],
Im[q[ t][a1, a2, b1, b2, c1, c2]], t, 0, 2 [Pi],
Axes -> False, Frame -> True, PlotRange -> -12, 12,-12, 12],
a1, -5, 5,a2, 0, 2 [Pi],b1, -5, 5,b2, 0, 2 [Pi],
c1, -5, 5,c2, 0, 2 [Pi]]


enter image description here



Here is a look at the analytical form of these curves:



 Manipulate[
ComplexExpand@ReIm[q[t][a1, a2, b1, b2, c1, c2]],
a1, -5, 5, a2, 0, 2 [Pi], b1, -5, 5, b2, 0, 2 [Pi],
c1, -5, 5, c2, 0, 2 [Pi]]


enter image description here



or



 Manipulate[
FullSimplify[q[t][a1, a2, b1, b2, c1, c2]], a1, -5, 5, a2, 0,
2 [Pi], b1, -5, 5, b2, 0, 2 [Pi], c1, -5, 5, c2, 0, 2 [Pi]]


enter image description here






share|improve this answer











$endgroup$




















    3












    $begingroup$

    Not very elegant, but this might give you a coarse idea.



    z1 = Exp[I r];
    z2 = 2 Exp[I s];
    z3 = 2 Exp[I t];
    expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]];
    f = r, s, t [Function] Evaluate[expr];

    R = DiscretizeRegion[Cuboid[-1, -1, -1 Pi, 1, 1, 1 Pi],
    MaxCellMeasure -> 0.0125];
    pts = f @@@ MeshCoordinates[R];
    triangles = MeshCells[R, 2, "Multicells" -> True][[1]];
    Graphics[
    Red, Disk[0, 0, 10],
    FaceForm[Black], EdgeForm[Thin],
    GraphicsComplex[pts, triangles]
    ,
    Axes -> True
    ]


    enter image description here



    Could be the disk of radius 10...






    share|improve this answer











    $endgroup$












    • $begingroup$
      The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
      $endgroup$
      – mjw
      Apr 1 at 16:41



















    2












    $begingroup$

    Here's another numerical approach, similar to @Henrik's, but without the mesh overhead. It can be generalized to more variables easily. It requires some manual intervention to code the constraints on the variables.



    poly = z1 z2^2 + z2 z3 + z1 z3;
    vars = Variables[poly];
    constrVars = Thread[vars -> 1, 2, 2 Array[Exp[I #] &@*Slot, Length@vars]]
    (* z1 -> E^(I #1), z2 -> 2 E^(I #2), z3 -> 2 E^(I #3) *)

    polyFN = poly /. constrVars // Evaluate // Function;

    Graphics[
    PointSize[Tiny],
    polyFN @@ RandomReal[0, 2 Pi, Length@vars, 5 10^4] // ReIm // Point,
    Frame -> True]


    enter image description here



    We can see ghosts of some of the boundaries in my other answer.






    share|improve this answer









    $endgroup$













      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "387"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194320%2fhow-to-find-image-of-a-complex-function-with-given-constraints%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      4 Answers
      4






      active

      oldest

      votes








      4 Answers
      4






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4












      $begingroup$

      On the boundary of the image the Jacobian will be singular:



      Clear[r, s, t, u, v, w];
      Block[z1 = Exp[I r], z2 = 2 Exp[I s], z3 = 2 Exp[I t],
      expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]]]
      (* 4 Cos[r+2 s]+2 Cos[r+t]+4 Cos[s+t], 4 Sin[r+2 s]+2 Sin[r+t]+4 Sin[s+t] *)

      sub = r + t -> u, s + t -> v, r + 2 s -> w;(* see simplified Jacobian *)
      jac = D[expr, r, s, t]; (* Jacobian is 2 x 3 *)
      singRST = Equal @@ Divide @@ jac // Simplify (* Singular if rows are proportional *)
      singUVW = singRST /. sub // Simplify
      (* Solve cannot solve the system, unless we cut it into bite-size pieces *)
      solv = Solve[singUVW[[;; 2]], v] /. C[1] -> 0;
      singUW = singUVW[[2 ;;]] /. solv // Simplify;
      solu = Solve[#, u] & /@ singUW;
      (*
      -((2 Sin[r + 2 s] + Sin[r + t])/(2 Cos[r + 2 s] + Cos[r + t])) ==
      -((2 Sin[r + 2 s] + Sin[s + t])/(2 Cos[r + 2 s] + Cos[s + t])) ==
      -((Sin[r + t] + 2 Sin[s + t])/(Cos[r + t] + 2 Cos[s + t]))

      -((Sin[u] + 2 Sin[w])/(Cos[u] + 2 Cos[w])) ==
      -((Sin[v] + 2 Sin[w])/(Cos[v] + 2 Cos[w])) ==
      -((Sin[u] + 2 Sin[v])/(Cos[u] + 2 Cos[v]))
      *)

      (* fix sub so that it works on a general expression *)
      invsub = First@Solve[Equal @@@ sub, u, v, w];
      sub = First@Solve[Equal @@@ invsub, r, s, t];
      (*some u solutions are complex*)
      realu = List /@ Cases[Flatten@solu, _?(FreeQ[#, Complex] &)];

      boundaries = PiecewiseExpand /@
      Simplify[
      TrigExpand@Simplify[Simplify[expr /. sub] /. solv] /. realu //
      Flatten[#, 1] &, 0 <= w < 2 Pi];

      ParametricPlot[boundaries // Evaluate, w, 0, 2 Pi]


      enter image description here



      Well, it's only a start, since you have to check in the interior boundaries to see whether they might be holes. But @HenrikSchumacher has done that already.






      share|improve this answer











      $endgroup$












      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        Mar 31 at 20:55











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        Apr 1 at 4:59










      • $begingroup$
        @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
        $endgroup$
        – J. M. is away
        Apr 1 at 6:46










      • $begingroup$
        @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
        $endgroup$
        – Michael E2
        Apr 1 at 11:46











      • $begingroup$
        Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
        $endgroup$
        – XYZABC
        Apr 1 at 14:39
















      4












      $begingroup$

      On the boundary of the image the Jacobian will be singular:



      Clear[r, s, t, u, v, w];
      Block[z1 = Exp[I r], z2 = 2 Exp[I s], z3 = 2 Exp[I t],
      expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]]]
      (* 4 Cos[r+2 s]+2 Cos[r+t]+4 Cos[s+t], 4 Sin[r+2 s]+2 Sin[r+t]+4 Sin[s+t] *)

      sub = r + t -> u, s + t -> v, r + 2 s -> w;(* see simplified Jacobian *)
      jac = D[expr, r, s, t]; (* Jacobian is 2 x 3 *)
      singRST = Equal @@ Divide @@ jac // Simplify (* Singular if rows are proportional *)
      singUVW = singRST /. sub // Simplify
      (* Solve cannot solve the system, unless we cut it into bite-size pieces *)
      solv = Solve[singUVW[[;; 2]], v] /. C[1] -> 0;
      singUW = singUVW[[2 ;;]] /. solv // Simplify;
      solu = Solve[#, u] & /@ singUW;
      (*
      -((2 Sin[r + 2 s] + Sin[r + t])/(2 Cos[r + 2 s] + Cos[r + t])) ==
      -((2 Sin[r + 2 s] + Sin[s + t])/(2 Cos[r + 2 s] + Cos[s + t])) ==
      -((Sin[r + t] + 2 Sin[s + t])/(Cos[r + t] + 2 Cos[s + t]))

      -((Sin[u] + 2 Sin[w])/(Cos[u] + 2 Cos[w])) ==
      -((Sin[v] + 2 Sin[w])/(Cos[v] + 2 Cos[w])) ==
      -((Sin[u] + 2 Sin[v])/(Cos[u] + 2 Cos[v]))
      *)

      (* fix sub so that it works on a general expression *)
      invsub = First@Solve[Equal @@@ sub, u, v, w];
      sub = First@Solve[Equal @@@ invsub, r, s, t];
      (*some u solutions are complex*)
      realu = List /@ Cases[Flatten@solu, _?(FreeQ[#, Complex] &)];

      boundaries = PiecewiseExpand /@
      Simplify[
      TrigExpand@Simplify[Simplify[expr /. sub] /. solv] /. realu //
      Flatten[#, 1] &, 0 <= w < 2 Pi];

      ParametricPlot[boundaries // Evaluate, w, 0, 2 Pi]


      enter image description here



      Well, it's only a start, since you have to check in the interior boundaries to see whether they might be holes. But @HenrikSchumacher has done that already.






      share|improve this answer











      $endgroup$












      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        Mar 31 at 20:55











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        Apr 1 at 4:59










      • $begingroup$
        @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
        $endgroup$
        – J. M. is away
        Apr 1 at 6:46










      • $begingroup$
        @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
        $endgroup$
        – Michael E2
        Apr 1 at 11:46











      • $begingroup$
        Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
        $endgroup$
        – XYZABC
        Apr 1 at 14:39














      4












      4








      4





      $begingroup$

      On the boundary of the image the Jacobian will be singular:



      Clear[r, s, t, u, v, w];
      Block[z1 = Exp[I r], z2 = 2 Exp[I s], z3 = 2 Exp[I t],
      expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]]]
      (* 4 Cos[r+2 s]+2 Cos[r+t]+4 Cos[s+t], 4 Sin[r+2 s]+2 Sin[r+t]+4 Sin[s+t] *)

      sub = r + t -> u, s + t -> v, r + 2 s -> w;(* see simplified Jacobian *)
      jac = D[expr, r, s, t]; (* Jacobian is 2 x 3 *)
      singRST = Equal @@ Divide @@ jac // Simplify (* Singular if rows are proportional *)
      singUVW = singRST /. sub // Simplify
      (* Solve cannot solve the system, unless we cut it into bite-size pieces *)
      solv = Solve[singUVW[[;; 2]], v] /. C[1] -> 0;
      singUW = singUVW[[2 ;;]] /. solv // Simplify;
      solu = Solve[#, u] & /@ singUW;
      (*
      -((2 Sin[r + 2 s] + Sin[r + t])/(2 Cos[r + 2 s] + Cos[r + t])) ==
      -((2 Sin[r + 2 s] + Sin[s + t])/(2 Cos[r + 2 s] + Cos[s + t])) ==
      -((Sin[r + t] + 2 Sin[s + t])/(Cos[r + t] + 2 Cos[s + t]))

      -((Sin[u] + 2 Sin[w])/(Cos[u] + 2 Cos[w])) ==
      -((Sin[v] + 2 Sin[w])/(Cos[v] + 2 Cos[w])) ==
      -((Sin[u] + 2 Sin[v])/(Cos[u] + 2 Cos[v]))
      *)

      (* fix sub so that it works on a general expression *)
      invsub = First@Solve[Equal @@@ sub, u, v, w];
      sub = First@Solve[Equal @@@ invsub, r, s, t];
      (*some u solutions are complex*)
      realu = List /@ Cases[Flatten@solu, _?(FreeQ[#, Complex] &)];

      boundaries = PiecewiseExpand /@
      Simplify[
      TrigExpand@Simplify[Simplify[expr /. sub] /. solv] /. realu //
      Flatten[#, 1] &, 0 <= w < 2 Pi];

      ParametricPlot[boundaries // Evaluate, w, 0, 2 Pi]


      enter image description here



      Well, it's only a start, since you have to check in the interior boundaries to see whether they might be holes. But @HenrikSchumacher has done that already.






      share|improve this answer











      $endgroup$



      On the boundary of the image the Jacobian will be singular:



      Clear[r, s, t, u, v, w];
      Block[z1 = Exp[I r], z2 = 2 Exp[I s], z3 = 2 Exp[I t],
      expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]]]
      (* 4 Cos[r+2 s]+2 Cos[r+t]+4 Cos[s+t], 4 Sin[r+2 s]+2 Sin[r+t]+4 Sin[s+t] *)

      sub = r + t -> u, s + t -> v, r + 2 s -> w;(* see simplified Jacobian *)
      jac = D[expr, r, s, t]; (* Jacobian is 2 x 3 *)
      singRST = Equal @@ Divide @@ jac // Simplify (* Singular if rows are proportional *)
      singUVW = singRST /. sub // Simplify
      (* Solve cannot solve the system, unless we cut it into bite-size pieces *)
      solv = Solve[singUVW[[;; 2]], v] /. C[1] -> 0;
      singUW = singUVW[[2 ;;]] /. solv // Simplify;
      solu = Solve[#, u] & /@ singUW;
      (*
      -((2 Sin[r + 2 s] + Sin[r + t])/(2 Cos[r + 2 s] + Cos[r + t])) ==
      -((2 Sin[r + 2 s] + Sin[s + t])/(2 Cos[r + 2 s] + Cos[s + t])) ==
      -((Sin[r + t] + 2 Sin[s + t])/(Cos[r + t] + 2 Cos[s + t]))

      -((Sin[u] + 2 Sin[w])/(Cos[u] + 2 Cos[w])) ==
      -((Sin[v] + 2 Sin[w])/(Cos[v] + 2 Cos[w])) ==
      -((Sin[u] + 2 Sin[v])/(Cos[u] + 2 Cos[v]))
      *)

      (* fix sub so that it works on a general expression *)
      invsub = First@Solve[Equal @@@ sub, u, v, w];
      sub = First@Solve[Equal @@@ invsub, r, s, t];
      (*some u solutions are complex*)
      realu = List /@ Cases[Flatten@solu, _?(FreeQ[#, Complex] &)];

      boundaries = PiecewiseExpand /@
      Simplify[
      TrigExpand@Simplify[Simplify[expr /. sub] /. solv] /. realu //
      Flatten[#, 1] &, 0 <= w < 2 Pi];

      ParametricPlot[boundaries // Evaluate, w, 0, 2 Pi]


      enter image description here



      Well, it's only a start, since you have to check in the interior boundaries to see whether they might be holes. But @HenrikSchumacher has done that already.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Apr 1 at 12:28

























      answered Mar 31 at 20:32









      Michael E2Michael E2

      150k12203482




      150k12203482











      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        Mar 31 at 20:55











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        Apr 1 at 4:59










      • $begingroup$
        @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
        $endgroup$
        – J. M. is away
        Apr 1 at 6:46










      • $begingroup$
        @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
        $endgroup$
        – Michael E2
        Apr 1 at 11:46











      • $begingroup$
        Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
        $endgroup$
        – XYZABC
        Apr 1 at 14:39

















      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        Mar 31 at 20:55











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        Apr 1 at 4:59










      • $begingroup$
        @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
        $endgroup$
        – J. M. is away
        Apr 1 at 6:46










      • $begingroup$
        @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
        $endgroup$
        – Michael E2
        Apr 1 at 11:46











      • $begingroup$
        Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
        $endgroup$
        – XYZABC
        Apr 1 at 14:39
















      $begingroup$
      Amazing idea to look for critical points of the Jacobian. Good job!
      $endgroup$
      – Henrik Schumacher
      Mar 31 at 20:55





      $begingroup$
      Amazing idea to look for critical points of the Jacobian. Good job!
      $endgroup$
      – Henrik Schumacher
      Mar 31 at 20:55













      $begingroup$
      In my Mathematica do I have to load some packages as I am not getting any graph?
      $endgroup$
      – XYZABC
      Apr 1 at 4:59




      $begingroup$
      In my Mathematica do I have to load some packages as I am not getting any graph?
      $endgroup$
      – XYZABC
      Apr 1 at 4:59












      $begingroup$
      @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
      $endgroup$
      – J. M. is away
      Apr 1 at 6:46




      $begingroup$
      @XYZ, did you try running it in a newly opened Mathematica notebook? If it didn't work there, please mention what version number you are using.
      $endgroup$
      – J. M. is away
      Apr 1 at 6:46












      $begingroup$
      @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
      $endgroup$
      – Michael E2
      Apr 1 at 11:46





      $begingroup$
      @XYZABC It seems there may have been two problems. Copying and pasting from the site to M messed up some newlines, which changed the meaning of %. The other was that I added a line but put it in out of order in the edit. I've removed all the % and replaced them with variables. It should be fixed now.
      $endgroup$
      – Michael E2
      Apr 1 at 11:46













      $begingroup$
      Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
      $endgroup$
      – XYZABC
      Apr 1 at 14:39





      $begingroup$
      Could you please explain me the code singRST = Equal @@ Divide @@ jac // Simplify Or maybe give me some reference so that I can go through it.
      $endgroup$
      – XYZABC
      Apr 1 at 14:39












      3












      $begingroup$

      By letting $z_1,z_2,z_3$ trace out circles, we can see some beautiful curves that live within that blob!



       p[z1_, z2_, z3_] := z1 z2^2 + z2 z3 + z1 z3;
      q[t_][a1_, a2_, b1_, b2_, c1_, c2_] :=
      p[Exp[ I (a1 t + a2)], 2 Exp[ I (b1 t + b2)], 2 Exp[ I (c1 t + c2)]];
      Manipulate[
      ParametricPlot[Re[q[ t][a1, a2, b1, b2, c1, c2]],
      Im[q[ t][a1, a2, b1, b2, c1, c2]], t, 0, 2 [Pi],
      Axes -> False, Frame -> True, PlotRange -> -12, 12,-12, 12],
      a1, -5, 5,a2, 0, 2 [Pi],b1, -5, 5,b2, 0, 2 [Pi],
      c1, -5, 5,c2, 0, 2 [Pi]]


      enter image description here



      Here is a look at the analytical form of these curves:



       Manipulate[
      ComplexExpand@ReIm[q[t][a1, a2, b1, b2, c1, c2]],
      a1, -5, 5, a2, 0, 2 [Pi], b1, -5, 5, b2, 0, 2 [Pi],
      c1, -5, 5, c2, 0, 2 [Pi]]


      enter image description here



      or



       Manipulate[
      FullSimplify[q[t][a1, a2, b1, b2, c1, c2]], a1, -5, 5, a2, 0,
      2 [Pi], b1, -5, 5, b2, 0, 2 [Pi], c1, -5, 5, c2, 0, 2 [Pi]]


      enter image description here






      share|improve this answer











      $endgroup$

















        3












        $begingroup$

        By letting $z_1,z_2,z_3$ trace out circles, we can see some beautiful curves that live within that blob!



         p[z1_, z2_, z3_] := z1 z2^2 + z2 z3 + z1 z3;
        q[t_][a1_, a2_, b1_, b2_, c1_, c2_] :=
        p[Exp[ I (a1 t + a2)], 2 Exp[ I (b1 t + b2)], 2 Exp[ I (c1 t + c2)]];
        Manipulate[
        ParametricPlot[Re[q[ t][a1, a2, b1, b2, c1, c2]],
        Im[q[ t][a1, a2, b1, b2, c1, c2]], t, 0, 2 [Pi],
        Axes -> False, Frame -> True, PlotRange -> -12, 12,-12, 12],
        a1, -5, 5,a2, 0, 2 [Pi],b1, -5, 5,b2, 0, 2 [Pi],
        c1, -5, 5,c2, 0, 2 [Pi]]


        enter image description here



        Here is a look at the analytical form of these curves:



         Manipulate[
        ComplexExpand@ReIm[q[t][a1, a2, b1, b2, c1, c2]],
        a1, -5, 5, a2, 0, 2 [Pi], b1, -5, 5, b2, 0, 2 [Pi],
        c1, -5, 5, c2, 0, 2 [Pi]]


        enter image description here



        or



         Manipulate[
        FullSimplify[q[t][a1, a2, b1, b2, c1, c2]], a1, -5, 5, a2, 0,
        2 [Pi], b1, -5, 5, b2, 0, 2 [Pi], c1, -5, 5, c2, 0, 2 [Pi]]


        enter image description here






        share|improve this answer











        $endgroup$















          3












          3








          3





          $begingroup$

          By letting $z_1,z_2,z_3$ trace out circles, we can see some beautiful curves that live within that blob!



           p[z1_, z2_, z3_] := z1 z2^2 + z2 z3 + z1 z3;
          q[t_][a1_, a2_, b1_, b2_, c1_, c2_] :=
          p[Exp[ I (a1 t + a2)], 2 Exp[ I (b1 t + b2)], 2 Exp[ I (c1 t + c2)]];
          Manipulate[
          ParametricPlot[Re[q[ t][a1, a2, b1, b2, c1, c2]],
          Im[q[ t][a1, a2, b1, b2, c1, c2]], t, 0, 2 [Pi],
          Axes -> False, Frame -> True, PlotRange -> -12, 12,-12, 12],
          a1, -5, 5,a2, 0, 2 [Pi],b1, -5, 5,b2, 0, 2 [Pi],
          c1, -5, 5,c2, 0, 2 [Pi]]


          enter image description here



          Here is a look at the analytical form of these curves:



           Manipulate[
          ComplexExpand@ReIm[q[t][a1, a2, b1, b2, c1, c2]],
          a1, -5, 5, a2, 0, 2 [Pi], b1, -5, 5, b2, 0, 2 [Pi],
          c1, -5, 5, c2, 0, 2 [Pi]]


          enter image description here



          or



           Manipulate[
          FullSimplify[q[t][a1, a2, b1, b2, c1, c2]], a1, -5, 5, a2, 0,
          2 [Pi], b1, -5, 5, b2, 0, 2 [Pi], c1, -5, 5, c2, 0, 2 [Pi]]


          enter image description here






          share|improve this answer











          $endgroup$



          By letting $z_1,z_2,z_3$ trace out circles, we can see some beautiful curves that live within that blob!



           p[z1_, z2_, z3_] := z1 z2^2 + z2 z3 + z1 z3;
          q[t_][a1_, a2_, b1_, b2_, c1_, c2_] :=
          p[Exp[ I (a1 t + a2)], 2 Exp[ I (b1 t + b2)], 2 Exp[ I (c1 t + c2)]];
          Manipulate[
          ParametricPlot[Re[q[ t][a1, a2, b1, b2, c1, c2]],
          Im[q[ t][a1, a2, b1, b2, c1, c2]], t, 0, 2 [Pi],
          Axes -> False, Frame -> True, PlotRange -> -12, 12,-12, 12],
          a1, -5, 5,a2, 0, 2 [Pi],b1, -5, 5,b2, 0, 2 [Pi],
          c1, -5, 5,c2, 0, 2 [Pi]]


          enter image description here



          Here is a look at the analytical form of these curves:



           Manipulate[
          ComplexExpand@ReIm[q[t][a1, a2, b1, b2, c1, c2]],
          a1, -5, 5, a2, 0, 2 [Pi], b1, -5, 5, b2, 0, 2 [Pi],
          c1, -5, 5, c2, 0, 2 [Pi]]


          enter image description here



          or



           Manipulate[
          FullSimplify[q[t][a1, a2, b1, b2, c1, c2]], a1, -5, 5, a2, 0,
          2 [Pi], b1, -5, 5, b2, 0, 2 [Pi], c1, -5, 5, c2, 0, 2 [Pi]]


          enter image description here







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 31 at 20:20

























          answered Mar 31 at 20:11









          mjwmjw

          1,29010




          1,29010





















              3












              $begingroup$

              Not very elegant, but this might give you a coarse idea.



              z1 = Exp[I r];
              z2 = 2 Exp[I s];
              z3 = 2 Exp[I t];
              expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]];
              f = r, s, t [Function] Evaluate[expr];

              R = DiscretizeRegion[Cuboid[-1, -1, -1 Pi, 1, 1, 1 Pi],
              MaxCellMeasure -> 0.0125];
              pts = f @@@ MeshCoordinates[R];
              triangles = MeshCells[R, 2, "Multicells" -> True][[1]];
              Graphics[
              Red, Disk[0, 0, 10],
              FaceForm[Black], EdgeForm[Thin],
              GraphicsComplex[pts, triangles]
              ,
              Axes -> True
              ]


              enter image description here



              Could be the disk of radius 10...






              share|improve this answer











              $endgroup$












              • $begingroup$
                The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
                $endgroup$
                – mjw
                Apr 1 at 16:41
















              3












              $begingroup$

              Not very elegant, but this might give you a coarse idea.



              z1 = Exp[I r];
              z2 = 2 Exp[I s];
              z3 = 2 Exp[I t];
              expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]];
              f = r, s, t [Function] Evaluate[expr];

              R = DiscretizeRegion[Cuboid[-1, -1, -1 Pi, 1, 1, 1 Pi],
              MaxCellMeasure -> 0.0125];
              pts = f @@@ MeshCoordinates[R];
              triangles = MeshCells[R, 2, "Multicells" -> True][[1]];
              Graphics[
              Red, Disk[0, 0, 10],
              FaceForm[Black], EdgeForm[Thin],
              GraphicsComplex[pts, triangles]
              ,
              Axes -> True
              ]


              enter image description here



              Could be the disk of radius 10...






              share|improve this answer











              $endgroup$












              • $begingroup$
                The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
                $endgroup$
                – mjw
                Apr 1 at 16:41














              3












              3








              3





              $begingroup$

              Not very elegant, but this might give you a coarse idea.



              z1 = Exp[I r];
              z2 = 2 Exp[I s];
              z3 = 2 Exp[I t];
              expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]];
              f = r, s, t [Function] Evaluate[expr];

              R = DiscretizeRegion[Cuboid[-1, -1, -1 Pi, 1, 1, 1 Pi],
              MaxCellMeasure -> 0.0125];
              pts = f @@@ MeshCoordinates[R];
              triangles = MeshCells[R, 2, "Multicells" -> True][[1]];
              Graphics[
              Red, Disk[0, 0, 10],
              FaceForm[Black], EdgeForm[Thin],
              GraphicsComplex[pts, triangles]
              ,
              Axes -> True
              ]


              enter image description here



              Could be the disk of radius 10...






              share|improve this answer











              $endgroup$



              Not very elegant, but this might give you a coarse idea.



              z1 = Exp[I r];
              z2 = 2 Exp[I s];
              z3 = 2 Exp[I t];
              expr = ComplexExpand[ReIm[z1 z2^2 + z2 z3 + z1 z3]];
              f = r, s, t [Function] Evaluate[expr];

              R = DiscretizeRegion[Cuboid[-1, -1, -1 Pi, 1, 1, 1 Pi],
              MaxCellMeasure -> 0.0125];
              pts = f @@@ MeshCoordinates[R];
              triangles = MeshCells[R, 2, "Multicells" -> True][[1]];
              Graphics[
              Red, Disk[0, 0, 10],
              FaceForm[Black], EdgeForm[Thin],
              GraphicsComplex[pts, triangles]
              ,
              Axes -> True
              ]


              enter image description here



              Could be the disk of radius 10...







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Mar 31 at 20:55

























              answered Mar 31 at 19:29









              Henrik SchumacherHenrik Schumacher

              60.2k582169




              60.2k582169











              • $begingroup$
                The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
                $endgroup$
                – mjw
                Apr 1 at 16:41

















              • $begingroup$
                The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
                $endgroup$
                – mjw
                Apr 1 at 16:41
















              $begingroup$
              The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
              $endgroup$
              – mjw
              Apr 1 at 16:41





              $begingroup$
              The image is clearly a subset of the disk of radius 10. Perhaps somebody could prove that this is the region or show a point that is not included.
              $endgroup$
              – mjw
              Apr 1 at 16:41












              2












              $begingroup$

              Here's another numerical approach, similar to @Henrik's, but without the mesh overhead. It can be generalized to more variables easily. It requires some manual intervention to code the constraints on the variables.



              poly = z1 z2^2 + z2 z3 + z1 z3;
              vars = Variables[poly];
              constrVars = Thread[vars -> 1, 2, 2 Array[Exp[I #] &@*Slot, Length@vars]]
              (* z1 -> E^(I #1), z2 -> 2 E^(I #2), z3 -> 2 E^(I #3) *)

              polyFN = poly /. constrVars // Evaluate // Function;

              Graphics[
              PointSize[Tiny],
              polyFN @@ RandomReal[0, 2 Pi, Length@vars, 5 10^4] // ReIm // Point,
              Frame -> True]


              enter image description here



              We can see ghosts of some of the boundaries in my other answer.






              share|improve this answer









              $endgroup$

















                2












                $begingroup$

                Here's another numerical approach, similar to @Henrik's, but without the mesh overhead. It can be generalized to more variables easily. It requires some manual intervention to code the constraints on the variables.



                poly = z1 z2^2 + z2 z3 + z1 z3;
                vars = Variables[poly];
                constrVars = Thread[vars -> 1, 2, 2 Array[Exp[I #] &@*Slot, Length@vars]]
                (* z1 -> E^(I #1), z2 -> 2 E^(I #2), z3 -> 2 E^(I #3) *)

                polyFN = poly /. constrVars // Evaluate // Function;

                Graphics[
                PointSize[Tiny],
                polyFN @@ RandomReal[0, 2 Pi, Length@vars, 5 10^4] // ReIm // Point,
                Frame -> True]


                enter image description here



                We can see ghosts of some of the boundaries in my other answer.






                share|improve this answer









                $endgroup$















                  2












                  2








                  2





                  $begingroup$

                  Here's another numerical approach, similar to @Henrik's, but without the mesh overhead. It can be generalized to more variables easily. It requires some manual intervention to code the constraints on the variables.



                  poly = z1 z2^2 + z2 z3 + z1 z3;
                  vars = Variables[poly];
                  constrVars = Thread[vars -> 1, 2, 2 Array[Exp[I #] &@*Slot, Length@vars]]
                  (* z1 -> E^(I #1), z2 -> 2 E^(I #2), z3 -> 2 E^(I #3) *)

                  polyFN = poly /. constrVars // Evaluate // Function;

                  Graphics[
                  PointSize[Tiny],
                  polyFN @@ RandomReal[0, 2 Pi, Length@vars, 5 10^4] // ReIm // Point,
                  Frame -> True]


                  enter image description here



                  We can see ghosts of some of the boundaries in my other answer.






                  share|improve this answer









                  $endgroup$



                  Here's another numerical approach, similar to @Henrik's, but without the mesh overhead. It can be generalized to more variables easily. It requires some manual intervention to code the constraints on the variables.



                  poly = z1 z2^2 + z2 z3 + z1 z3;
                  vars = Variables[poly];
                  constrVars = Thread[vars -> 1, 2, 2 Array[Exp[I #] &@*Slot, Length@vars]]
                  (* z1 -> E^(I #1), z2 -> 2 E^(I #2), z3 -> 2 E^(I #3) *)

                  polyFN = poly /. constrVars // Evaluate // Function;

                  Graphics[
                  PointSize[Tiny],
                  polyFN @@ RandomReal[0, 2 Pi, Length@vars, 5 10^4] // ReIm // Point,
                  Frame -> True]


                  enter image description here



                  We can see ghosts of some of the boundaries in my other answer.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 1 at 12:12









                  Michael E2Michael E2

                  150k12203482




                  150k12203482



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Mathematica Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194320%2fhow-to-find-image-of-a-complex-function-with-given-constraints%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

                      Tähtien Talli Jäsenet | Lähteet | NavigointivalikkoSuomen Hippos – Tähtien Talli

                      Do these cracks on my tires look bad? The Next CEO of Stack OverflowDry rot tire should I replace?Having to replace tiresFishtailed so easily? Bad tires? ABS?Filling the tires with something other than air, to avoid puncture hassles?Used Michelin tires safe to install?Do these tyre cracks necessitate replacement?Rumbling noise: tires or mechanicalIs it possible to fix noisy feathered tires?Are bad winter tires still better than summer tires in winter?Torque converter failure - Related to replacing only 2 tires?Why use snow tires on all 4 wheels on 2-wheel-drive cars?