scipy.interpolate.LSQUnivariateSpline.
корни#
- LSQUnivariateSpline.корни()[источник]#
Возвращает нули сплайна.
Смотрите также
Примечания
Ограничение: FITPACK поддерживает только кубические сплайны. Для некубческих сплайнов используйте PPoly.root (см. пример ниже).
Примеры
Для некоторых данных этот метод может пропустить корень. Это происходит, когда один из узлов сплайна (которые FITPACK размещает автоматически) совпадает с истинным корнем. Обходной путь — преобразовать в
PPoly, который использует другой алгоритм нахождения корней.Например,
>>> 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.])