2016-02-28 2 views
1
import numpy as np 
from scipy.interpolate import PiecewisePolynomial 

xi = np.array([1,10]) 
yi = np.array([10,1]) 

p = PiecewisePolynomial(xi,yi) 

Не дает линейной интерполяции двух точек, ноPython: SciPy.interpolate PiecewisePolynomial

ZeroDivisionError: integer division or modulo by zero 

Что случилось там?

ответ

1

Замените yi с

yi = np.array([[10], [1]]) 

PiecewisePolynomial требует y массива быть array-like или list-of-array структурой. Каждый элемент y может быть значением функции для x и его последующих производных. Вышеизменено значение y создает правильную линейную интерполяцию

p = PiecewisePolynomial(xi,yi) 
p.__call__([5.]) 
>> array([6.]) 
p.__call__([2.]) 
>> array([9.]) 
Смежные вопросы