MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

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)
>>
>>
> 


  • Prev by Date: Re: Bug in Reduce?
  • Next by Date: Re: basic issue with do and :=
  • Previous by thread: Re: Bug in Reduce?
  • Next by thread: Re: Bug in Reduce?