Python 将B样条曲线写成分段三次曲线

Python 将B样条曲线写成分段三次曲线,python,numpy,scipy,regression,spline,Python,Numpy,Scipy,Regression,Spline,我正在使用Scipy的SmoothBivariateSpline类在二元数据上创建一个三次B样条。我现在需要为这条样条曲线编写分段多项式表达式 我的数学背景不是很强,所以我无法编写自己的算法,将SmoothBivariateSpline的t、c、k输出转换为多项式表示。如果这是可行的,你能提供如何实现这一点的指针吗?我注意到Scipy有interpolate.ppform,但我找不到它的任何文档-这相关吗 我考虑的一种方法是将样条曲线的域分解为每个节点处的区域(使用(n-1)^2总区域,其中n是

我正在使用Scipy的SmoothBivariateSpline类在二元数据上创建一个三次B样条。我现在需要为这条样条曲线编写分段多项式表达式

我的数学背景不是很强,所以我无法编写自己的算法,将SmoothBivariateSpline的t、c、k输出转换为多项式表示。如果这是可行的,你能提供如何实现这一点的指针吗?我注意到Scipy有interpolate.ppform,但我找不到它的任何文档-这相关吗

我考虑的一种方法是将样条曲线的域分解为每个节点处的区域(使用
(n-1)^2
总区域,其中
n
是节点数),然后对每个区域中样条曲线上的多个点执行三次回归,以计算每个区域数据的三次回归。这是一种有效的方法吗


前一种方法似乎更为严格,因此我更愿意使用这种方法,但后一种方法也是可以接受的。

B样条曲线可以有效地转换为分段多项式

这可以在Scipy 0.14.0(将在几个月后发布)中轻松实现,该软件具有
Scipy.interpolate.PPoly.from_spline

从样条
t,c,k
本身计算分段多项式的算法非常简单,因此在此期间,您可以编写自己的函数来计算多项式系数:

好的,我将为此任务编写自己的函数。它看起来像是从_样条函数简单地找到了以节点为中心的泰勒多项式。在我的例子中,因为我有一个二元样条,我会计算二维泰勒函数吗?还有,什么是断点?@Draksis:类似问题的详细答案发布在。答案提供了一个手动评估1D B样条节点和系数的函数,让您了解它们的含义。也许您可以通过扩展提供的1D案例来生成类似的内容。