主要内容

平滑样条函数

对平滑样条函数

如果数据有噪声,您可能需要使用平滑样条拟合它。或者,你可以使用平滑方法中的一种滤波和平滑数据

的平滑样条年代为指定的平滑参数p以及指定的权重w.平滑样条最小化

p w y 年代 x 2 + 1 p d 2 年代 d x 2 2 d x

如果没有指定权值,则假定所有数据点的权值为1。

p定义在0和1之间。p= 0产生与数据的最小二乘直线拟合,而p= 1产生三次样条插值。如果不指定平滑参数,则在“感兴趣范围”内自动选择。有趣的是p通常在1/(1+h3./ 6)h是数据点的平均间距,它通常比参数的允许范围小得多。因为平滑样条有一个相关的平滑参数,你可以认为这些拟合在某种意义上是参数。然而,平滑样条也是像三次样条或形状保持插值一样的分段多项式,在本指南中被认为是一种非参数拟合类型。

请注意

平滑样条算法是基于csaps函数。

文件里的核反应数据carbon12alpha.mat这里显示了三次平滑样条拟合。默认平滑参数(p= 0.99)产生最平滑的曲线。三次样条曲线(p= 1)遍历所有数据点,但不那么平滑。第三条曲线(p= 0.95)遗漏了大量的数据,并说明了“感兴趣的范围”是多么的小p可以。

交互式选择平滑样条拟合

在曲线拟合应用程序中,选择平滑样条从模型类型列表中。

您可以指定以下选项:

  • 要从数据中进一步更平滑地拟合,请单击<流畅按钮重复,直到绘图显示出你想要的平滑度。

  • 若要更接近数据,请单击粗糙>直到你对情节感到满意为止。

  • 或者,为平滑参数指定从0到1的任意值。0产生线性多项式拟合(对数据的最小二乘直线拟合),而1产生通过所有数据点的分段三次多项式拟合(三次样条插值)。

  • 点击默认的返回初始值。工具箱尝试选择适合您的数据的默认值。看到对平滑样条函数

例如:

  1. 载入数据对平滑样条函数通过输入:

    负载carbon12alpha

  2. 在曲线拟合应用程序中,选择X数据计数Y数据

  3. 选择平滑样条适合的类型。

  4. 尝试平滑参数值10.95,默认值为0.99。

拟合平滑样条模型适合函数

这个例子展示了如何使用适合函数拟合平滑样条模型到数据。

拟合平滑样条模型

加载数据并通过指定拟合平滑样条模型“smoothingspline”当调用适合函数。

负载ensof =适合(月、压力、“smoothingspline”);情节(f、月压力)

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象代表数据、拟合曲线。

查看计算平滑参数

再次创建模型并使用第三个输出参数查看计算的平滑参数。平滑参数为p的价值结构。默认值取决于数据集。

(f, gof) =适合(月、压力、“smoothingspline”);out.p
ans = 0.9000

使用以下方法指定平滑参数“SmoothingParam”

指定平滑参数为一个新的适合“SmoothingParam”选择。它的值必须在0到1之间。

f =适合(月、压力、“smoothingspline”“SmoothingParam”, 0.07);情节(f、月压力)

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象代表数据、拟合曲线。

使用以下方法指定平滑参数fitoptions

另外,使用fitoptions拟合前指定平滑参数。

选择= fitoptions (“方法”“顺利”“SmoothingParam”, 0.07);(f, gof) =适合(月、压力、“顺利”、选择);out.p
ans = 0.0700

作为替代“smoothingspline”,你可以使用csaps三次平滑样条函数或其他样条函数,允许更大的控制,你可以创建。看到关于曲线拟合工具箱中的样条

示例:三次和平滑样条的非参数拟合

这个例子拟合一些数据使用三次样条插值和几个平滑样条。

  1. 在工作区中创建变量:

    X = (4*pi)*[0 1 rand(1,25)];Y = sin(x) + 0.2 *(rand(size(x))- 0.5);

  2. 打开曲线拟合应用程序,输入:

    cftool

  3. 选择xyX数据Y数据列表。

    曲线拟合应用程序拟合并绘制数据。

  4. 通过选择三次样条插值拟合数据Interpolant适合类型和方法立方

    曲线拟合应用程序拟合并绘制三次样条插值。

  5. 进入适合的名字cubicsp

  6. 查看结果窗格。拟合优度统计数据如RMSE没有定义(如interpolants)。

    三次样条插值被定义为一个分段多项式,其结果是一个系数结构(p).结构中的“块”的数量比拟合的数据点的数量少一,每块的系数数是4,因为多项式次数是3。你可以检查系数结构p如果您将fit导出到工作区(例如,输入fitname每分钟).有关系数结构的信息,请参见构造和工作与ppform样条

  7. 创造另一个适合的比较。右击你的适合符合表并选择重复“cubicsp”

  8. 通过选择,用平滑样条拟合数据平滑样条

    平滑程度由平滑参数.默认的平滑参数值取决于数据集,并由工具箱自动计算。

    对于这个数据集,默认的平滑参数接近1,表明平滑样条接近三次,非常接近通过每个数据点。

  9. 将默认平滑参数命名为fitSmooth1.如果您不喜欢由默认平滑参数产生的平滑级别,您可以指定从0到1的任何值。0产生一个线性多项式拟合,而1产生一个通过所有数据点的分段三次多项式拟合。

    本文给出了光滑样条拟合的数值结果。

  10. 为了比较,创建另一个平滑样条拟合。右击你的适合符合表并选择重复“smooth1”.将平滑参数改为0.5命名fitSmooth2

  11. 比较你的三种匹配的情节。通过增加默认横坐标规模来探索超出数据限制的适合行为。改变坐标轴的极限工具>轴极限控制菜单项。

请注意

你的结果取决于随机的起始点,可能与描述的有所不同。

请注意,默认平滑参数生成的曲线比插值更平滑,但与数据非常吻合。在这种情况下,从默认值减少平滑参数将生成更平滑的曲线,但与数据不是很吻合。当平滑参数超过默认值时,相关的曲线将接近三次样条插值。三次样条和默认平滑样条对于内部点是相似的,但在端点是发散的。

另请参阅

相关的话题