How to find image of a complex function with given constraints?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

Is it possible to create a QR code using text?

How to remove border from elements in the last row?

What are the G forces leaving Earth orbit?

Fair gambler's ruin problem intuition

Why didn't Boeing produce its own regional jet?

How could indestructible materials be used in power generation?

Using "tail" to follow a file without displaying the most recent lines

What do you call someone who asks many questions?

Can someone clarify Hamming's notion of important problems in relation to modern academia?

Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?

One verb to replace 'be a member of' a club

Is there an expression that means doing something right before you will need it rather than doing it in case you might need it?

How to install cross-compiler on Ubuntu 18.04?

Getting extremely large arrows with tikzcd

files created then deleted at every second in tmp directory

Car headlights in a world without electricity

What is the fastest integer factorization to break RSA?

Forgetting the musical notes while performing in concert

How to travel to Japan while expressing milk?

Does the Idaho Potato Commission associate potato skins with healthy eating?

Is it inappropriate for a student to attend their mentor's dissertation defense?

How badly should I try to prevent a user from XSSing themselves?

Why were 5.25" floppy drives cheaper than 8"?

What is required to make GPS signals available indoors?



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


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









New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    2 days ago










  • $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    2 days ago






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    2 days ago






  • 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
    2 days ago










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    2 days ago















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









New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    2 days ago










  • $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    2 days ago






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    2 days ago






  • 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
    2 days ago










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    2 days ago













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









New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$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









New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited yesterday









Michael E2

150k12203482




150k12203482






New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 days ago









XYZABCXYZABC

1233




1233




New contributor




XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






XYZABC is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    2 days ago










  • $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    2 days ago






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    2 days ago






  • 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
    2 days ago










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    2 days ago












  • 1




    $begingroup$
    mathematica.stackexchange.com/questions/30687/…
    $endgroup$
    – Alrubaie
    2 days ago










  • $begingroup$
    Possible duplicate of Draw the image of a complex region
    $endgroup$
    – MarcoB
    2 days ago






  • 1




    $begingroup$
    Do you want to draw the image or do you want a symbolic-algebraic description of the image?
    $endgroup$
    – Michael E2
    2 days ago






  • 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
    2 days ago










  • $begingroup$
    @Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
    $endgroup$
    – mjw
    2 days ago







1




1




$begingroup$
mathematica.stackexchange.com/questions/30687/…
$endgroup$
– Alrubaie
2 days ago




$begingroup$
mathematica.stackexchange.com/questions/30687/…
$endgroup$
– Alrubaie
2 days ago












$begingroup$
Possible duplicate of Draw the image of a complex region
$endgroup$
– MarcoB
2 days ago




$begingroup$
Possible duplicate of Draw the image of a complex region
$endgroup$
– MarcoB
2 days ago




1




1




$begingroup$
Do you want to draw the image or do you want a symbolic-algebraic description of the image?
$endgroup$
– Michael E2
2 days ago




$begingroup$
Do you want to draw the image or do you want a symbolic-algebraic description of the image?
$endgroup$
– Michael E2
2 days ago




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
2 days ago




$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
2 days ago












$begingroup$
@Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
$endgroup$
– mjw
2 days ago




$begingroup$
@Michael E2, Great point! I've updated my answer to include the algebraic description as well. Thank you!
$endgroup$
– mjw
2 days ago










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
    2 days ago











  • $begingroup$
    In my Mathematica do I have to load some packages as I am not getting any graph?
    $endgroup$
    – XYZABC
    2 days ago










  • $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 slightly pensive
    yesterday










  • $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
    yesterday











  • $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
    yesterday



















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
      yesterday



















    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.ifUsing("editor", function ()
      return StackExchange.using("mathjaxEditing", function ()
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
      );
      );
      , "mathjax-editing");

      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
      );



      );






      XYZABC is a new contributor. Be nice, and check out our Code of Conduct.









      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
        2 days ago











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        2 days ago










      • $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 slightly pensive
        yesterday










      • $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
        yesterday











      • $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
        yesterday
















      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
        2 days ago











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        2 days ago










      • $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 slightly pensive
        yesterday










      • $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
        yesterday











      • $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
        yesterday














      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 yesterday

























      answered 2 days ago









      Michael E2Michael E2

      150k12203482




      150k12203482











      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        2 days ago











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        2 days ago










      • $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 slightly pensive
        yesterday










      • $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
        yesterday











      • $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
        yesterday

















      • $begingroup$
        Amazing idea to look for critical points of the Jacobian. Good job!
        $endgroup$
        – Henrik Schumacher
        2 days ago











      • $begingroup$
        In my Mathematica do I have to load some packages as I am not getting any graph?
        $endgroup$
        – XYZABC
        2 days ago










      • $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 slightly pensive
        yesterday










      • $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
        yesterday











      • $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
        yesterday
















      $begingroup$
      Amazing idea to look for critical points of the Jacobian. Good job!
      $endgroup$
      – Henrik Schumacher
      2 days ago





      $begingroup$
      Amazing idea to look for critical points of the Jacobian. Good job!
      $endgroup$
      – Henrik Schumacher
      2 days ago













      $begingroup$
      In my Mathematica do I have to load some packages as I am not getting any graph?
      $endgroup$
      – XYZABC
      2 days ago




      $begingroup$
      In my Mathematica do I have to load some packages as I am not getting any graph?
      $endgroup$
      – XYZABC
      2 days ago












      $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 slightly pensive
      yesterday




      $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 slightly pensive
      yesterday












      $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
      yesterday





      $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
      yesterday













      $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
      yesterday





      $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
      yesterday












      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 2 days ago

























          answered 2 days ago









          mjwmjw

          1,24210




          1,24210





















              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
                yesterday
















              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
                yesterday














              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 2 days ago

























              answered 2 days ago









              Henrik SchumacherHenrik Schumacher

              59.1k582162




              59.1k582162











              • $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
                yesterday

















              • $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
                yesterday
















              $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
              yesterday





              $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
              yesterday












              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 yesterday









                  Michael E2Michael E2

                  150k12203482




                  150k12203482




















                      XYZABC is a new contributor. Be nice, and check out our Code of Conduct.









                      draft saved

                      draft discarded


















                      XYZABC is a new contributor. Be nice, and check out our Code of Conduct.












                      XYZABC is a new contributor. Be nice, and check out our Code of Conduct.











                      XYZABC is a new contributor. Be nice, and check out our Code of Conduct.














                      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

                      getting Checkpoint VPN SSL Network Extender working in the command lineHow to connect to CheckPoint VPN on Ubuntu 18.04LTS?Will the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayVPN SSL Network Extender in FirefoxLinux Checkpoint SNX tool configuration issuesCheck Point - Connect under Linux - snx + OTPSNX VPN Ububuntu 18.XXUsing Checkpoint VPN SSL Network Extender CLI with certificateVPN with network manager (nm-applet) is not workingWill the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayImport VPN config files to NetworkManager from command lineTrouble connecting to VPN using network-manager, while command line worksStart a VPN connection with PPTP protocol on command linestarting a docker service daemon breaks the vpn networkCan't connect to vpn with Network-managerVPN SSL Network Extender in FirefoxUsing Checkpoint VPN SSL Network Extender CLI with certificate

                      Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition

                      Marilyn Monroe Ny fiainany manokana | Jereo koa | Meny fitetezanafanitarana azy.