将 B 样条写入分段三次

Shi*_*dia 3 python regression numpy spline scipy

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

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

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

前一种方法似乎更严格,所以我更喜欢使用那种方法,但后者也可以接受。

pv.*_*pv. 5

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

这可以在 Scipy 0.14.0(将在几个月内发布)中轻松完成,它具有scipy.interpolate.PPoly.from_spline.

从样条t, c, k本身计算分段多项式的算法非常简单,因此同时您可以编写自己的函数来计算多项式系数:https : //github.com/scipy/scipy/blob/master/scipy/interpolate/插值.py#L938