Re: Re: Re: Log[4]==2*Log[2]
- To: mathgroup at smc.vnet.net
- Subject: [mg50616] Re: [mg50599] Re: [mg50557] Re: [mg50520] Log[4]==2*Log[2]
- From: DrBob <drbob at bigfoot.com>
- Date: Mon, 13 Sep 2004 02:19:31 -0400 (EDT)
- References: <200409120842.EAA01340@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
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 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
- References:
- Re: Re: Log[4]==2*Log[2]
- From: Andrzej Kozlowski <andrzej@akikoz.net>
- Re: Re: Log[4]==2*Log[2]