You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于scipy.interpolate.interp1d的样条类型及边界约束的技术问询

scipy.interpolate.interp1d 样条类型与边界约束说明

1. kind='cubic' 对应的三次样条实现

使用 interp1d 并设置 kind='cubic' 时,默认采用的是三次B样条插值,边界约束为非节点(not-a-knot)条件。这种约束的核心是强制插值区间的第一个内部节点处三阶导数连续,最后一个内部节点处三阶导数也连续,让首尾两个相邻区间的三次多项式完全重合,避免端点处引入额外的人为约束。

2. kind='quadratic' 对应的边界约束

当设置 kind='quadratic' 时,采用的是二次B样条插值,边界约束同样为非节点(not-a-knot)条件。对于二次样条,该约束会强制第一个内部节点处二阶导数连续,最后一个内部节点处二阶导数也连续,确保首尾相邻区间的二次多项式保持一致,维持插值曲线的平滑性。

示例代码

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d


def f(x):
    return np.exp(np.sin(-x))

a=np.linspace(-6,3,100)
b=f(a)

x = np.linspace(-6, 3, 5)
y = f(x)

splineFunc= interp1d(x=x, y=y, kind='cubic')

plt.plot(a,b)
plt.plot(a, splineFunc(a))
plt.show()

内容的提问来源于stack exchange,提问作者Golden Fish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:01:13