主要内容

splinetool

尝试一些样条近似方法

描述

splinetool打开样条工具,它可以让你实验各种样条近似方法。它为您提供了数据的选择,包括从工作区导入一些数据的选项。

例子

splinetool (xy打开带有指定数据的工具x而且y,它们必须是相同长度的向量。

例子

全部折叠

运行这段代码,打开样条工具,对有噪声的数据进行实验。

X = linspace(1,pi,101);Y = cos(x)+(rand(size(x))-.5)/10;splinetool (x, y)

这个例子展示了如何在样条工具中探索三次样条插值可用的各种结束条件。

  1. 类型splinetool在命令行。

  2. 选择导入自己的数据从初始屏幕,并接受默认功能。您应该看到以下显示。

    样条工具显示三次样条插值近似与非结结束条件

    默认近似是带有非结结束条件的三次样条插值。

    向量x数据站点的linspace(0, 2 *π,31)这些值是cos (x).这不同于简单地提供向量y其中余弦函数被显式地记录为底层函数。因此,图中显示的误差是样条中作为余弦的近似值的误差,而不是作为给定值的近似值。注意由此产生的相对较大的误差约5 e-5,在端点附近。

  3. 为了进行比较,请遵循以下步骤:

    1. 点击近似值列表

    2. 近似法中,选择完整的从列表中结束条件

    3. 由于余弦函数的一阶导数是正弦,因此将一阶导数的值调整到左端和右端已知的零值。

    这个过程的结果如下所示。右端斜率只有四舍五入时为零。底线告诉您该工具使用该函数csape来创建样条。

    样条工具显示了三次样条插值近似与非结结束条件和完全结束条件的比较。

    误差的改进只有大约5 e-6

  4. 为了进一步比较,请遵循以下步骤:

    1. 点击近似值列表

    2. 近似法中,选择自然从列表中结束条件

    请注意接近端点的近似的恶化,误差约为2 e - 3,这比没有结的情况要糟糕得多。

  5. 对于最后的比较,请遵循以下步骤:

    1. 点击近似值列表

    2. 因为余弦函数是周期的,in近似法中,选择周期从列表中结束条件

    请注意近似值的显著改进,误差回到了大约5 e-6,特别是与自然结束条件。

本例使用样条工具中的三次样条插值和最小二乘近似来确定拖拽汽车的初始加速度的估计。

  1. 类型splinetool在命令行上,或者如果工具已经打开,单击文件>重启

  2. 选择理查德·塔皮亚的飙车数据.数据显示了拖曳车行驶的距离作为时间的函数。消息窗口要求您通过将初始速度设置为零来估计初始加速度。点击好吧,或按空格键或进入,删除消息窗口。

  3. 近似法中,选择完整的从列表中结束条件

  4. 通过将左端点的一阶导数改为零来调整初始速度。

  5. 求初始加速度的值,由左端点的二阶导数给出。你可以在这个端点的一阶导数和二阶导数之间切换点击左端按钮。二阶导数的值应该在187在选定的单位中。选择查看> Show二阶导以图形方式查看结果。

  6. 如需比较,请按,然后选择最小二乘近似随着近似法.使用此方法,您不能再指定结束条件。相反,您可以改变方法的顺序。验证初始加速度接近三次插值值。

    这个过程的结果如下所示。

    样条工具显示最小二乘近似为4阶的理查德塔皮亚的飙车数据

这个例子鼓励你以这样的方式放置5个内部结,三次样条的最小二乘近似的绝对误差不大于.04点无处不在。

  1. 类型splinetool在命令行上,或者如果工具已经打开,单击文件>重启

  2. 选择钛热数据

  3. 选择最小二乘近似随着近似方法。

  4. 请注意,由于没有内部结,所以这个选择与数据的近近性有多差。若要查看当前结并添加新结,请选择数据,断裂/结,重量.结现在被列在,并在数据图中显示为垂直线。只有两个末端结点,每个结点的数量都是4。

  5. 在数据图中右键单击并选择添加结.此选项显示可供您用鼠标移动的十字准星。它的精确水平位置显示在结列表下面的编辑字段中。鼠标单击将在十字准星的当前位置放置一个新结。一种可能的策略是在绝对误差最大的地方添加结,如数据图下面的辅助图所示。

    样条工具显示钛热数据和两个末端结的最小二乘近似

    右键单击并选择复制结时,你增加了当前结的多重性,这体现在它的重复出现上.要删除特定的结,首先在结列表或数据图中选择它,然后在图中右键单击并选择删除结

  6. 你也可以选择使用6个多项式部分的近似,这对应于5个内部结点。要指定此选项,请输入6作为#块数据,断裂/结,重量

  7. 在你有了五个内部结后,尝试通过移动结来减小误差。若要选择要移动的结,请在图形中单击其垂直线,然后使用下面的控件数据,断裂/结,重量并观察误差是如何随着绳结的运动而变化的。您还可以使用编辑字段来覆盖当前的结位置。也试着调整,它重新分配当前的结序列。

  8. 使用复制近似值列表保存任何好的结分布供以后使用。将复制的近似重命名为lstsqr通过使用重命名.要返回最初的近似,请在近似值列表

这个例子使用样条工具平滑样条。

  1. 类型splinetool在命令行,或者如果工具已经打开,单击文件>重启

  2. 选择钛热数据

  3. 近似法中,选择平滑样条

  4. 不同参数在0和1之间,这将近似值从最小二乘直线近似值更改为“自然”三次样条插值。

  5. 不同宽容在0和某个较大的值之间.近似变化从最好的可能之一,“自然”三次样条插值,到最小二乘直线近似。

  6. 当你增加参数价值或减少宽容值时,误差减小。然而,误差越小,粗糙度越大,这是由二阶导数的大小来衡量的。要查看此结果,请选择视图>显示二阶导数改变参数而且宽容再次强调价值观。

  7. 中的权重粗糙度的测量,允许一个更准确但不太光滑的近似在峰值区域,同时有一个更光滑,不太准确,近似远离峰值区域。

    1. 选择粗糙度权重的跳跃数据,断裂/结,重量

    2. 选择视图>显示二阶导数

    3. 选择数据中峰值左侧的任何数据点。

    4. 将所选站点的跳转设置为-1通过在它下面的编辑字段中更改它的值。由于第一个站点间隔的粗糙度权重为1,您刚刚将突出显示的站点右侧的粗糙度权重设置为0。相应的,该位置左侧的二阶导数相对较小。

    5. 选择数据中峰值右侧的任何数据点。

    6. 将跨所选站点的跳转设置为1.由于高亮显示的站点左侧的粗糙度权重为0,因此您刚刚将高亮显示的站点右侧的粗糙度权重设置为1。相应地,该位置右侧的二阶导数也变得相对较小。总的效果是一个非常平滑但不太准确的拟合远离峰值,而在峰值区域,样条拟合要好得多,但二阶导数要大得多,如下面的辅助图所示。

      在粗糙度权重有跳跃的位置,二阶导数也有相应的跳跃。如果你增加参数值时,越过峰面积的误差减小,但二阶导数仍然相当大,而远离峰面积则相反。

      样条工具显示一个平滑的样条4阶钛热数据

输入参数

全部折叠

数据站点,指定为相同长度的向量y.数据站点不需要是不同的或有序的,但必须至少有两个不同的站点。

数据值,指定为相同长度的向量x

提示

样条工具如下图所示,将三次样条插值与平滑样条对通过向余弦函数添加噪声创建的样本数据进行比较。

样条工具显示三次样条插值的比较和平滑样条上创建的样本数据添加噪声余弦函数

选择近似方法

该工具支持的近似方法和选项如下所示。金宝app

近似法

选项

三次插值样条

调整结束条件的类型和值。

平滑样条

选择三次(阶4)和五次(阶6)样条。调整公差和/或平滑参数的值。在误差和粗糙度测量中调整权重。

最小二乘近似

将顺序从1改为14。默认顺序是4,它给出三次近似样条。修改多项式片段的个数。增加和移动结,以改善适合。调整误差测量中的权重。

样条插值

将顺序从2改为14。默认的顺序是4,它给出了三次样条插值。如果提供的默认结不令人满意,你可以移动它们来改变适合度。

您可以生成和比较相同数据的几个近似值。其中一个近似值总是用较粗的线宽标记为“current”。可供选择的显示器如下:

  • 数据图。它显示:

    • 数据

    • 选择用于显示的近似值近似值列表

    • 当前结序或当前断序

  • 当前近似的辅助图(如果查看)。控件中的任一项都可以查看该图视图菜单。它显示了以下其中一种:

    • 一阶导数

    • 二阶导数

    • 错误

默认情况下,误差是给定数据值与数据站点近似值之间的差值。特别是,当近似值是一个插补时,误差为零(直到四舍五入)。但是,如果通过指定函数来提供数据值,则显示的错误是该函数与当前近似值之间的差值。如果将数据图的y标签更改为函数的名称,也会发生这种情况。

尝试菜单选项

方法对图形进行注释和打印文件>打印到图菜单。

类将数据和近似值导出到工作区,以供进一步使用或分析文件>导出数据而且文件>导出样条菜单,分别。

可以创建文件>生成代码菜单中的函数文件,可用于从原始数据生成当前显示的任何或所有图形。该文件还为您提供了用于生成当前图形的命令的书面记录。

你可以保存,用复制按钮,在你进一步实验之前的电流近似。如果稍后单击保存的近似值,该工具将恢复所有内容,包括在构造保存的近似值中使用的数据。即使在处理其他近似值时编辑了数据,保存的近似值也会保持不变。

控件中选择适当的项,可以添加、删除或移动数据、结和断线编辑菜单。

控件可以在图形中切换网格或图例工具菜单。

版本历史

R2006a之前介绍