3
$\begingroup$

I am trying to draw Minkowski product of two sets in complex 2D plane in Mathematica. While I can draw the individual complex 2d plane for these sets in Mathematica using ComplexRegionPlot, I do not know if there is a way to draw the corresponding Minkowski product.

For example, consider the following complex 2d regions \begin{align*} \mathcal{G}_{1} & =\left\{ z\in\mathbf{C}\mid\mathrm{Re}(z)\geq\vert z\vert^{2}\right\} ,\\ \mathcal{G}_{2} & =\left\{ z\in\mathbf{C}\mid\frac{3}{2}\mathrm{Re}(z)\geq\vert z\vert^{2}+\frac{1}{2}\right\} , \end{align*}

where their Minkowski product is

$$ \mathcal{G}_{1}\cdot\mathcal{G}_{2}=\left\{ z_{1}z_{2} \in \mathbf{C} \mid z_{1}\in\mathcal{G}_{1},z_{2}\in\mathcal{G}_{2}\right\} , $$

and I am trying to plot the complex region associated with this Minkowski product $\mathcal{G}_{1}\cdot\mathcal{G}_{2}$. Any help/suggestions will be much appreciated.

$\endgroup$
6
  • $\begingroup$ You can not plot a 4 dimensional region in 3 dimensions. The best you can due is draw slices and use color for an additional dimension. $\endgroup$ Commented Oct 21, 2020 at 15:02
  • $\begingroup$ @DanielHuber: The Minkowski product is a subset of the complex plane. See Russian version of Wiki to this end. $\endgroup$
    – user64494
    Commented Oct 21, 2020 at 15:30
  • $\begingroup$ @DanielHuber, thanks for your comment. However, user64494 is indeed right in this case, the Minkowski product will lie in the complex plane because we are constructing the points in the new set $\mathcal{G}_1 \cdot \mathcal{G}_2$ by pointwise multiplication of the elements of the sets $\mathcal{G}_1$ and $\mathcal{G}_2$, and such points will also be complex numbers lying in the complex plane. $\endgroup$
    – TDH
    Commented Oct 21, 2020 at 15:48
  • $\begingroup$ @user64494 There is a difference between Minkowski sum and Minkowski product. As I understand it, the "sum" is the sum of all elements of the two sets. However, the product is the set of all ordered pairs with elements of the two sets. Please correct me if I am wrong. $\endgroup$ Commented Oct 21, 2020 at 15:58
  • $\begingroup$ @DanielHuber: The Mincowsky product $\mathcal{G}_{1}\mathcal{G}_{}$ is the set $\{zw: z\in \mathcal{G}_{1},w \in \mathcal{G}_{2}\}\subset \mathbb{C}.$ This is a standard definition in group theory. Also look in Russian edition of Wiki and the cited article. $\endgroup$
    – user64494
    Commented Oct 22, 2020 at 7:46

3 Answers 3

3
$\begingroup$

This can be done as follows. First, we switch to the reals. Second, we write down the definition of the Minkowski product for the specified case by ($z=x+iy\in \mathcal{G}_{1},\,w=s+it\in \mathcal{G}_{2},\,zw=xs-yt+i(xt+ys)$)

Exists[{x, y, s, t},a == x*s - y*t&& b == x*t + y*s&& x >= x^2 + y^2 &&3/2*s >= s^2 + t^2 + 1/2];

Then we find the conditions on $a,b$ by

r = Resolve[Exists[{x, y, s, t},a == x*s - y*t && b == x*t + y*s && x >= x^2 + y^2 && 
3/2*s >= s^2 + t^2 + 1/2], Reals];

At last, we draw the product by

Region[ImplicitRegion[r, {a, b}]]

enter image description here

$\endgroup$
4
  • $\begingroup$ user64494, thanks so much for your answer! $\endgroup$
    – TDH
    Commented Oct 21, 2020 at 15:49
  • $\begingroup$ in your code, r , the third region, RegionPlot[(b^2 <= 1/64 && -3 a + 4 a^2 - 4 b^2 <= 0), {a, -1, 1}, {b, -1, 1}] is also a rectangle-like region. $\endgroup$
    – cvgmt
    Commented Oct 21, 2020 at 16:10
  • $\begingroup$ @cvgmt: You are right. In fact, you obtain the same region, but on a longer and more complicated way. +1 for your answer. $\endgroup$
    – user64494
    Commented Oct 22, 2020 at 7:40
  • $\begingroup$ @user64494 Thanks! Since I want to do more general situation. Now I am trying to consider another method to avoid solve the equations. $\endgroup$
    – cvgmt
    Commented Oct 22, 2020 at 7:58
3
$\begingroup$

First we transform the complex to real.

