cubicSpline

语法

cubicSpline(x, y, bc_type="not-a-knot")

详情

生成三次样条插值曲线。

  • bc_type 是一个字符串标量或长度为 1 的向量时,以此作为曲线两端的限制条件。
  • bc_type 是一个数据对或长度为 2 的向量时,两个元素分别作为曲线左端和右端的限制。
返回一个字典,包含 2 个key:c, x:
  • c:三次样条函数的分段多项式的系数
  • x:输入的 x 向量

参数

x 是一个数值向量,代表自变量的值。x 的长度不小于 3,必须严格递增,且不包含空值。

y 是一个数值向量,代表因变量的值。y 必须与 x 长度相等。

bc_type 是一个字符串标量、字符串数据对、或长度小于等于 2 的向量,用于限定边界条件。字符串支持”not-a-knot“、”clampe“、”nature“,默认值为”not-a-knot“。

  • not-a-knot:曲线的前两段和最后两段的三阶导数相等。
  • clamped:曲线两端点处的一阶导数为零。
  • natural:曲线两端点处的二阶导数为零。

例子

n = 10
x = 0..(n-1)
y = sin(x)
model = cubicSpline(x, y, bc_type="not-a-knot")
print(model)

返回:

c->[-0.041850075616506,-0.261272044545537,1.144593104969939,0,-0.041850075616507,-0.386822271395055,0.496498789029347,0.841470984807897,0.146891060089045,-0.512372498244576,-0.402695980610284,0.909297426825682,0.160544611441946,-0.071699317977441,-0.986767796832301,0.141120008059867,0.036476302757735,0.409934516348399,-0.648532598461344,-0.756802495307928,-0.120619990666048,0.519363424621603,0.280765342508658,-0.958924274663138,-0.178733575459463,0.157503452623459,0.957632219753719,-0.279415498198926,-0.025369476962727,-0.378697273754929,0.736438398622249,0.656986598718789,-0.025369476962726,-0.454805704643109,-0.09706457977579,0.989358246623382]
x->[0,1,2,3,4,5,6,7,8,9]