繁体   English   中英

如何在 scipy.interpolate 中设置三次样条插值的第一个和最后一个斜率?

[英]How to set first and last slope of cubic spline interpolation in scipy.interpolate?

我有一个包含n个二维点 (x 0 ,y 0 ),(x 1 ,y 1 ), ... (x n-1 ,y n-1 ) 的数据集,其中 x 0 < x 1 < .. . < x n-1 我想使用三次样条插值该数据集,并在两个端点(x 0 ,y 0 ) 和 (x n-1 ,y n-1 )处设置显式斜率值 S BEGIN和 S END 我的意思是,让生成的 n-1 三次函数为 f 0 (x)=a 0 x 3 +b 0 x 2 +c 0 x+d 0 , f 1 , ... , f n-2 ,然后是 df 0 /dx(x 0 ) = S BEGIN , df n-2 /dx(x n-1 ) = S END

我查看了scipy.interpolate但无法找到如何将 S BEGIN和 S END设置为当前实例。

import numpy
import scipy

xi = numpy.array([1, 2, 3, 4, ... , 100])
yi = numpy.array([3, 5, 18, 9, ... , 42])
s_begin = 2
s_end = -1

# How can I set s_begin and s_end?
f = scipy.interpolate.interp1d(xi,yi,type='cubic')

另外,我想知道如何获得每个三次样条的 4(n-1) 个系数 a 0 ,b 0 ,c 0 ,d 0 ,a 1 ,...,d n-2f

这对于interp1d是不可能的。 不过,您可以从splrep获得样条系数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM