来自Scipy插值的三次样条系数

1 投票
1 回答
41 浏览
提问于 2025-04-12 21:32

我正在尝试使用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

展开后会得到和网站上相同的系数。

撰写回答