2026a

# bspline


绘制B样条及其多项式片段

函数库: TyCurveFitting

# 语法

bspline(t)
bspline(t,window)
pp = bspline(t,out = false)

# 说明

bspline(t) 绘制节点序列为 t 的 B 样条曲线,以及组成它的多项式片段。 示例


bspline(t,window) 在指定的子图窗口 window 中绘制具有节点序列 t 的 B 样条以及组成它的多项式片段。


pp = bspline(t, out = false) 指示样条返回指示,如果该项为 true,函数不绘制任何内容而是返回 B 样条的 pp 型。

# 示例

绘制4阶B样条

此示例说明如何使用 bspline 函数创建 4 阶 B 样条。

创建节点序列并绘制B样条

该图显示了一个 4 阶 B 样条和组成它的四个三次多项式。

要在 Syslab 中复制此图,首先要创建一个节点序列。节点序列必须是非递减的。

using TyCurveFitting
t = [0 1.5 2.3 4 5]

由于已经定义了五个节点,B 样条将是 4 阶的。

然后使用 bspline 函数绘制带有节点序列 t 的 B 样条及其多项式片段。

bspline(t)

此 B 样条由 4 个多项式组成:图中的红色、绿色、紫色和黑色曲线,每个度数均为 3。

垂直线标记之前定义的节点 t。

具有节点 t[i]≤····≤ t[i + k] 的 B 样条在区间 (t[i]..t[i + k]) 上为正,并且在该区间外为零。它是阶数为 k,在位点 t[i],...,t[i + k] 有断点的分段多项式。这些节点可能重合,其重数决定了两个多项式片段连接的光滑程度。

在新的子图中绘制另一个B样条

创建第二个节点序列。

t2=[2 3 4 5]

在同一图的不同的子图中绘制带有节点序列t2的B样条。

bspline(t,1)
bspline(t2,2)

# 输入参数

t - 样条的节点序列
向量(默认)

B 样条节点的非递减序列,指定为向量。

数据类型: Int | Float

window—子图窗口
标量(默认)

2x2窗口子图的索引,指定为标量。该值必须小于5。

数据类型: Int

out — 样条返回指示
false(默认) | true

样条返回指示,指定为 true 或 false 。如果该项为 true,函数不绘制任何内容而是返回 B 样条的 pp 型。

数据类型: Bool

# 输出参数

pp-样条结构体
样条结构体

pp型的样条,为带有以下元素的结构体。关于 pp 样条的更多信息,参照 pp 型。

Form - 样条格式
"pp"

样条的格式,以 "pp" 返回。"pp" 样条是以分段多项式的形式给出。

数据类型: String

Breaks-样条节点位置
向量 | 数组元组

样条节点位置,单变元时以向量,多变元时以向量元组形式返回。向量包含严格增元素,逐点分别表示各段多项式定义区间的左右端点。

数据类型: Int | Float

Coefs - 多项式的系数
矩阵 | 数组

各段多项式的系数,单变元时以矩阵,多变元时以数组形式返回。

数据类型: Int | Float

Pieces - 多项式分段段数
标量 | 向量

描述样条的多项式分段的段数,单变元时以标量,多变元时以各变元段数组成的向量形式返回。

数据类型: Int

Order - 多项式阶数
标量 | 向量

描述样条的分段多项式的阶数,单变元时以标量,多变元时以各变元阶数组成的向量形式返回。

数据类型: Int

Dim - 维数
标量

目标函数的维数,以标量形式返回。

数据类型: Int

# 另请参阅

csape | csapi | csaps