当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy LSQUnivariateSpline.roots用法及代码示例


本文简要介绍 python 语言中 scipy.interpolate.LSQUnivariateSpline.roots 的用法。

用法:

LSQUnivariateSpline.roots()#

返回样条曲线的零点。

注意

限制:FITPACK 仅支持三次样条。对于非三次样条线,请使用PPoly.root(请参阅下面的示例)。

例子

对于某些数据,此方法可能会丢失根。当样条线结之一(FITPACK 自动放置)恰好与真实根重合时,就会发生这种情况。解决方法是转换为 PPoly ,它使用不同的 root-finding 算法。

例如,

>>> x = [1.96, 1.97, 1.98, 1.99, 2.00, 2.01, 2.02, 2.03, 2.04, 2.05]
>>> y = [-6.365470e-03, -4.790580e-03, -3.204320e-03, -1.607270e-03,
...      4.440892e-16,  1.616930e-03,  3.243000e-03,  4.877670e-03,
...      6.520430e-03,  8.170770e-03]
>>> from scipy.interpolate import UnivariateSpline
>>> spl = UnivariateSpline(x, y, s=0)
>>> spl.roots()
array([], dtype=float64)

转换为 PPoly 对象确实可以在 x=2 处找到根:

>>> from scipy.interpolate import splrep, PPoly
>>> tck = splrep(x, y, s=0)
>>> ppoly = PPoly.from_spline(tck)
>>> ppoly.roots(extrapolate=False)
array([2.])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.LSQUnivariateSpline.roots。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。