MathGroup Archive 2008

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

Search the Archive

Re: Strange behaviour of Solve without VerifySolutions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85183] Re: Strange behaviour of Solve without VerifySolutions
  • From: Bill Rowe <readnewsciv at sbcglobal.net>
  • Date: Thu, 31 Jan 2008 05:42:10 -0500 (EST)

On 1/30/08 at 6:06 AM, Florian.Jaccard at he-arc.ch (Jaccard Florian)
wrote:

>One of my students needed to solve a simple system:

>equations =
>{(2 + 1.6*a + 8*b)^2/ (8*a*(3 + 8*c + 1.6*b)) - 1.7 == 0, (3 + 8*c +
>1.6*b)^2/ ((8*b + 2 + 1.6*a)* (3 + 1.6*c)) - 1.7 == 0, (3 +
>1.6*c)^2/(3 + 8*c + 1.6*b) - 1.7 == 0};
>res = Solve[equations, {a, b, c}]

>My student saw that there is a problem because he compared with the
>answers he obtained using another system, which were completely
>different!

>Just type :

>Chop[equations /. (expr_) == (n_) ->
>expr /. res]

>As you easily can see, all solutions are wrong!

>Looking in the Solve options, I saw that you can add the option :
>VerifySolutions->True:

>res2 = Solve[equations, {a, b, c},
>VerifySolutions -> True]
>And here, you can see that the solutions are all OK:

>Chop[equations /. (expr_) == (n_) ->
>expr /. res2]

>My question: Why did Wolfram make such a, I believe, stupid thing?
>Is there a good reason?

Why is it you think this is something Wolfram did or could even
easily avoid?

If you change your equations to use exact numbers by replacing
1.6 with 16/10 and 1.7 with 17/10 Solve has no difficulty
finding correct solutions with out using the option VerifySolutions->True.

This can be verified with

equations /. (expr_) == (n_) ->expr /. res//Simplify

Of course, this does take more time to compute.

>I'm not sure students (ore engineers and so on) will take the time
>to verify all solutions (usually, Mathematica tells when there may
>be a problem!) ore to Rationalize all the numbers of the
>equations... and I'm afraid they won't think about VerifySolutions.
>And as Mathematica is used to make a good job, students usually
>believe in the Mathematica-responses...

Any engineer that trusts the output of any program using machine
precision numbers without doing some checking pretty much
deserves what he gets.

>I'm also afraid the other system does in this case a better job...

And I am certain one can find some other seemingly simple
problem Mathematica gets right and the other system gets wrong.
This type of comparison is pointless.

>In a future release, I would appreciate more trustworthiness!

The nature of machine precision numbers is that situations like
this will always arise somewhere.
--
To reply via email subtract one hundred and four


  • Prev by Date: Re: Point is not a Graphics primitive?
  • Next by Date: RE: Re: Strange behaviour of Solve without VerifySolutions
  • Previous by thread: RE: Re: Strange behaviour of Solve without VerifySolutions
  • Next by thread: Point is not a Graphics primitive?