Inequalities

Just as the equation asserts that is equal to , so also the inequality asserts that is greater than . In the Wolfram Language, Reduce works not only on equations, but also on inequalities.

Reduce[{ineq1,ineq2,},x]reduce a collection of inequalities in x

Manipulating univariate inequalities.

This pair of inequalities reduces to a single inequality.
In[1]:=
Click for copyable input
Out[1]=
These inequalities can never simultaneously be satisfied.
In[2]:=
Click for copyable input
Out[2]=

When applied to an equation, Reduce[eqn,x] tries to get a result consisting of simple equations for x of the form , . When applied to an inequality, Reduce[ineq,x] does the exactly analogous thing, and tries to get a result consisting of simple inequalities for x of the form , .

This reduces a quadratic equation to two simple equations for .
In[3]:=
Click for copyable input
Out[3]=
This reduces a quadratic inequality to two simple inequalities for .
In[4]:=
Click for copyable input
Out[4]=

You can think of the result generated by Reduce[ineq,x] as representing a series of intervals, described by inequalities. Since the graph of a polynomial of degree can go up and down as many as times, a polynomial inequality of degree can give rise to as many as distinct intervals.

This inequality yields three distinct intervals.
In[5]:=
Click for copyable input
Out[5]=
The ends of the intervals are at roots and poles.
In[6]:=
Click for copyable input
Out[6]=
Solving this inequality requires introducing ProductLog.
In[7]:=
Click for copyable input
Out[7]=

Transcendental functions like have graphs that go up and down infinitely many times, so that infinitely many intervals can be generated.

The second inequality allows only finitely many intervals.
In[8]:=
Click for copyable input
Out[8]=
This is how Reduce represents infinitely many intervals.
In[9]:=
Click for copyable input
Out[9]=
Fairly simple inputs can give fairly complicated results.
In[10]:=
Click for copyable input
Out[10]=

If you have inequalities that involve as well as , there may be isolated points where the inequalities can be satisfied. Reduce represents such points by giving equations.

This inequality can be satisfied at just two isolated points.
In[11]:=
Click for copyable input
Out[11]=
This yields both intervals and isolated points.
In[12]:=
Click for copyable input
Out[12]=
Reduce[{ineq1,ineq2,},{x1, x2, }] reduce a collection of inequalities in several variables

Multivariate inequalities.

For inequalities involving several variables, Reduce in effect yields nested collections of interval specifications, in which later variables have bounds that depend on earlier variables.

This represents the unit disk as nested inequalities for and .
In[13]:=
Click for copyable input
Out[13]=

In geometrical terms, any linear inequality divides space into two halves. Lists of linear inequalities thus define polyhedra, sometimes bounded, sometimes not. Reduce represents such polyhedra in terms of nested inequalities. The corners of the polyhedra always appear among the endpoints of these inequalities.

This defines a triangular region in the plane.
In[14]:=
Click for copyable input
Out[14]=
Even a single triangle may need to be described as two components.
In[15]:=
Click for copyable input
Out[15]=

Lists of inequalities in general represent regions of overlap between geometrical objects. Often the description of these can be quite complicated.

This represents the part of the unit disk on one side of a line.
In[16]:=
Click for copyable input
Out[16]=
Here is the intersection between two disks.
In[17]:=
Click for copyable input
Out[17]=
If the disks are too far apart, there is no intersection.
In[18]:=
Click for copyable input
Out[18]=
Here is an example involving a transcendental inequality.
In[19]:=
Click for copyable input
Out[19]=

If you have inequalities that involve parameters, Reduce automatically handles the different cases that can occur, just as it does for equations.

The form of the intervals depends on the value of .
In[20]:=
Click for copyable input
Out[20]=
One gets a hyperbolic or an elliptical region, depending on the value of .
In[21]:=
Click for copyable input
Out[21]=

Reduce tries to give you a complete description of the region defined by a set of inequalities. Sometimes, however, you may just want to find individual instances of values of variables that satisfy the inequalities. You can do this using FindInstance.

FindInstance[ineqs,{x1,x2,}]try to find an instance of the satisfying ineqs
FindInstance[ineqs,vars,n]try to find n instances

Finding individual points that satisfy inequalities.

This finds a specific instance that satisfies the inequalities.
In[22]:=
Click for copyable input
Out[22]=
This shows that there is no way to satisfy the inequalities.
In[23]:=
Click for copyable input
Out[23]=

FindInstance is in some ways an analog for inequalities of Solve for equations. For like Solve, it returns a list of rules giving specific values for variables. But while for equations these values can generically give an accurate representation of all solutions, for inequalities they can only correspond to isolated sample points within the regions described by the inequalities.

Every time you call FindInstance with specific input, it will give the same output. And when there are instances that correspond to special, limiting, points of some kind, it will preferentially return these. But in general, the distribution of instances returned by FindInstance will typically seem somewhat random. Each instance is, however, in effect a constructive proof that the inequalities you have given can in fact be satisfied.

If you ask for one point in the unit disk, FindInstance gives the origin.
In[24]:=
Click for copyable input
Out[24]=
This finds 500 points in the unit disk.
In[25]:=
Click for copyable input
Their distribution seems somewhat random.
In[26]:=
Click for copyable input
Out[26]=