我试图在SciPy interp1d
函数的边界设置行为,according to the documentation应该是可能的:
Behavior at the boundary can be specified at instantiation time.
但我没有找到任何有关此事的进一步资料。 interp1d documentation并未提及所有内容。
所以:我如何定义行为?
好奇心:它使用的默认边界行为是什么?
修改示例(假设x=0
和x=n
之间的数据点和三次插值)
我知道至少有三种类型的边界行为,我希望能够指定:
flat:我可以要求函数变平,换句话说,派生为零。
f'(0) = f'(n) = 0
f''(0) = f''(n) = 0
cyclic:
之类的内容f'(0) = f'(n)
f''(0) = f''(n)
因此,开头和结尾都有相同的"斜率"。
手册:或者我可以手动提供衍生品的值......
f'(0) = ...
f'(n) = ...
f''(0) = ...
f''(n) = ...
虽然可能不是同时针对所有四个人。
答案 0 :(得分:3)
我认为文件中的句子措辞严厉,只是忽略它。
目前,interp1d
函数不允许指定边界行为,
interp1d
使用样条构造函数scipy.interpolate.splmake
和默认参数kind='smoothest'
,所以再次没有选择那里的边界行为。另一方面,您可能希望查看scipy.interpolate.PiecewisePolynomial
,它表示具有分段多项式的曲线,并且能够指定导数(尽管对于所有节点而不仅仅是在边界处)。 / p>