[SciPy-User] Interpolation problem with interp1d(.)

eat e.antero.tammi at gmail.com
Wed Aug 29 15:56:29 EDT 2012


Hi,

On Wed, Aug 29, 2012 at 10:46 PM, <josef.pktd at gmail.com> wrote:

> On Wed, Aug 29, 2012 at 3:29 PM, eat <e.antero.tammi at gmail.com> wrote:
> > Hi,
> >
> > Apparently I'm somehow misusing the functionality of  interp1d(.) or does
> > following behavior imply a bug in scipy. A minimum snippet (with plots)
> to
> > demonstrate the problem:
> > In []: from scipy.interpolate import interp1d
> > In []: n= 1000
> > In []: x, y= randn(n), linspace(0, 1, n)
> > In []: x.sort()
> > In []: plot(x, y, lw= 2)
> > Out[]: [<matplotlib.lines.Line2D object at 0x12E190D0>]
> >
> > In []: f= interp1d(x, y, 'cubic')
> > In []: xi= linspace(x.min(), x.max(), n)
> > In []: plot(xi, f(xi))
> > Out[]: [<matplotlib.lines.Line2D object at 0x12E20830>]
>
>
> I guess, some x's are too close to each other to fit a cubic
> interpolation without a lot of overshooting.
>
Makes sense, although what are too close seems to be quite conservative:
In []: d= x[1:]- x[:-1]
In []: d.sort()
In []: d[:3]
Out[]: array([  2.09893021e-06,   2.36059137e-06,   7.52680662e-06])

Regards,
-eat

>
> Reversing x and y looks fine.
>
> Using the splines directly and add a small s>0 might also work.
>
> Josef
>
> >
> > Regards,
> > -eat
> >
> > _______________________________________________
> > SciPy-User mailing list
> > SciPy-User at scipy.org
> > http://mail.scipy.org/mailman/listinfo/scipy-user
> >
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20120829/ea63402b/attachment.html>


More information about the SciPy-User mailing list