Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: Interval arithmetic bug

  • To: mathgroup at smc.vnet.net
  • Subject: [mg90804] Re: Interval arithmetic bug
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Fri, 25 Jul 2008 06:11:34 -0400 (EDT)
  • References: <g670mq$s3n$1@smc.vnet.net>

On Jul 23, 12:21 pm, green tea <cetec... at gmail.com> wrote:

> In[1]:= Limit[Sin[x], x -> Infinity]
>
> Out[1]= Interval[{-1, 1}]
>
> In[2]:= Limit[Sin[x + Pi/4], x -> Infinity]
>
> Out[2]= Interval[{-Sqrt[2], Sqrt[2]}]
>
> In[3]:= TrigExpand[Sin[x + Pi/4]]
>
> Out[3]= Cos[x]/Sqrt[2] + Sin[x]/Sqrt[2]
>
> In[4]:= (Limit[#1, x -> Infinity] & ) /@ {Cos[x]/Sqrt[2],
>   Sin[x]/Sqrt[2]}
>
> Out[4]= {Interval[{-(1/Sqrt[2]), 1/Sqrt[2]}],
>    Interval[{-(1/Sqrt[2]), 1/Sqrt[2]}]}
>
> In[5]:= Plus @@ %
>
> Out[5]= Interval[{-Sqrt[2], Sqrt[2]}]
>
> In[6]:= $Version
>
> Out[6]= "6.0 for Microsoft Windows (32-bit) (May 21, 2008)"
>
> oh my god..

I might have missed the point, but as far as I can tell, the interval
arithmetic is correct. What you may have expected is to get the
interval [-1, 1], which is included in the interval [-sqrt(2),
sqrt(2)]; however, when computing limits, they is no guarantee
whatsoever that Mathematica will return systematically the smallest
interval that encompasses all possible values since an *Interval[]*
object has no knowledge of the function that generated it in first
instance (so the standard rules of interval arithmetic applied). For
instance, the following example is perfeclty correct in terms of
interval arithmetic, though one may have wished to get one for the
last expression:


    In[1]:= Limit[Cos[x]^2 + Sin[x]^2, x -> Infinity]
            Limit[Cos[x]^2, x -> Infinity]
            Limit[Sin[x]^2, x -> Infinity]
            Limit[Cos[x]^2, x -> Infinity] +
              Limit[Sin[x]^2, x -> Infinity]

    Out[1]= 1

    Out[2]= Interval[{0, 1}]

    Out[3]= Interval[{0, 1}]

    Out[4]= Interval[{0, 2}]


Regards,
-- Jean-Marc


  • Prev by Date: Mathematica in Education and Research
  • Next by Date: Is this a bug?
  • Previous by thread: Re: Interval arithmetic bug
  • Next by thread: How to call or run a NB file in another NB file?