Solving Logical Combinations of Equations
When you give a list of equations to Solve
, it assumes that you want all the equations to be satisfied simultaneously. It is also possible to give Solve
more complicated logical combinations of equations.
assumes that the equations x+y1
are simultaneously valid.
Here is an alternative form, using the logical connective &&
This specifies that either x+y1 or x-y2
gives two solutions for x
, corresponding to these two possibilities.
gives three solutions to this equation.
If you explicitly include the assertion that x0
, one of the previous solutions is suppressed.
Here is a slightly more complicated example. Note that the precedence of ||
is lower than the precedence of &&
, so the equation is interpreted as (x^3x&&x1)||x^22
, not x^3x&&(x1||x^22)
When you use Solve
, the final results you get are in the form of transformation rules. If you use Reduce
, on the other hand, then your results are logical statements, which you can manipulate further.
This gives a logical statement representing the solutions of the equation x^2x
This finds values of x
which satisfy x^5x
but do not satisfy the statement representing the solutions of x^2x
The logical statements produced by Reduce
can be thought of as representations of the solution set for your equations. The logical connectives &&
and so on then correspond to operations on these sets.
|eqns1||eqns2||union of solution sets|
|eqns1&&eqns2||intersection of solution sets|
|!eqns||complement of a solution set|
|Implies[eqns1,eqns2]||the part of eqns1 that contains eqns2|
Operations on solution sets.
You may often find it convenient to use special notations for logical connectives, as discussed in "Operators"
The input uses special notations for Implies