Re: Re: Determining continuity of regions/curves from inequalities

*To*: mathgroup at smc.vnet.net*Subject*: [mg67290] Re: [mg67271] Re: [mg67216] Determining continuity of regions/curves from inequalities*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Fri, 16 Jun 2006 00:27:12 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

On 15 Jun 2006, at 16:25, Carl K. Woll wrote: > Bonny Banerjee wrote: >> Is there an easy way in Mathematica to determine whether the >> region or curve >> formed by a system of inequalities is continuous or not? >> >> For example, the output of some function (e.g. Reduce) might be as >> follows: >> >> x>2 && y>0 >> >> which forms a continuous region. Again, the following output >> >> (x<2 && y<0) || (x>2 && y>0) >> >> is not continuous. Similarly, for curves. >> >> Given such a system of inequalities, how to determine whether the >> region/curve it forms is continuous or not? Or in other words, if >> I pick any >> two random points, say P1 and P2, lying on the output curve/ >> region, does >> there exist a continuous path lying entirely within the output >> curve/region >> from P1 to P2? >> >> Any help will be appreciated. >> >> Thanks, >> Bonny. >> > > The function SemialgebraicComponents in the package > Algebra`AlgebraicInequalities may help. From the help browser: > > "The package provides a function for solving systems of strong > polynomial inequalities in one or more unknowns. To be precise, > SemialgebraicComponents[ineqs, vars] gives a finite set of > solutions of > the system of inequalities. That is, within the set of solutions, any > solution can be connected by a continuous path to a solution in the > finite set. The variable ineqs is a list of strong inequalities, where > both sides of each inequality are polynomials in variables vars with > rational coefficients. In other words, SemialgebraicComponents[ineqs, > vars] gives at least one point in each connected component of the open > semialgebraic set defined by inequalities ineqs. " > > Needs["Algebra`AlgebraicInequalities`"] > > First example: x>2 && y>0 > > SemialgebraicComponents accepts a list of inequalities: > > In[6]:= > SemialgebraicComponents[{x>2,y>0},{x,y}] > > Out[6]= > {{3,1}} > > Only one point is returned, so the region is connected. > > Second example: (x<2 && y<0) || (x>2 && y>0) > > This example is not a list of inequalities due to the Or. However, in > this case it is easy to construct an equivalent inequality that > encompasses the same region: > > In[5]:= > SemialgebraicComponents[(x-2)y>0,{x,y}] > > Out[5]= > {{0,-1},{3,1}} > > There are two components, so the region is not connected. > > Carl Woll > Wolfram Research > This is right, but the package relies on Cylindrical Algebraic Decomposition and will return at least one point in each component, but usually more than that. So just like my first answer, it only provides an upper bound. Of course when the upper bound is 1 we know that the region is connected. Andrzej Kozlowski