首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枕样条插值:在实际计算前确定tck中节点/B样条系数矢量的阵列长度

枕样条插值:在实际计算前确定tck中节点/B样条系数矢量的阵列长度
EN

Stack Overflow用户
提问于 2019-06-06 12:14:00
回答 1查看 181关注 0票数 0

在计算值之前,是否可以确定tck元组中由scipy.interpolate.splprep返回的数组的数组长度?

我必须对含有500万个数据点(或更少,可以是可变的)的噪声数据进行样条插值。我观察到,在阵列长度为90的情况下,插补效果很好,而对于较高的阵列长度计算插补则需要很长时间(有时还会直接从~ 90跳到~ 1000,同时使s变小一步,也会产生噪声),如果阵列长度远小于(<50),则这是不够合适的。

实际上,这种阵列长度依赖于平滑因子s提供给splprep函数,但是对于不同的测量数据,s变化很大,得到一致的阵列长度在90左右。例如,对于data1 ,的值大约为1000才能得到len(cfk[0]) = 90,而对于data2 ,在相同的data1长度和data2的情况下,的值大约为100才能得到len(cfk[0]) = 90。它可能取决于数据的噪音..。

我已经考虑过一个循环,在这个循环中,从某个点开始,并在不断检查len(cfk[0])时通过循环减少--但这需要很长时间,特别是当len(cfk[0])接近90时。

因此,在计算cfk元组之前,以某种方式知道平滑因子以得到所需的阵列长度是很有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-06 20:26:46

简短的回答:不,不容易。分片包装的Dierckx库使用一些相当重要的逻辑来确定纽结向量,所有这些都被写入了Fortran代码中。因此,唯一的办法是仔细追踪后者。它可以从netlib获得,也可以从scipy/插值/fitpack获得。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56477397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档