MathGroup Archive 2002

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

Search the Archive

Re: Re: Limit[Sin[a*x]/(a*x), x -> Infinity]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35875] Re: [mg35818] Re: Limit[Sin[a*x]/(a*x), x -> Infinity]
  • From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
  • Date: Mon, 5 Aug 2002 06:01:41 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

After giving this matter a little more thought I have convinced myself 
that I now know "the right way" functions like Limit  ought to work. The 
idea is illustrated by the following re-definition of Limit to deal with 
the case that started this thread:

In[1]:=
Unprotect[Limit];
Limit[Sin[a_*x_]/(a_*x_), x_ -> Infinity] :=
    If[Im[a] == 0 && a != 0, 0, If[Re[a] == 0 && a != 0,
      Infinity, Limit[Sin[a*x]/(a*x), x -> Infinity]]];
Protect[Limit];

Observe that with this re-definition we can now use Simplify with 
assumptions:


In[4]:=
Simplify[Limit[Sin[a*x]/(a*x), x -> Infinity], a > 0]

Out[4]=
0

In[5]:=
Simplify[Limit[Sin[a*x]/(a*x), x -> Infinity], a < 0]

Out[5]=
0

In[6]:=
Simplify[Limit[Sin[a*x]/(a*x), x -> Infinity],
   Re[a] == 0 && Im[a] != 0]

Out[6]=
Infinity

Moreover, if we know nothing about a  we get:

In[7]:=
Limit[Sin[a*x]/(a*x), x -> Infinity]

Out[7]=
If[Im[a] == 0 && a != 0, 0, If[Re[a] == 0 && a != 0,
    Infinity, Limit[Sin[a*x]/(a*x), x -> Infinity]]]


This has the advantage of telling us immediately what assumptions 
Mathematica needs to return an answer to this problem. The point is that 
this way we already know that there is no use entering other assumptions 
unless they imply the conditions given by If.

Andrzej Kozlowski


On Friday, August 2, 2002, at 10:29  PM, Andrzej Kozlowski wrote:

