Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: ForAll testing equality, and Limit evaluating wrong

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104591] Re: [mg104512] ForAll testing equality, and Limit evaluating wrong
  • From: Rui Rojo <rui.rojo at gmail.com>
  • Date: Wed, 4 Nov 2009 01:38:42 -0500 (EST)
  • References: <200911030750.CAA00981@smc.vnet.net>

I see why it happens, but I don't get why Mathematica removes the "Limit"
from xTransf when it evaluates it at "f"... Or how I can avoid it, so I
don't get those kinds of mistakes

On Tue, Nov 3, 2009 at 8:33 PM, DrMajorBob <btreat1 at austin.rr.com> wrote:

> r[Pi] occurs because of copy/paste from e-mail to a notebook, when the line
> breaks badly like this:
>
>
> xTransf[f]:=Limit[(E^(-24 I r \[Pi]) (-Cos[12 r \[Pi]] + Cos[24 r \
> [Pi]] +
>  12 r \[Pi] Sin[24 r \[Pi]]))/(2 r^2 \[Pi]^2), r->f]
>
> So that's an e-mail artifact.
>
> You defined xTransf this way:
>
>
>
> Clear[xTransf, xTransf2]
> xTransf2[f_] := 36 Sinc[6 Pi f]^2;
> xTransf[f_] :=
>  Limit[(E^(-24 I \[Pi] r) (-Cos[12 \[Pi] r] + Cos[24 r \[Pi]] +
>       12 \[Pi] r Sin[24 \[Pi] r]))/(2 \[Pi]^2 r^2), r -> f]
>
> and noticed that this evaluates fine:
>
> xTransf[0]
>
> 36
>
> but this does not (error messages omitted):
>
> xTransf[f] /. f -> 0
>
> Indeterminate
>
> It's easy to see why the error occurs, since this is undefined at f=0:
>
> xTransf[f]
>
>
> (E^(-24 I f \[Pi]) (-Cos[12 f \[Pi]] + Cos[24 f \[Pi]] +
>   12 f \[Pi] Sin[24 f \[Pi]]))/(2 f^2 \[Pi]^2)
>
> (We can't divide by zero.)
>
> But the limit as f->0 exists, so xTransf[0] can be calculated, and 36 is
> the result.
>
> Bobby
>
>
> On Tue, 03 Nov 2009 16:33:07 -0600, Rui Rojo <rui.rojo at gmail.com> wrote:
>
>  Yeah, the first xTransf[f] slipped when copying by hand, and the second
>> thing I don't see it.  The FullSimplify does what I wanted like you said.
>> Thanks :)
>>
>> Any comments on the Limit issue?
>> Rui Rojo
>>
>> On Tue, Nov 3, 2009 at 6:34 PM, DrMajorBob <btreat1 at austin.rr.com> wrote:
>>
>>  As is, you posted a scramble for two reasons:
>>>
>>> 1) The second definition should start with xTransf[f_] (WITH the
>>> underscore).
>>>
>>> 2) The right hand side includes r[Pi] in the second Cos argument,
>>> indicating that r is a function. In that case, what does it mean for r to
>>> approach f in the Limit?
>>>
>>> If I rewrite to eliminate those problems, Simplify doesn't get the result
>>> you want, but FullSimplify does:
>>>
>>> Clear[xTransf, xTransf2]
>>> xTransf2[f_] := 36 Sinc[6 Pi f]^2;
>>> xTransf[f_] =
>>>  Limit[(E^(-24 I \[Pi] r) (-Cos[12 \[Pi] r] + Cos[24 r \[Pi]] +
>>>     12 \[Pi] r Sin[24 \[Pi] r]))/(2 \[Pi]^2 r^2), r -> f];
>>> diff[i_] = xTransf2[i/24] - xTransf[i/24];
>>> one = Simplify[diff@i, {i > 0, i \[Element] Integers}]
>>>
>>> 36 ((8 (-1 + (-1)^i Cos[(i \[Pi])/2]))/(i^2 \[Pi]^2) +
>>>  Sinc[(i \[Pi])/4]^2)
>>>
>>> FullSimplify[diff@i, {i > 0, i \[Element] Integers}]
>>>
>>> 0
>>>
>>> One way to work that out almost by hand is:
>>>
>>> two = Expand[(i^2 Pi^2)/(8*36) one /. Sinc[any_] :> Sin@any/any]
>>>
>>> -1 + (-1)^i Cos[(i \[Pi])/2] + 2 Sin[(i \[Pi])/4]^2
>>>
>>> (to eliminate Sinc)
>>>
>>> doubleAngle = ReplaceAll[#, Cos[x_] :> Cos[x/2]^2 - Sin[x/2]^2] &;
>>> three = MapAt[doubleAngle, two, 2] // Expand
>>>
>>> -1 + (-1)^i Cos[(i \[Pi])/4]^2 +
>>>  2 Sin[(i \[Pi])/4]^2 - (-1)^i Sin[(i \[Pi])/4]^2
>>>
>>> (to have all the Sin and Cos terms squared)
>>>
>>> four = three /. Cos[any_]^2 :> 1 - Sin[any]^2 // Expand // Factor
>>>
>>> -(-1 + (-1)^i) (-1 + 2 Sin[(i \[Pi])/4]^2)
>>>
>>> Separate into factors:
>>>
>>> {minus, five, six} = List @@ four
>>>
>>> {-1, -1 + (-1)^i, -1 + 2 Sin[(i \[Pi])/4]^2}
>>>
>>> "five" is zero when i is even:
>>>
>>> Reduce[five == 0]
>>>
>>> (-1)^i == 1
>>>
>>> "six" is zero when i is odd:
>>>
>>> Reduce[six == 0]
>>>
>>> Sin[(i \[Pi])/4] == -(1/Sqrt[2]) || Sin[(i \[Pi])/4] == 1/Sqrt[2]
>>>
>>> So the product is zero for all i. (NON-ZERO i, that is, since we assumed
>>> Sinc was defined.)
>>>
>>> Bobby
>>>
>>>
>>> On Tue, 03 Nov 2009 01:50:55 -0600, Rui <rui.rojo at gmail.com> wrote:
>>>
>>>  I want to prove that xTransf2[f]==xTransf[f] for all f multiple of
>>>
>>>> 1/24.
>>>> xTransf2[f_]:=36 Sinc[6 Pi f]^2 and
>>>> xTransf[f]:=Limit[(E^(-24 I r \[Pi]) (-Cos[12 r \[Pi]] + Cos[24 r \
>>>> [Pi]] +
>>>>  12 r \[Pi] Sin[24 r \[Pi]]))/(2 r^2 \[Pi]^2), r->f]
>>>>
>>>> If I do
>>>> ForAll[f \[Element] Integers, YTransf[f/24] == YTransf2[f/24]]
>>>> I don't get a result... I can't find a way.
>>>> In fact, I get
>>>> (144 E^(-I f \[Pi]) (-2 Cos[(f \[Pi])/2] + 2 Cos[f \[Pi]] +
>>>>   f \[Pi] Sin[f \[Pi]]))/(f^2 \[Pi]^2) == 36 Sinc[(f \[Pi])/4]^2
>>>>
>>>> They are clrealy equal, at least on the 48 points closest to 0,
>>>> because if I do
>>>> And @@ ((xTransf[1/24 #] == xTransf2[1/24 #]) & /@ Range[-24, 24])
>>>> I get "True"
>>>>
>>>> Any pretty way to be certain?
>>>>
>>>> I've also realised that Mathematica has evaluated Limits with
>>>> variables, making the "Limit" disappear when for some values of the
>>>> variables I could get an indetermined result with the evaluated
>>>> version. For example, the Limit in xTransf
>>>> xTransf[f]
>>>> I get
>>>> (E^(-24 I f \[Pi]) (-Cos[12 f \[Pi]] + Cos[24 f \[Pi]] +
>>>>  12 f \[Pi] Sin[24 f \[Pi]]))/(2 f^2 \[Pi]^2)
>>>> without the Limit.
>>>> So, if I do
>>>> xTransf[f]/.f->0
>>>> I get errors but if I do xTransf[0] I get 36
>>>> ...
>>>> Hope you can help :)
>>>>
>>>>
>>>>
>>> --
>>> DrMajorBob at yahoo.com
>>>
>>>
>
> --
> DrMajorBob at yahoo.com
>



  • Prev by Date: Re: Re: dynamicmodule with f[x_] possible?
  • Next by Date: Re: ForAll testing equality, and Limit evaluating wrong
  • Previous by thread: Re: ForAll testing equality, and Limit evaluating wrong
  • Next by thread: Re: ForAll testing equality, and Limit evaluating wrong