来自Scipy插值的三次样条系数
我正在尝试使用scipy库中的Cubic Spline来计算三次样条多项式的系数,使用的点是(0,0)、(1,1)和(2,0)。我得到的系数和这个网站上提供的值不一样:https://tools.timodenk.com/cubic-spline-interpolation,我在这里输入了相同的点。
我想知道这是为什么。谢谢。
from scipy.interpolate import CubicSpline
x=[0,1,2]
y=[0,1,0]
myCS=CubicSpline(x,y,axis=0,bc_type=((2,0),(2,0)))
print(myCS.c)
期望的系数是:-0.5, 0, 1.5, 0
0.5, -3, 4.5, -1
1 个回答
0
我们需要使用PPoly类的定义。这个类告诉我们,输出的系数必须先用它们的公式进行转换,才能得到我们想要的多项式。
对于i=0(也就是第一个多项式),我们减去x[0],而x[0]是0,所以在这里它们是一样的。
对于第二个多项式(i = 1),我们有
0.5(x - 1.0)^3 - 1.5(x - 1.0)^2 + 0.0(x - 1.0)^1 + 1.0(x - 1.0)^0
展开后会得到和网站上相同的系数。