主要内容

平滑样条函数

关于平滑样条

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

平滑样条年代构造为指定的平滑参数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可以。

选择平滑样条拟合交互式

  1. 在MATLAB中加载数据®命令行。

    负载carbon12alpha
  2. 打开曲线拟合器应用程序。

    curveFitter

    或者,在应用程序选项卡,在数学,统计和优化组中,单击曲线更健康

  3. 曲线更健康选项卡,在数据部分中,点击选择数据.在选择拟合数据对话框,选择随着X数据价值和计数随着Y数据价值。详细信息请参见选择数据适合曲线拟合器应用程序

  4. 曲线更健康选项卡,在适合类型部分,单击箭头打开图库,然后单击平滑样条平滑组。

  5. 合适的选项窗格中,可以指定平滑参数价值。

    拟合选项窗格,用于平滑样条拟合

    默认的平滑参数值是0.99941.应用程序尝试为您的数据选择一个合适的默认值。你可以更改平滑参数通过执行以下操作之一来获取值:

    • 要创建更平滑的拟合,请单击<流畅反复按下按钮,直到图形显示出你想要的平滑度。

    • 要创建更接近数据的粗略拟合,请单击粗糙>按钮,直到你对情节满意为止。

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

    • 点击默认的返回初始值。

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

方法的使用适合函数拟合平滑样条模型到数据。

拟合平滑样条模型

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

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

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

查看计算平滑参数

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

[f,gof,out] =适合(月,压力,“smoothingspline”);out.p
Ans = 0.9000

指定平滑参数“SmoothingParam”

属性的新拟合指定平滑参数“SmoothingParam”选择。取值范围为0 ~ 1。

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

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

指定平滑参数fitoptions

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

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

作为替代“smoothingspline”,你可以使用csaps三次平滑样条函数或其他样条函数,允许更好地控制您可以创建的内容。看到样条拟合介绍

比较三次和平滑样条拟合使用曲线拟合器

这个例子比较了三次样条插值拟合和平滑样条拟合使用曲线拟合应用程序。

  1. 创建数据x而且y

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

  2. 打开曲线拟合器应用程序。

    curveFitter

    或者,在应用程序选项卡,在数学,统计和优化组中,单击曲线更健康

  3. 曲线更健康选项卡,在数据部分中,点击选择数据.在选择拟合数据对话框,选择x随着X数据价值和y随着Y数据价值。

  4. 曲线更健康选项卡,在适合类型部分,单击箭头打开图库,然后单击Interpolant插值组。

  5. 合适的选项窗格中,指定方法作为三次样条.曲线拟合应用程序拟合和绘制三次样条插值。

    适合选项窗格的三次样条插值适合

  6. 重命名适合。在拟合表窗格中,双击适合的名字值并输入CubicSplineFit

  7. 查看结果窗格。一些拟合优度统计数据,如RMSE,没有定义Interpolant它们的值为NaN。

    结果窗格为三次样条插值拟合

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

  8. 创建另一个合适的比较。右键单击现有的配合CubicSplineFit拟合表选项卡,选择重复“CubicSplineFit”.将新匹配重命名为SmoothingSplineFit

  9. 曲线更健康选项卡,在适合类型部分,选择平滑样条健康。

    拟合选项窗格,用于平滑样条拟合

    合适的选项窗格中,平滑参数定义平滑的级别。应用程序会计算平滑参数这取决于数据集。对于此数据集,默认为平滑参数接近1,表示平滑样条接近三次,非常接近通过每个数据点。

    您可以通过指定来更改平滑级别平滑参数作为范围[0 1]内的非负标量。指定平滑参数作为0来创建一个线性多项式拟合。指定平滑参数作为1来创建一个分段三次多项式拟合,它通过所有的数据点。

  10. 看到结果窗格显示平滑样条拟合的数值结果。

    平滑样条拟合的结果窗格

  11. 比较您创建的两个拟合(三次样条插值拟合和平滑样条拟合)的图。这两种拟合在内部点上相似,但在端点上有分歧。

请注意

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

另请参阅

应用程序

功能

相关的话题