# [SciPy-User] Problems with scipy.integrate.quad and sinusoidal weights

josef.pktd@gmai... josef.pktd@gmai...
Fri Sep 28 07:13:07 CDT 2012

```On Fri, Sep 28, 2012 at 4:51 AM, Per Nielsen <evilper@gmail.com> wrote:
> Hi all,
>
> I am getting some strange (wrong or highly unaccurate) results when I try to
> consider the following code:
>
> In [40]: from scipy.integrate import quad
>
> In [41]: from math import exp, sin, cos
>
> In [42]: fsin = lambda x: exp(-x) * sin(100*x)
>
> In [43]: quad(fsin, 0., 10., args=(), weight='sin', wvar=100.)
> Out[43]: (0.4974066723952844, 0.0005303917238325333)
>
> In [44]: quad(fsin, 0., 10., args=())
> Out[44]: (0.0099990111781435, 0.0006814046027542903)
>
> where the last line, without the weight function gives the correct result.
>
> I have looked at the documentain for quad at:
>
>
> and to me this should be the way to integrate fsin. Am I misunderstanding
> the arguments or whats going on? :)

the weight function is automatically added

>>> integrate.quad(lambda x: np.exp(-x)*np.sin(100*x), 0., 10., args=())
Warning: The maximum number of subdivisions (50) has been achieved.
If increasing the limit yields no improvement it is advised to analyze
the integrand in order to determine the difficulties.  If the position of a
local difficulty can be determined (singularity, discontinuity) one will
probably gain from splitting up the interval and calling the integrator
on the subranges.  Perhaps a special-purpose integrator should be used.
(0.0099990111781434986, 0.00068140460275433325)

>>> integrate.quad(lambda x: np.exp(-x), 0., 10., args=(), weight='sin', wvar=100.)
(0.0099987410521618428, 7.0983734843630013e-10)

(I never used wvar before, just guessing

Josef

> Cheers,
> Per
>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
```