# Why the Reduce command does not completely solve the inequality?

Posted 9 years ago
8552 Views
|
10 Replies
|
5 Total Likes
|
 Hi evryone, So, the input isReduce[(-4 x^2 + 8 x + 12)/(-x - 1) < 0, x]and the output isx<3.This is not correct!, in wolframalpha: http://www.wolframalpha.com/input/?i=%28-4x%5E2%2B8x%2B12%29%2F%28-x-1%29%3C0show that the correct solution is x<3 (for x != -1 )well, this is very frustrating because I've been planning a demonstration but this false solution damages everything I'm doing. Can someone help me to correct it?Thanks!!
10 Replies
Sort By:
Posted 9 years ago
 I just joined the community forum. I'm anxious to learn and observe here. Thanks everyone.
Posted 9 years ago
 I now see what was the intended subject header (it's perfectly informative) and that the edit only managed to add the word "the". So I'll take this as an indication that the editing tool might be falling short and will mention it at our end.As for handling of removable singularities, there are arguments to be made either way. I only claim that the current Reduce behavior is most likely as intended rather than a blatant bug.
Posted 9 years ago
 fyi; Maple 18.01 agrees with Wolfram/Alpha on this one:
Posted 9 years ago
 Sorry again, using quotation marks (") in the title makes this cut: Why the "Reduce" command does not completely solve the inequality
Posted 9 years ago
 Hi, this solve my problem! thanks.
Posted 9 years ago
 (1) I think you have in mind -1, not 1.(2) The subject header is less than useful (to the point where I very nearly skipped over the note).(3) This is not a bug.As for why this behavior is as designed, the denominator and numerator have a common factor of x+1, and Mathematica treats that as a removable singularity (because it is). Wolfram|Alpha takes that more pedantic approach of restricting the domain of definition to exclude singularities, whether or not removable. Both make sense, I think.
Posted 9 years ago
 Hi, thanks, i didnt know what happend in the subject header. fixedI think even that as a removable singularity, this should not be part of the solution, because it can not be replaced by x = -1 in the inequality.
Posted 9 years ago
 By the way, if you do not have internet you can use this brute force method:  advReduce3[eqn_] := Reduce[eqn, x] && Simplify[Not[Reduce[Denominator[eqn[[1]]] == 0, x]]]; For example advReduce3[(-4 x^2 + 8 x + 12)/(-x - 1) < 0] gives x < 3 && x != -1 Cheers, M.
Posted 9 years ago
 This might work for you: And[Reduce[(-4 x^2 + 8 x + 12)/(-x - 1) < 0, x] , ReleaseHold[ WolframAlpha[ "Domain (-4 x^2+8 x+12)/(-x-1)", {{"Result", 1}, "Output"}]]] // Simplify On the Raspberry Pi with the post Mathematica 9 release this command is more elegant and does not need to invoke WA: And[Reduce[(-4 x^2 + 8 x + 12)/(-x - 1) < 0, x] , FunctionDomain[(-4 x^2 + 8 x + 12)/(-x - 1), x]] // Simplify because on the Raspberry we have the command FunctionDomain, which is new. I believe that Reduce does not consider the domain of the underlying function: that's not a bug, that's a feature.This one might even be a bit nicer: Reduce[{(-4 x^2 + 8 x + 12)/(-x - 1) < 0 && FunctionDomain[(-4 x^2 + 8 x + 12)/(-x - 1), x]}, x] // Simplify If you have the Raspberry, you can of course put this together into one function:  advReduce[eqn_] := Reduce[{eqn && FunctionDomain[eqn[[1, 1]], x]}, x] // Simplify You can call that function with the equation/inequality as an argument:  advReduce[(-4 x^2 + 8 x + 12)/(-x - 1) < 0] (* x < -1 || -1 < x < 3 *) You can also write a similar function in Mathematica 9 which then uses Wolfram Alpha:  advReduce2[eqn_] := Reduce[ eqn && ReleaseHold[ WolframAlpha[ "Domain" <> (eqn[[1]] // InputForm // ToString), {{"Result", 1}, "Output"}]]] // Simplify With the function call advReduce2[(-4 x^2 + 8 x + 12)/(-x - 1) < 0] which gives: x < -1 || -1 < x < 3 Cheers, M.
Posted 9 years ago
 Well, if you like to debug, there is always Trace[Reduce[(-4 x^2 + 8 x + 12)/(-x - 1) < 0, x], TraceInternal -> True] Please send an email to support@wolfram.com, it is clearly a bug, as -1 should be excluded since 0/0 is Indeterminate