import numpy as np
from scipy.interpolate import PiecewisePolynomial
xi = np.array([1,10])
yi = np.array([10,1])
p = PiecewisePolynomial(xi,yi)
不会产生两点的线性插值,但
ZeroDivisionError: integer division or modulo by zero
那里有什么问题?
答案 0 :(得分: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.])