[Date Index]
[Thread Index]
[Author Index]
Re: Limit question
*To*: mathgroup at smc.vnet.net
*Subject*: [mg31523] Re: Limit question
*From*: "Alan Mason" <swt at austin.rr.com>
*Date*: Thu, 8 Nov 2001 04:57:38 -0500 (EST)
*References*: <9sb2du$p56$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
Hello,
It's odd that Limit should have this hole in it-- after all,
Limit[x^2/Exp[x], x->Infinity] = 0 is done correctly.
The notebook below gives a quick and dirty routine that implements de
l'Hopital's rule. It works correctly in the cases considered (including
your first example) and can serve as a start. Of course, it will bomb if
taking successive derivatives doesn't solve the problem (i.e., when de
l'Hopital's rule is of no use).
There's actually a lot one could say about the reasons for the choices in
this little program. In particular, why it's necessary to input a list
{num_, den_} representing num/den, and not just num_/den_, to LimitHosp.
To see why num_/den_ doesn't work, notice that it won't match Exp[x]/x^2
although it does match Exp[x]/x. To see why, look at FullForm[Exp[x]/x^2] =
Times[Power[E, x], Power[x, -2]]; this doesn't match a/b, FullForm[a/b] =
Times[a, Power[b, -1]], because of the -2. The primary arithmetic heads in
Mathematica are Plus and Times; Minus and Divide don't exist as such but are
represented as Times[-1, u_] and Power[u_, -1], resp. For pattern matching
one is therefore led to try num_ den_ and assign f1=num, g1 = 1/den. But
now another problem arises: Times is Orderless and Mathematica puts its
arguments in canonical order; so you can't be sure which argument is num and
which is den. Example:
In[8]:=
ff = FullForm;
ff[Sin[x]^2/x^2]
Out[9]//FullForm=
Times[Power[x,-2],Power[Sin[x],2]]
The factors have been switched around. There's also ambiguity -- the
fraction a/(b c) can be regarded as having numerator a/b and denominator c
and this choice can be important, as in the {Exp[x^2]/ Exp[x] ,x^3} example
below, where {Exp[x^2], Exp[x] x^3} won't work . To avoid all these
problems I pass a list, even though it seems less natural.
For your second example, Limit[Exp[x]/Gamma[1+x], x->Infinity]=0, you'll
need to use Sterling's formula. Limit is one of the weakest built-in
functions of Mathematica and it needs a lot of work for the special
functions. It can't do Limit[BesselJ[1, x]/Sqrt[x], x->Infinity] either, for
example, although the answer is well known to be 0. Oddly, direct
substitution BesselJ[1, x]/Sqrt[x] /. x -> Infinity does give 0. Looks like
Limit is some kind of neglected poor relation.
(*************************** for brevity I've deleted the output from the
Print statements **********)
In[62]:=
LimitHosp[{num_, den_}, x -> a_, val_:Infinity] :=
Module[{f1 = num, g1 = den, L},
While[Limit[f1, x -> a] == val && Limit[g1, x -> a] == val ,
Print["f1, g1 are ", f1, ", ", g1];
If[NumberQ[L = Limit[f1/g1, x -> a]], Return[L]];
f1 = D[f1, x]; g1 = D[g1, x]
];
Limit[f1/g1, x -> a]
]
lh := LimitHosp;
In[63]:=
lh[{Exp[x],x^2}, x\[Rule]Infinity]
Out[63]=
\[Infinity]
In[66]:=
lh[{Exp[x^2]/ Exp[x] ,x^3}, x\[Rule]Infinity]
(* NOTE: {Exp[x^2], Exp[x] x^3} will bomb *)
Out[66]=
\[Infinity]
In[69]:=
lh[{x^12 , Exp[x/100]}, x\[Rule]Infinity]
Out[69]=
0
In[13]:=
lh[{Sin[x]^3, x (1-Cos[x])}, x\[Rule]0, 0]
Out[13]=
2
Alan
(**************************************************************************)
"Leonard Howell" <lwhowell at knology.net> wrote in message
news:9sb2du$p56$1 at smc.vnet.net...
> I'm trying to evaluate Limit [Exp[x] * (1/x^2), x-> Infinity] with
> Mathematica but can not seem to get the correct answer of Infinity. Next,
I
> want Limit [Exp[x] /( x!), x-> Infinity] but can't get it either. Can
> someone please provide guidance?
>
> Thanks, Leonard
>
Prev by Date:
**Re: Zero does not equal Zero**
Next by Date:
**Re: Re: Zero does not Equal Zero is a feature**
Previous by thread:
**Re: Limit question**
Next by thread:
**Re: Re: Limit question**
| |