This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / The Mathematica Book / Advanced Mathematics / Manipulating Equations  /

3.4.7 Advanced Topic: Existence of Solutions

Using Reduce, you can find out under exactly what conditions a particular set of equations has solutions. Solve tells you whether any generic solutions exist.

  • There is no value of x which solves these simultaneous equations. Reduce thus simplifies the logical statement x==1&&x==2 to the explicit value False.
  • In[1]:= Reduce[ x == 1 && x == 2 , x ]


  • There is a solution to these equations, but only when a has the special value 1.
  • In[2]:= Reduce[ x == 1 && x == a , x ]


  • The solution is not generic, and is rejected by Solve.
  • In[3]:= Solve[ x == 1 && x == a , x ]


  • But if a is constrained to have value 1, then Solve again returns a solution.
  • In[4]:= Solve[ x == 1 && x == a && a == 1, x ]


  • This equation is true for any value of x.
  • In[5]:= Reduce[ x == x , x ]


  • This is the kind of result Solve returns when you give an equation that is always true.
  • In[6]:= Solve[ x == x , x ]


    When you work with systems of linear equations, you can use Solve to get generic solutions, and Reduce to find out for what values of parameters solutions exist.

  • Here is a matrix whose

    element is

  • In[7]:= m = Table[i + j, {i, 3}, {j, 3}]


  • The matrix has determinant zero.
  • In[8]:= Det[ m ]


  • This makes a set of three simultaneous equations.
  • In[9]:= eqn = m . {x, y, z} == {a, b, c}


  • Solve reports that there are no generic solutions.
  • In[10]:= Solve[eqn, {x, y, z}]


  • Reduce, however, shows that there would be a solution if the parameters satisfied the special condition a==2b-c.
  • In[11]:= Reduce[eqn, {x, y, z}]


    For nonlinear equations, the conditions for the existence of solutions may be very complicated.

  • Here is a very simple pair of nonlinear equations.
  • In[12]:= eqn = {x y == a, x^2 y^2 == b}


  • Solve shows that the equations have no generic solutions.
  • In[13]:= Solve[eqn, {x, y}]


  • Reduce gives the complete conditions for a solution to exist.
  • In[14]:= Reduce[eqn, {x, y}]