Python:在UnivariateSpline

时间:2016-11-02 16:30:58

标签: python scipy interpolation

我尝试使用SciPy的平滑单变量样条

from scipy.interpolate import UnivariateSpline
spl = UnivariateSpline(x, y)

我收到此错误消息。

  

/usr/lib/python3.5/site-packages/scipy/interpolate/fitpack2.py:222:UserWarning:   最大迭代次数maxit(程序设置为20)   允许找到fp = s的平滑样条曲线:s   太小。   返回了一个近似值,但相应的加权和   平方残差不满足条件abs(fp-s)/ s<托尔。     warnings.warn(消息)

如何重新定义maxit参数?我没有在SciPy手册中找到任何内容,只是它是类scipy.odr.ODR中的关键字。我虽然没有太多运气。

1 个答案:

答案 0 :(得分:1)

你不能改变这个参数,它在FITPACK代码的深层固定:

https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/curfit.f#L220

原则上,您可以修改Fortran源并重新编译scipy,但这几乎肯定不是您想要做的。相反,您可以使用UnivariateSpline的s参数(或者就此而言是splrep)来查看您是否根据数据xy获得了有用的内容。

顺便说一下,ODR与此毫无关系。