MathGroup Archive 2004

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

Search the Archive

Re: Re: Re: Log[4]==2*Log[2]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg50618] Re: [mg50599] Re: [mg50557] Re: [mg50520] Log[4]==2*Log[2]
  • From: Andrzej Kozlowski <andrzej at akikoz.net>
  • Date: Mon, 13 Sep 2004 02:19:35 -0400 (EDT)
  • References: <200409120842.EAA01340@smc.vnet.net> <opsd8augkviz9bcq@monster.cox-internet.com>
  • Sender: owner-wri-mathgroup at wolfram.com

On 13 Sep 2004, at 04:24, DrBob wrote:

>
> If Equal can't decide equality for exact expressions, then it should 
> return unevaluated. It shouldn't interrupt everything with a useless 
> error message.
>
> Bobby

I am not sure about that. You are right as far as the "aesthetics" of 
the interface of CAS  is concerned. But when this sort of thing happens 
in a program it is likely to be the result of an error (probably not 
intended by the programmer) and it seems to me that it is a good idea 
for errors to produce error  messages since it makes it debugging 
easier (such messages can be caught with Check).

Andrzej

>
>
> On Sun, 12 Sep 2004 04:42:10 -0400 (EDT), Andrzej Kozlowski 
> <andrzej at akikoz.net> wrote:
>
>> Actually, I don't think Mathematica does any real "determining" since
>> it does not replace the exact values given in the input by
>> numerical approximations. The message issued is, I think, purely
>> formal. Mathematica could not determine anything because it tries to
>> compare the numbers "numerically" without using approximate numerical
>> values, which can't be done. (You have to apply N for it to use
>> numerical values). That't what I meant by "not surprisingly". I don't
>> think I  really understand your point?
>>
>> ANdrzej
>>
>>
>> On 11 Sep 2004, at 01:52, DrBob wrote:
>>
>>
>>>>> Mathematica does not apply any simplification rules but just tries 
>>>>> to
>>>>> evaluate the expression numerically and, not
>>>>> surprisingly, it can't determine if the LHS is zero or not
>>>>> up to the required precision.
>>>
>>> On the contrary, I think the error message itself clearly indicates
>>> the difference IS zero to "the required precision". If 50 digits 
>>> extra
>>> precision isn't enough to determine that the difference ISN'T zero,
>>> why doesn't Equal return True?
>>>
>>> Bobby
>>>
>>> On Fri, 10 Sep 2004 04:05:56 -0400 (EDT), Andrzej Kozlowski
>>> <andrzej at akikoz.net> wrote:
>>>
>>>> On 9 Sep 2004, at 18:17, Andreas Stahel wrote:
>>>>
>>>>>
>>>>> To whom it may concern
>>>>>
>>>>> the following answer of Mathematica 5.0 puzzeled me
>>>>>
>>>>> Log[4]==2*Log[2]
>>>>> leads to
>>>>>
>>>>> N::meprec: Internal precision limit $MaxExtraPrecision = 50.` 
>>>>> reached
>>>>> while \
>>>>> evaluating -2\Log[2]+Log[4]
>>>>>
>>>>> with the inputs given as answer. But the input
>>>>>
>>>>> Log[4.0]==2*Log[2]
>>>>>
>>>>> leads to a sound "True"
>>>>>
>>>>> Simplify[Log[4]-2*Log[2]]
>>>>> leads to the correct 0, but
>>>>> Simplify[Log[4]-2*Log[2]==0]
>>>>> yields no result
>>>>>
>>>>> There must be some systematic behind thid surprising behaviour.
>>>>> Could somebody give me a hint please
>>>>>
>>>>> With best regards
>>>>>
>>>>> Andreas
>>>>> --
>>>>> Andreas Stahel       E-Mail: Andreas.Stahel at [ANTI-SPAM]hti.bfh.ch
>>>>> Mathematics, HTI     Phone: ++41 +32 32 16 258
>>>>> Quellgasse 21        Fax:   ++41 +32 321 500
>>>>> CH-2501 Biel         WWW:   www.hta-bi.bfh.ch/~sha
>>>>> Switzerland
>>>>>
>>>>>
>>>>
>>>> When you enter
>>>>
>>>> Log[4] - 2*Log[2] == 0
>>>>
>>>> Mathematica does not apply any simplification rules but just tries 
>>>> to
>>>> evaluate the expression numerically and, not surprisingly, it can't
>>>> determine if the LHS is zero or not up to the required precision.
>>>>
>>>> If you use
>>>>
>>>> Simplify[Log[4] - 2*Log[2] == 0]
>>>>
>>>> Mathematica first tries to evaluate the argument of Simplify and the
>>>> same thig happens as above, but then it actually applies Simplify to
>>>> the output and gets the right answer True.
>>>>
>>>> The best thing to do is:
>>>>
>>>>
>>>> Simplify[Unevaluated[Log[4]-2*Log[2]==0]]
>>>>
>>>>
>>>> True
>>>>
>>>> which avoids evaluation of the argument and instead uses Simplify on
>>>> the unevaluated input.
>>>>
>>>>
>>>>
>>>> Andrzej Kozlowski
>>>> Chiba, Japan
>>>> http://www.akikoz.net/~andrzej/
>>>> http://www.mimuw.edu.pl/~akoz/
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> DrBob at bigfoot.com
>>> www.eclecticdreams.net
>>>
>>
>>
>>
>
>
>
> -- 
> DrBob at bigfoot.com
> www.eclecticdreams.net
>


  • Prev by Date: Re: Re: Re: Log[4]==2*Log[2]
  • Next by Date: Re: Re: Re: Log[4]==2*Log[2]
  • Previous by thread: Re: Re: Re: Log[4]==2*Log[2]
  • Next by thread: Re: Re: Re: Log[4]==2*Log[2]