首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >B-splines with Scipy :我可以在不完全重新计算的情况下添加一个数据点吗?

B-splines with Scipy :我可以在不完全重新计算的情况下添加一个数据点吗?
EN

Stack Overflow用户
提问于 2016-06-01 01:24:29
回答 1查看 52关注 0票数 0

我有一个用scipy.interpolate.splrep创建的带点(x_0,y_0)到(x_n,y_n)的B样条曲线。像往常一样。但我想添加一个数据点(x_n+1,y_n+1)和适当的节点,而不需要重新计算整个样条曲线。有谁能想出一种优雅的方式来做这件事吗?

我总是可以使用splrep返回的节点列表,并将(x_n-2,y_n-2)创建的较小样条线的最后一个节点添加到(x_n+1,y_n+1)中,但这似乎效率较低。

EN

回答 1

Stack Overflow用户

发布于 2016-06-01 03:11:26

简短的回答是:不。

样条线构造是一个全局过程,所以如果你添加一个数据点,你真的需要重新计算整个样条曲线。这涉及到求解N乘以N的线性系统等。

如果您要按顺序添加许多节点,您可能可以构建一个流程,在该流程中,您将使用步骤n上的托管矩阵的因式分解来计算步骤n+1上的内容。您需要仔细检查此过程的稳定性。splrep和朋友在这里不会给你任何帮助,所以你需要自己写这篇文章。(如果您这样做了,您可能会发现检查interpolate.CubicSpline的源代码会很有帮助)。

但在开始之前,请考虑使用本地插值器。

如果你想要的只是在给定数据的情况下添加一个结点,那么就有scipy.interpolate.insert了。

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

https://stackoverflow.com/questions/37552035

复制
相关文章

相似问题

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