expr1 = Block[{z = x + I*y}, (Re[z] >= Abs[z]^2 // ComplexExpand)]
reg1 = ImplicitRegion[expr1, {x, y}]
expr2 = Block[{w = u + I*v}, (3/2 Re[w] >= Abs[w]^2 + 1/2 // 
     ComplexExpand)];
reg2 = ImplicitRegion[expr2, {u, v}]
expr = Thread[{p,q} == ((x + I*y) (u + I*v) // ReIm // ComplexExpand)]

the results are

x >= x^2 + y^2
ImplicitRegion[x >= x^2 + y^2, {x, y}]
(3 u)/2 >= 1/2 + u^2 + v^2
ImplicitRegion[(3 u)/2 >= 1/2 + u^2 + v^2, {u, v}]
{p == u x - v y, q == v x + u y}

and then we construct a Cartesian Procuct of the two region reg1 and reg2

reg = ImplicitRegion[
   x >= x^2 + y^2 && (3 u)/2 >= 1/2 + u^2 + v^2, {x, y, u, v}];

and Map the reg according the (p == u x - v y && q == v x + u y)

That is

reg = ImplicitRegion[
   x >= x^2 + y^2 && (3 u)/2 >= 1/2 + u^2 + v^2, {x, y, u, v}];
sol = Resolve[
  Exists[{x, y, u, v}, 
   Element[{x, y, u, v}, reg], (p == u x - v y && q == v x + u y)], 
  Reals]
RegionPlot[List @@ sol // Evaluate, {p, -1, 1}, {q, -1, 1}]

enter image description here

$\endgroup$
8
  • $\begingroup$ Sorry, but Minkowski product is not a Cartesian product (see link.springer.com/article/10.1023/A:1014737602641 ). This is not it though you are on the right way. $\endgroup$
    – user64494
    Commented Oct 21, 2020 at 15:18
  • $\begingroup$ @user64494 Here we use Cartesian Product to construct Minkowski product , just as your approach. $\endgroup$
    – cvgmt
    Commented Oct 21, 2020 at 15:23
  • $\begingroup$ cvgmt (@ does not work), The Minkowski product under consideration is a subset of the comlex plane, not a list of domains. $\endgroup$
    – user64494
    Commented Oct 21, 2020 at 15:26
  • $\begingroup$ @user64494 Yes, it is the union of the list of domains. Since I want to display the method,so I use List @@ sol instead of sol $\endgroup$
    – cvgmt
    Commented Oct 21, 2020 at 15:29
  • $\begingroup$ cvgmt (@ does not work): Your claim 'Yes, it is the union of the list of domains" is ungrounded. $\endgroup$
    – user64494
    Commented Oct 21, 2020 at 15:36
1
$\begingroup$

I don't know how robust it is, but you could try using ParametricRegion. For example:

R = ParametricRegion[
    {
    {x u - y v, x v + y u}, (* Re/Im parts the product *)
    {x, y} ∈ ImplicitRegion[x > x^2 + y^2, {x, y}] &&
    {u, v} ∈ ImplicitRegion[3/2 x > x^2 + y^2 + 1/2, {x, y}]
    },
    {x, y, u, v}
]

ParametricRegion[{{x u - y v, y u + x v}, {x, y} ∈ ImplicitRegion[x > x^2 + y^2, {x, y}] && {u, v} ∈ ImplicitRegion[(3 x)/2 > 1/2 + x^2 + y^2, {x, y}]}, {x, y, u, v}]

Discretizing the region:

BoundaryDiscretizeRegion[R]

[warning snipped]

enter image description here

This can be made into a function. Define a wrapper representing a complex region ComplexRegion, and define a function that converts this into an ImplicitRegion:

convertToImplicitRegion[ComplexRegion[bool_, z_Symbol]] := Module[
    {x = Unique[], y = Unique[]},

    ImplicitRegion[
        ComplexExpand[bool /. z -> x + I y],
        {x, y}
    ]
]

convertToImplicitRegion[reg_] := If[RegionQ[reg],
    reg,
    $Failed
]

Then, define a function that creates the ParametricRegion and discretizes it:

Options[MinkowskiProduct] = Options[BoundaryDiscretizeRegion];

MinkowskiProduct[c1_, c2_, opts:OptionsPattern[]] := Module[
    {i1, i2, x, y, u, v},
    
    i1 = convertToImplicitRegion[c1];
    i2 = convertToImplicitRegion[c2]; 
    Quiet[
        BoundaryDiscretizeRegion[
            ParametricRegion[
                {
                    {x u - y v, x v + y u},
                    {x,y} ∈ i1 && {u,v} ∈ i2
                },
                {x, y, u, v}
            ],
            opts
        ],
        BoundaryDiscretizeRegion::brepl
    ] /; !MemberQ[{i1, i2}, $Failed]
]

Your example again:

MinkowskiProduct[
    ComplexRegion[Re[z] > Abs[z]^2, z], 
    ComplexRegion[3/2 Re[z] > Abs[z]^2 + 1/2, z],
    Axes -> True
]

enter image description here

And another example:

MinkowskiProduct[
    ComplexRegion[Re[z] > Abs[z]^2, z], 
    ComplexRegion[0 < Re[z] < 1 && 0 < Im[z] < 1, z],
    Axes -> True
]

enter image description here

$\endgroup$
4
  • $\begingroup$ Unfortunately, Region[ParametricRegion[{{x u - y v, x v + y u},{x, y} \[Element] ImplicitRegion[x > x^2 + y^2, {x, y}] && {u, v} \[Element] ImplicitRegion[3/2 x > x^2 + y^2 + 1/2, {x, y}]}, {x, y, u, v}]] fails, so you need in discretization. $\endgroup$
    – user64494
    Commented Nov 3, 2020 at 17:09
  • $\begingroup$ In any case, this is a direct and natural approach, so +1. $\endgroup$
    – user64494
    Commented Nov 3, 2020 at 17:18
  • $\begingroup$ I'd like to quote the linked article: " In certain applications, the availability of exact Minkowski products is a useful alternative to the naive bounding approximations that are customarily employed in "complex circular arithmetic". $\endgroup$
    – user64494
    Commented Nov 3, 2020 at 18:53
  • $\begingroup$ Your another example can be done analytically by splitting cases, e.g. Exists[{x, y, s, t}, a == x*s - y*t && b == x*t + y*s && x >= x^2 + y^2 && t <= 1 && s == 0 && t >= 0] and so on. $\endgroup$
    – user64494
    Commented Nov 4, 2020 at 7:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.