>
> On Friday, August 2, 2002, at 03:42  PM, Dana DeLouis wrote:
>
>>
>> Hello.  I do not have an answer, as I am new also.
>> In Mathematica 4.2, Help says in part "...Limit therefore makes no
>> explicit assumptions about symbolic functions." Same for the Package
>> "NLimit."  Therefore, I think we're out of luck here.
>
> You can't make assumptions in Limit. There are not enough general 
> methods for such a mechanism to be really useful.
>
>> As an newbe observation, the only option for Limit (For Mathematica 
>> 4.2)
>> is "Direction."  However, if you type ??Limit, there is another Option
>> listed that appears not to be documented. That option is "Analytic."  I
>> thought maybe this would solve this type of problem, but it does not. I
>> do not know for sure what this option does.  Anyone else??
>
> This is meant for the situations when you use a custom defined 
> function. For example:
>
> In[21]:=
> Limit[f[Sin[x]/x], x -> 0]
>
> Out[21]=
> Limit[f[Sin[x]/x], x -> 0]
>
> but
>
> In[22]:=
> Limit[f[Sin[x]/x], x -> 0, Analytic -> True]
>
> Out[22]=
> f[1]
>
>
>
>>
>> Information["Limit", LongForm -> True]
>> "Limit[expr, x->x0] finds the limiting value of \
>> expr when x approaches x0...
>>
>> Attributes[Limit] = {Listable, Protected}
>>
>> Options[Limit] = {Analytic -> False, Direction -> Automatic}
>>
>> As a possible workaround, would substituting many values for "a" work?
>> Here is what I am thinking...
>>
>> v = Table[Random[Real, {0, 2*Pi}], {100}];
>>
>> Union[(Limit[Sin[#1*x]/(#1*x), x -> Infinity] & ) /@ v]
>>
>> I get all zero's like you predicted for many values of a.
>> {0}
>>
>> If you try "Integers", then I get an "Indeterminate" because the limit
>> does not like "a" being 0.
>>
>> v = Table[Random[Integer, {-4, 4}], {10}];
>>
>> Union[(Limit[Sin[#1*x]/(#1*x), x -> Infinity] & ) /@ v]
>>
>>
>> {0, Indeterminate}
>
>
>
> Actually the problem is that the function Sin[z]/z is singular at 
> Infinity. Thus:
>
> In[26]:=
> Limit[Sin[z]/z, z -> Infinity, Direction -> -1]
>
> Out[26]=
> 0
>
> In[27]:=
> Limit[Sin[z]/z, z -> Infinity, Direction -> -I]
>
> Out[27]=
> Infinity
>
> In other words the limit depends on the direction. So when you consider
>
> Limit[Sin[a z]/(a z), z -> Infinity]
>
> it is not clear in which direction the limit is being taken. This 
> depends on whether a is real or not (as Bobby Treat already pointed 
> this out in his message),and of course there is the special case a==0.
>
> Since Limit does nto allow assumptions to be entered if you know that 
> you will be dealing with such cases frequently one approach is to 
> redefine limit:
>
> Unprotect[Limit];
>
> In[28]:=
> Limit[Sin[a_*x_]/(a_*x_), x_ -> Infinity] /;
>     Im[a] == 0 && a != 0 = 0;
> Limit[Sin[a_*x_]/(a_*x_), x_ -> Infinity] /;
>     Re[a] == 0 && a != 0 = Infinity;
>
> In[30]:=
> Protect[Limit];
>
>
> Now you need to enter assumptions about a's or b's, e.g.:
>
> In[31]:=
> a/:Im[a]=0;
>
> In[32]:=
> a/:(aâ? 0)=True;
>
> this says a is a non-zero real. Limit will now return the expected 
> answer:
>
> In[33]:=
> Limit[Sin[a*x]/(a*x), x -> Infinity]
>
> Out[33]=
> 0
>
> similarly for the case when b is non zero and imaginary we will get:
>
> In[34]:=
> b /: Re[b] = 0;
>
> In[35]:=
> b /: b != 0 = True;
>
>
> In[36]:=
> Limit[Sin[b*x]/(b*x), x -> Infinity]
>
> Out[12]=
> Infinity
>
> If you are sure you are going to onl be dealing with non-zero real 
> numbers you can redefine Limit to return always 0 in such cases, which 
> may make it simpler to deal with a large number of them in one go.
>

>
>
>>
>> --
>> Dana
>> Windows XP  & Mathematica 4.1
>> = = = = = = = = = = = = = = = = =
>>
>> "JM" <j_m_1967 at hotmail.com> wrote in message
>> news:<aiat23$5b0$1 at smc.vnet.net>...
>>> Sorry for 'refreshing' this message but does anyone know if I can
>>> define the assumption below.
>>>
>>> I don't want to write specific assumptions for each term in Limit
>>> since I have many different variables and forms of a. Is it possible
>>> to generalise the assumption?
>>>
>>> it would really help me (and I really don't want to have to buy any
>>> additional maths software).
>>>
>>>
>>> timreh719 at yahoo.com.tw (bryan) wrote in message
>>> news:<ahdf97$i36$1 at smc.vnet.net>...
>>>> Hi All :
>>>>    I am also interesting in the solution of how to make an asumption
>>
>>>> in Mathematica. I can't find any method in Mathematica. If anybody
>>>> has the approch to do this , please send it to my e-mail too , Thank
>>
>>>> you all ..
>>>>
>>>> j_m_1967 at hotmail.com (JM) wrote in message
>>>> news:<ah8otr$aut$1 at smc.vnet.net>...
>>>>> I know that this should be 0 but why can't I get mathematica to
>>>>> think likewise.
>>>>>
>>>>>
>>>>> In[4]:= Limit[Sin[a*x]/(a*x),x->Infinity]
>>>>>
>>>>>               Sin[a x]
>>>>> Out[4]= Limit[--------, x -> Infinity]
>>>>>                 a x
>>>>>
>>>>> Is the problem a? How can I specify the properties of or
>>>>> assumptions that may be made about a?
>>>
>>
>>
>>
>



  • Prev by Date: RE: Notebook question
  • Next by Date: How can I write inside the frame.
  • Previous by thread: RE: Re: Limit[Sin[a*x]/(a*x), x -> Infinity]
  • Next by thread: Re: realtime plotting of points