Re: Bug in Reduce?
- To: mathgroup at smc.vnet.net
- Subject: [mg60446] Re: [mg60406] Bug in Reduce?
- From: Adam Strzebonski <adams at wolfram.com>
- Date: Fri, 16 Sep 2005 03:50:42 -0400 (EDT)
- References: <dfrhi4$g4l$1@smc.vnet.net> <dg8lfv$r8g$1@smc.vnet.net> <200509140926.FAA01590@smc.vnet.net> <200509150916.FAA15875@smc.vnet.net> <80961907-E23E-42FE-9A68-09103A6CC21F@yhc.att.ne.jp>
- Reply-to: adams at wolfram.com
- Sender: owner-wri-mathgroup at wolfram.com
The Reduce example works correctly in Mathematica 5.2
In[1]:= Reduce[{a c - b d == 0, a d + b c == 0}, {a, b, c, d}, Reals] //
FullSimplify
Out[1]= (a == 0 && b == 0) || (c == 0 && d == 0)
but the underlying cylindrical algebraic decomposition problem
was still there:
In[2]:= CylindricalDecomposition[a == 0 && b == 0 && a*c == 0 &&
b*c == 0, {a, b, c, d}]
Out[2]= a == 0 && b == 0 && c == 0
I have fixed it in the development version.
Thank you for pointing it out.
The bug was affecting systems with a univariate equational constraint
in the first listed variable (a==0 here), such that a root of this
constraint (a->0 here) would make an input equation with more variables
(a*c==0 here) identically True.
Best Regards,
Adam Strzebonski
Wolfram Research
Andrzej Kozlowski wrote:
> This does indeed like a bug.
>
> The documentation states:
>
> When expr involves only polynomial conditions, Reduce[expr, vars,
> Reals] gives a cylindrical algebraic decomposition of expr.
>
> However
>
>
> FullSimplify[CylindricalDecomposition[
> {a*c - b*d == 0, a*d + b*c == 0}, {a, b, c, d}]]
>
>
> (a == 0 && b == 0) || (c == 0 && d == 0)
>
> so something is definitely fishy, particularly that if you call Reduce
> without explicit variables you get the same correct answer as above
>
>
> FullSimplify[Reduce[{a*c - b*d == 0, a*d + b*c == 0},
> Reals]]
>
>
> (c == 0 && d == 0) || (a == 0 && b == 0)
>
> Andrzej Kozlowski
>
>
>
>
> On 15 Sep 2005, at 18:16, Kennedy wrote:
>
>> The source of this apparent bug could be my misunderstanding of the
>> middle,
>> "vars" parameter of Reduce, but it sure seems like the following output
>> indicates that c must be 0 for my two equations to be satisfied,
>> when in
>> fact if a and b are both 0, c does not need to be 0.
>>
>> Regards,
>> Jack
>>
>> In[1]:=
>> Reduce[{a c - b d == 0, a d + b c == 0}, {a, b, c, d}, Reals] //
>> FullSimplify
>>
>> Out[1]=
>> c == 0 && (d == 0 || (a == 0 && b == 0))
>>
>> (version 5.1 for Windows)
>>
>>
>
- References:
- Re: Simplify and Noncommutativity
- From: Robert Schoefbeck <schoefbeck@hep.itp.tuwien.ac.at>
- Bug in Reduce?
- From: "Kennedy" <jack@realmode.com>
- Re: Simplify and Noncommutativity