I have a big system of equations and want to check if some candidate solutions hold.
Ideally, I want to have an expression that returns 'True' if my candidate solution hold and 'False' otherwise.
Based on previous posts, I decided to use Reduce[my_equtions && candidate_solutions && assumptions_on_variables]
However, Mathematica doesn't fully reduce the system to True
/ False
-- even after using FullSimplify
, some trivial terms remain in the output. Especially when my_equations
are multiple, long equation, it is hard to find spot manually if the output should be true or not.
Consider as a MWE the system $x a^2 + y b^2 + (-x - y) ab == 0$ with the assumption $y>x>1$ over the reals. We have candidate solutions $a=1/x$, $b=1/y$ , which clearly solve the system.
However,
Reduce[x a^2 + y b^2 + (-x - y) ab == 0 && a == 1/x && b == 1/y &&
y > x > 1, {a, b}, Reals] // FullSimplify
Outputs:
1 < x < y && ab == 1/(x y) && a == 1/x && b == 1/y
Ideally, I would get True
or candidate_solutions && assumptions_on_variables
. In any case, the part
ab == 1/(x y)
should not be in there, as these terms become very annoying when the system of equations is large.
My questions:
How can I make
Reduce
to output simplyTrue
orcandidate_solutions && assumptions_on_variables
Is there a better command to test if given candidate solutions fulfill a system of equations under certain assumptions?
ab
is not the same asa*b
. Typingab
without space is a separate symbol. $\endgroup$eq=x*a^2+y*b^2+(-x-y)*a*b;candidate={a->1/x,b->1/y};eq/. candidate//Simplify
. Another useful command in this ballpark isPossibleZeroQ
. $\endgroup$