Python:在UnivariateSpline中重新定义maxit

3

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

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

我收到了这个错误信息。

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

如何重新定义maxit参数?除了在类scipy.odr.ODR中它是一个关键词之外,在SciPy手册中我没有找到任何东西。我一直没什么好运气。

1个回答

3
您不能更改此参数,它已在FITPACK代码中固定深处:https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/curfit.f#L220。原则上,您可以修改Fortran源代码并重新编译scipy,但这几乎肯定不是您想要做的。 相反,您可以使用UnivariateSpline(或splrep)的参数s,看看是否根据您的数据x和y得到了有用的结果。顺便说一句,ODR与此无关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接