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$ Oct 21 '20 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
    Oct 21 '20 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
    Oct 21 '20 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$ Oct 21 '20 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
    Oct 22 '20 at 7:46
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
    Oct 21 '20 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
    Oct 21 '20 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
    Oct 22 '20 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
    Oct 22 '20 at 7:58
2
$\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
    Oct 21 '20 at 15:18
  • $\begingroup$ @user64494 Here we use Cartesian Product to construct Minkowski product , just as your approach. $\endgroup$
    – cvgmt
    Oct 21 '20 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
    Oct 21 '20 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
    Oct 21 '20 at 15:29
  • $\begingroup$ cvgmt (@ does not work): Your claim 'Yes, it is the union of the list of domains" is ungrounded. $\endgroup$
    – user64494
    Oct 21 '20 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
    Nov 3 '20 at 17:09
  • $\begingroup$ In any case, this is a direct and natural approach, so +1. $\endgroup$
    – user64494
    Nov 3 '20 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
    Nov 3 '20 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
    Nov 4 '20 at 7:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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