Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Finding the periphery of a region

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72013] Re: [mg71983] Finding the periphery of a region
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 8 Dec 2006 06:18:03 -0500 (EST)
  • References: <200612071125.GAA28194@smc.vnet.net>

On 7 Dec 2006, at 20:25, Bonny Banerjee wrote:

> I have a region specified by a logical combination of equatlities and
> inequalities. For example, r(x,y) is a region defined as follows:
>
> r(x,y) = x^2+y^2<100 or (5<=x<=25 and -10<=y<=10)
>
> How do I obtain the periphery of r(x,y)? I am only interested in  
> finite
> regions i.e. x or y never extends to infinity.
>
> Thanks,
> Bonny.
>
>

I guess by the periphery you mean the boundary: the difference  
between the closure and the interior of a semialgebraic set?
I think in general getting it automatically will be quite difficult.  
In many simple cases you can do it  using

Experimental`GenericCylindricalAlgebraicDecomposition. For example,  
it works in both of your examples:


Last[Experimental`GenericCylindricalAlgebraicDecomposition[x^2 + y^2  
<= 100, {x, y}]]

x^2 + y^2 - 100 == 0

and


Last[Experimental`GenericCylindricalAlgebraicDecomposition[
    5 <= x <= 25 && -10 <= y <= 10, {x, y}]]


5 - x == 0 || x - 25 == 0 || -y - 10 == 0 || y - 10 == 0

Note, however,  that I had to change your first example and use weak  
inequalities. Unfortunately,  
Experimental`GenericCylindricalAlgebraicDecomposition often will give  
you too much:

Last[Experimental`GenericCylindricalAlgebraicDecomposition[
    x^2 + y^2 <= 100 && x^2 + y^2 >= 4, {x, y}]]


x - 2 == 0 || x + 2 == 0 || -x^2 - y^2 + 4 == 0 || x^2 + y^2 - 100 == 0


In general in this way you will get a hypersurface containing the  
boundary rather than the boundary itself.
There is also a more subtle problem involved.  The boundary of an  
open region is not always the boundary of the closed region that you  
get by replacing strict inequalities with weak ones. For example  
consider the region given by:

x^3 - x^2 - y^2 > 0 && x < 10

At first glance one might think that the boundary is given by the  
part of the curve  x^3 - x^2 - y^2 ==0 for which x<=10 together with  
apiece of the line x==10, but actually using CylindricalDecomposition  
we see that this is not the case:

CylindricalDecomposition[x^3 - x^2 - y^2 > 0 && x < 10,{x, y}]

1 < x < 10 && -Sqrt[x^3 - x^2] < y < Sqrt[x^3 - x^2]

while


CylindricalDecomposition[x^3 - x^2 - y^2 >= 0 && x <= 10, {x, y}]


(x == 0 && y == 0) || (x == 1 && y == 0) || (Inequality[1, Less, x,  
LessEqual, 10] &&
    -Sqrt[x^3 - x^2] <= y <= Sqrt[x^3 - x^2])


So that the point (0,0) which lies on x^3 - x^2 - y^2==0 does not  
actually lie on the boundary of  x^3 - x^2 -y^2>0.
Of course CylindricalDecomposition contains "the information" about  
the boundary, but extracting it seems tricky, in general. Besides the  
algorithm is much slower than  
Experimental`GenericCylindricalAlgebraicDecomposition.

Andrzej Kozlowski
Tokyo, Japan





  • Prev by Date: Re: Relatively simple, but problematic, non-linear ODE
  • Next by Date: Re: [TS 31612]--Re:something is "wrong" with the Fills option in InequalityGraphics
  • Previous by thread: Finding the periphery of a region
  • Next by thread: Re: Re: Finding the periphery of a region