       Re: A strange bug in Solve

• To: mathgroup at smc.vnet.net
• Subject: [mg24356] Re: A strange bug in Solve
• From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
• Date: Sun, 9 Jul 2000 04:52:59 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```A couple of small additions to the earlier message. The natural question
that arises is: what will happen if we use the option MakeRules->False in
Solve?
Well this is what happens:

In:=
eqns = {2*Cos[2*t]*Cos[u/2] + Cos[t]*Sin[u/2] == 0,
(Cos[u/2]*Sin[t])/2 - (Sin[2*t]*Sin[u/2])/2 == 0};

In:=
Solve[eqns, {t, u}, MakeRules -> False]

Out=
{}

Another point, we can quickly get the solutions in the form used by Solve
(without using solrules)  with:

In:=
{ToRules[Reduce[eqns, {t, u}]]}

Reduce::"ifun": "Inverse functions are being used by Reduce, so some
solutions may not be found."

Out=
1
{{t -> 0, u -> 2 ArcCos[-(-------)]},
Sqrt

1               Pi
{t -> 0, u -> -2 ArcCos[-------]}, {t -> -(--), u -> -Pi},
Sqrt            2

3
Sqrt[-]
Pi                                2
{t -> --, u -> Pi}, {t -> ArcCos[-(-------)],
2                               2

3
u -> 2 ArcCos[-Sqrt[-]]},
5

3
Sqrt[-]
2                       3
{t -> ArcCos[-------], u -> 2 ArcCos[Sqrt[-]]}}

2                         5

on 00.7.8 3:00 PM, Andrzej Kozlowski at andrzej at tuins.ac.jp wrote:

> I have long ago learned to be careful when making claims about kernel bugs
> in Mathematica, but this time I am pretty sure I have found a fairly serious
> one, even though it looks rather strange.
>
> I asked Mathematica to solve a system of two trigonometric equations:
>
> In:=
> eqns = {2*Cos[2*t]*Cos[u/2] + Cos[t]*Sin[u/2] == 0,
> (Cos[u/2]*Sin[t])/2 - (Sin[2*t]*Sin[u/2])/2 == 0};
>
> To my surprise Solve returned the empty list (I knew these equations do have
> solutions for geometric reasons):
>
> In:=
> Solve[eqns, {u, t}]
> Out=
> {}
>
> I then tried Reduce, and guess what, it gave the right answers:
>
> In:=
> sols = Reduce[eqns, {u, t}]
> From In:=
> Reduce::ifun: Inverse functions are being used by Reduce, so some solutions
> may not be found.
> Out=
> 1                                     1
> t == 0 && u == 2 ArcCos[-(-------)] || t == 0 && u == -2 ArcCos[-------] ||
> Sqrt                               Sqrt
>
> -Pi                     Pi
> t == --- && u == -Pi || t == -- && u == Pi ||
> 2                      2
>
> 3
> -Sqrt[-]
> 2                          3
> t == ArcCos[--------] && u == 2 ArcCos[-Sqrt[-]] ||
> 2                             5
>
> 3
> Sqrt[-]
> 2                         3
> t == ArcCos[-------] && u == 2 ArcCos[Sqrt[-]]
> 2                           5
>
>
> We can check them as follows:
>
> solrules = sols /. {Or -> List, And -> List, Equal -> Rule};
> In:=
> FullSimplify[Unevaluated[eqns /. solrules]]
> Out=
> {{True, True}, {True, True}, {True, True}, {True, True}, {True, True},
> {True, True}}
>
> Here one might ask: why did I need to define solrules? Why not use the
> options MakeRules->True in Reduce? The answer is: try and see what happens!
>
> This is  peculiar and rather unpleasant. When Solve returns an
> ampty list it ought to mean that there are no generic solutions (although
> solutions might exist for some particular values of the parameters). Reduce
> is supposed to try to work out these special cases. However, the solutions
> found by Reduce in this case are perfectly generic. Moreover, the
> spectacular failure of Reduce[eqns, MakeRules->True] suggest than somehting
> else than the difficulty of finding the solutions that is causing the
> problem here.
>
> Andrzej Kozlowski
>

--
Andrzej Kozlowski
Toyama International University
JAPAN

http://platon.c.u-tokyo.ac.jp/andrzej/
http://sigma.tuins.ac.jp/

```

• Prev by Date: RE: Contour labeling
• Next by Date: Re: Divisors
• Previous by thread: A strange bug in Solve
• Next by thread: Re: A strange bug in Solve