编写B样条为分段三次
作者:互联网
我正在使用Scipy的SmoothBivariateSpline类在双变量数据上创建三次B样条.现在,我需要为该样条曲线编写分段多项式表达式.
我的数学背景不是很强,所以我无法编写自己的算法来将SmoothBivariateSpline的t,c,k输出转换为多项式表示形式.如果可行,您能否提供有关如何实现此目标的指示?我注意到Scipy具有interpolate.ppform,但是我找不到关于它的任何文档-这相关吗?
我正在考虑的一种方法是将样条的域分解为每个结处的区域(总共有(n-1)^ 2个区域,其中n是结数),然后对样条上的许多点执行三次回归在每个区域绘制曲线,以计算每个区域的数据的三次回归.这是有效的方法吗?
前一种方法似乎更为严格,因此我更愿意使用该方法,但后者也是可以接受的.
解决方法:
B样条可以有效地转换为分段多项式.
这可以在具有scipy.interpolate.PPoly.from_spline的Scipy 0.14.0(将在几个月后发布)中轻松完成.
根据样条曲线t,c,k本身计算分段多项式的算法非常简单,因此与此同时,您可以编写自己的函数来计算多项式系数:
https://github.com/scipy/scipy/blob/master/scipy/interpolate/interpolate.py#L938
标签:spline,scipy,regression,python,numpy 来源: https://codeday.me/bug/20191029/1961432.html