Re: mathematica gets a simple limit wrong?
- To: mathgroup at smc.vnet.net
- Subject: [mg24693] Re: [mg24633] mathematica gets a simple limit wrong?
- From: Albert Weinshelbaum <xrayted at pacbell.net>
- Date: Fri, 4 Aug 2000 01:19:18 -0400 (EDT)
- References: <firstname.lastname@example.org>
- Sender: owner-wri-mathgroup at wolfram.com
"Andrzej Kozlowski" <andrzej at tuins.ac.jp> wrote in message news:8m3vaj$djl at smc.vnet.net... > on 7/28/00 11:24 PM, danckel at my-deja.com at danckel at my-deja.com wrote: > > > Could anyone explain the following output of mathematica 4.0: > > > > In:= 1+Limit[a-Sqrt[a^2-a],a->Infinity] > > Out:= 3/2 > > > > In:=Limit[1+a-Sqrt[a^2-a],a->Infinity] > > Out:= 1 ????!!!!!!!!!!! > > Using Mathematica 3.0 I get 3/2 for both > > > > Huh? I just moved the 1 inside the brackets and got a wrong answer? > > Makes me wonder about mathematica. > > > > bye, > > > > D. > > > > > > Sent via Deja.com http://www.deja.com/ > > Before you buy. > > > > > This is clearly a bug, (though perhaps an understandable one). However, I > feel the first thing that needs to be said is that in this, as in most other > cases, Mathematica offers lots of ways to get the right answer. This is > indeed its greatest strength. Personally I would never even think of using > limit in a case like this (or most other cases) since the following approach > is far more reliable: > > In:= > f[x_] := 1 + x - Sqrt[x^2 - x] > In:= > Normal[f[x] + O[x, Infinity]^2] > Out= > 3 > - > 2 > > There are also two ways to get the right answer by laoding standard > packages: > > In:= > << Calculus`Limit` > In:= > Limit[f[x], x -> Infinity] > Out= > 3 > - > 2 > > or > > In:= > << NumericalMath`NLimit` > > In:= > NLimit[f[x], x -> Infinity] > Out= > 1.5 > > Actually, even when all such answers agree I do not think you should rely on > an answer given not just by Mathematica but by any symbolic algebra program. > They should only be treated as "guesses" whcih should be justified > mathematically. But this is another issue. > > There is also the question of how the bug arises. Of course not having > access to the source code one can't be sure but one can make a guess. > Starting with a new kernel (to remove the effects of the external packages): > > In:= > f[x_] := 1 + x - Sqrt[x^2 - x];g[x_] := f[1/x]; > > In:= > g[x] > Out= > -2 1 1 > 1 - Sqrt[x - -] + - > x x > > In:= > Limit[g[x], x -> 0] > Out= > 1 > > In:= > Together[g[x]] > Out= > 1 - x > 1 + x - Sqrt[-----] x > 2 > x > --------------------- > x > > In:= > Limit[Together[g[x]], x -> 0] > Out= > 3 > - > 2 > > It seems that in the second case Mathematica correctly used the l'Hospital > rule. It is not clear to me how Mathematica arrives at its (wrong) answer 1 > in the first case, though it seems to me not entirely surprising that it > "can't see" the, not entirely obvious, need to apply Together before using > the l'Hospital rule. > > -- > Andrzej Kozlowski > Toyama International University, JAPAN > > For Mathematica related links and resources try: > <http://www.sstreams.com/Mathematica/> > > > > >