Python 使用给定的结数(但不是结位置)拟合样条曲线

Python 使用给定的结数(但不是结位置)拟合样条曲线,python,scipy,spline,Python,Scipy,Spline,给定一组2D点,我想用给定数量的内部节点将最佳样条曲线拟合到该数据 我已经看到,我们可以使用scipy来指定结的数量和位置,但是它不允许我们只指定结的数量 从文档中可以看出,他们似乎有一种方法来拟合具有给定节数的样条曲线,因为平滑因子s的文档说明(重点是我的): 用于选择结数的正平滑因子数字 结数将增加,直到满足平滑条件 所以,虽然我可以用一种向后的方式来做,搜索平滑因子,直到它生成一条具有所需节点数的样条曲线,但从计算效率的角度来看,这似乎是一种相当荒谬的方法。两个额外的搜索步骤只是为了相互抵

给定一组2D点,我想用给定数量的内部节点将最佳样条曲线拟合到该数据

我已经看到,我们可以使用scipy来指定结的数量和位置,但是它不允许我们只指定结的数量

从文档中可以看出,他们似乎有一种方法来拟合具有给定节数的样条曲线,因为平滑因子
s
的文档说明(重点是我的):

用于选择结数的正平滑因子数字 结数将增加,直到满足平滑条件

所以,虽然我可以用一种向后的方式来做,搜索平滑因子,直到它生成一条具有所需节点数的样条曲线,但从计算效率的角度来看,这似乎是一种相当荒谬的方法。两个额外的搜索步骤只是为了相互抵消,并获得一个已经在开始时直接计算的结果

我已经搜索过了,但还没有找到一个函数可以直接访问给定节点数的样条插值。我不确定我是否错过了一些简单的东西,或者它是否隐藏在更深的地方和/或API中不可用


注意:不需要scipy解决方案,任何python库或手工编制的python代码都可以(我在这里使用scipy只是因为这是我在python中搜索样条线插值的地方)。

scipy没有固定结数的平滑样条线。您可以提供节点,也可以让FITPACK通过平滑条件旋钮进行选择。

不幸的是,单变量样条线似乎将计算工作传递给了函数,而函数是

因此,尽管文档表明通过调整结的数量可以满足平滑要求,但无法直接访问函数,该函数适用于python API中给定结数的样条曲线


鉴于此,如果需要避免迂回的双搜索方法,看起来可能需要查找另一个库或自己编写算法。但是,在许多情况下,可以通过调整平滑参数来简单地对所需的结数进行二进制搜索。

您能提供一个解决问题的方法吗???@Patol75这是插值样条线,数据点上有结