pylab, integral of sinc function

Robert Kern robert.kern at gmail.com
Mon Feb 19 22:34:23 EST 2007


Schüle Daniel wrote:
> Hello,
> 
> In [19]: def simple_integral(func,a,b,dx = 0.001):
>     ....:     return sum(map(lambda x:dx*x, func(arange(a,b,dx))))
>     ....:
> 
> In [20]: simple_integral(sin, 0, 2*pi)
> Out[20]: -7.5484213527594133e-08
> 
> ok, can be thought as zero
> 
> In [21]: simple_integral(sinc, -1000, 1000)
> Out[21]: 0.99979735786416357
> 
> hmm, it should be something around pi
> it is a way too far from it, even with a=-10000,b=10000
> 
> In [22]: def ppp(x):
>     ....:     return sin(x)/x
>     ....:
> 
> In [23]: simple_integral(ppp, -1000, 1000)
> Out[23]: 3.1404662440661117
> 
> nice
> 
> is my sinc function in pylab broken?

A couple things:

1) The function is not from pylab, it is from numpy.

2) Look at the docstring of the function, and you will notice that the
convention that sinc() uses is different than what you think it is.

In [3]: numpy.sinc?
Type:           function
Base Class:     <type 'function'>
Namespace:      Interactive
File:
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/numpy-1.0.2.dev3521-py2.5-macosx-10.3-fat.egg/numpy/lib/function_base.py
Definition:     numpy.sinc(x)
Docstring:
    sinc(x) returns sin(pi*x)/(pi*x) at all points of array x.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the Python-list mailing list