如何利用三次样条非线性插值获取曲线上5.111处的对应值
获取三次样条拟合函数指定X值对应的y值
你已经通过scipy.interpolate.interp1d创建了三次样条拟合函数f2,要获取X=5.111对应的y值,直接调用该函数并传入目标数值即可:
# 计算X=5.111对应的拟合y值 target_x = 5.111 predicted_y = f2(target_x) # 打印结果,若需单个数值可使用.item()提取 print(predicted_y) # 或者提取单个值 print(predicted_y.item())
注意事项
- 确保
target_x在原始数据X的取值范围内,interp1d默认不支持外插(超出范围会抛出错误)。如果需要对超出原始X范围的数值进行预测,创建拟合函数时需添加fill_value="extrapolate"参数:f2 = interpolate.interp1d(X, y, kind='cubic', fill_value="extrapolate") - 函数返回的结果是numpy数组,使用
.item()可以将其转换为单个Python数值,方便后续使用。
内容的提问来源于stack exchange,提问作者rjboyd00
相关产品推荐
相关产品推荐

