在 Scipy 三次样条中施加导数
Imposing derivatives in Scipy cubic spline
我正在使用 scipy 三次样条 ("scipy.interpolate.CubicSpline") 进行一维插值。
我想为样条的每个段指定初始和最终导数(“边界条件”,“bc_type”,如果我没记错的话)。
但是,阅读文档并查找示例,我无法理解那是如何发生的(我假设这是可能的)
例如,如果我有 4 个点要插值,我希望有 3 个段,对于每个段,我应该允许初始和最终的一阶导数。但是,唯一接受的语法如下所示:
CubicSpline(x, y, bc_type=((1, <initial_derivative>), (1, <final_derivative>)))
其中指定了单个初始和最终导数(顺便说一句,针对哪个部分?)
我试图用我想到的任何东西替换 bc_type
值,例如一对元组的列表,每个点一个,但与此处报告的语法没有不同。
此时我开始怀疑它是否可能,但它绝对应该:三次多项式表达式有 4 个自由度,允许“固定”两个值和两个导数
任何信息将不胜感激!
segments, for each of which I should be allowed the initial and finale first order derivative
这是 CubicHermiteSpline
或 BPoly.from_derivatives
。 CubicSpline
修复了内部斜率,使插值在内部节点处可微分两次。
我正在使用 scipy 三次样条 ("scipy.interpolate.CubicSpline") 进行一维插值。 我想为样条的每个段指定初始和最终导数(“边界条件”,“bc_type”,如果我没记错的话)。 但是,阅读文档并查找示例,我无法理解那是如何发生的(我假设这是可能的)
例如,如果我有 4 个点要插值,我希望有 3 个段,对于每个段,我应该允许初始和最终的一阶导数。但是,唯一接受的语法如下所示:
CubicSpline(x, y, bc_type=((1, <initial_derivative>), (1, <final_derivative>)))
其中指定了单个初始和最终导数(顺便说一句,针对哪个部分?)
我试图用我想到的任何东西替换 bc_type
值,例如一对元组的列表,每个点一个,但与此处报告的语法没有不同。
此时我开始怀疑它是否可能,但它绝对应该:三次多项式表达式有 4 个自由度,允许“固定”两个值和两个导数
任何信息将不胜感激!
segments, for each of which I should be allowed the initial and finale first order derivative
这是 CubicHermiteSpline
或 BPoly.from_derivatives
。 CubicSpline
修复了内部斜率,使插值在内部节点处可微分两次。