主要内容

tpaps公司

薄板平滑花键

描述

例子

= tpaps(,是的)是薄板光滑样条曲线的形状f对于给定的数据网站x(:,j)以及给定的数据值Y(:,j).该x(:,j)必须是平面中的不同点,值可以是标量,向量,矩阵,甚至是nd - 阵列,并且必须与存在网站时必须完全多重值。

薄板平滑花键f是加权和的独特最小化器

电子 ( f ) + ( 1 ) ( f )

电子(f)误差测量

电子 ( f ) = j | 是的 ( : , j ) f ( ( : , j ) ) | 2

(f)粗糙度测量

( f ) = ( | D 1 D 1 f | 2 + 2 | D 1 D 2 f | 2 + | D 2 D 2 f | 2 )

在这里,积分是2,|z|2表示所有条目的平方之和z,和Df表示部分衍生物f关于它-因此被积函数包含f.该函数选择平滑参数以便(1-P)/ p等于矩阵对角线项的平均值A,有A+(1-p)/p*眼(n)线性系统的系数矩阵要确定的平滑样条的系数。这样可以确保保持在插值的两个极端之间(当接近1系数矩阵本质上是A)和完全平滑(何时接近0并且系数矩阵基本上是标识矩阵的倍数)。这是一个很好的猜测.

例子

= tpaps(,是的,)也输入了平滑参数,,一个介于0和1之间的数字。当平滑参数从0到1变化时,平滑样条曲线也会变化,从最小二乘近似到线性多项式的数据,当0,薄板样条interpolate在数据时1.

[......,] = tpaps(...)同时返回最终样条曲线结果中使用的平滑参数的值,无论是否指定. 你可以用它来做实验[pp,P]=tpaps(x,y)并获得合理的首先猜测.

例子

全部收缩

下面的代码在31个随机选择的位置获得平滑函数的值,向这些值添加一些随机噪声,然后使用tpaps公司恢复基本的精确平滑值。来说明tpaps公司在这种情况下,除了平滑样条曲线之外,代码绘图还是将精确值(作为黑球)以及从平滑值引导的每个箭头到相应的噪声值。

rng(23);nxy = 31;XY = 2 *(兰特(2,NXY) - 。5);vals = sum(xy。^ 2);Noisyvals = Vals +(兰特(尺寸(vals)) - 。5)/ 5;ST = TPAPS(XY,诺斯YVALS);fnplt(st),保持avals=fnval(st,xy);绘图3(xy(1,:),xy(2,:),VAL,“wo”,'markerfacecolor','K')Quiver3(XY(1,:),XY(2,:),Avals,Zeros(1,NXY),零(1,NXY),...诺斯yvals-avals,“r”),保持关闭

下面的代码使用一个插值薄板样条线来矢量值数据值,以构建一个从平面到平面的地图,它携带单位平方 { : | ( j ) | 1 , j = 1 : 2 } 大约在单元盘上 { : ( 1 ) 2 + ( 2 ) 2 1 } .

n=64;t=linspace(0,2*pi,n+1);t(结束)=[];值=[cos(t);sin(t)];centers=值./repmat(max(abs(values)),2,1;st=tpaps(中心,值,1);fnplt(st),轴等于

注意选择1对于此处的平滑参数,以获得插值。

输入参数

全部收缩

数据值的数据站点是的要适合,指定为矢量或作为多变量数据的单元阵列。花键f在每个数据站点创建节点就这样f(x(j)) =Y(:,j)对于所有值j.

对于多变量网格数据,可以指定作为一个单元格数组,它指定每个变维​​中的数据站点:f(x1(i),x2(j),... xn(k)) =:k,y.

创建样条曲线时要拟合的数据值,指定为向量、矩阵或数组。数据值Y(:,j)可以是标量,矩阵或- 统计数阵列。在同一数据站点提供的数据值平均值。

数据类型:单一的|

平滑参数,指定为0到1之间的标量值或多元数据值的单元格数组。也可以指定粗糙度度量权重的值λ.通过提供作为向量。为了为多变量数据提供粗糙度测量权重,请使用单元的传感器阵列。如果提供空数组,则该函数选择默认值根据数据站点和默认值1对于粗糙度测量重量λ..

平滑参数决定了相对权重,放置在矛盾的需求上f平滑的或有f靠近数据。对于= 0,f是个最小二乘拟合数据。对于= 1,f是个变形,或者自然,三次样条插值。作为从0移动到1,平滑样条曲从一个极端变为另一个。

有利范围通常接近1 /(1 +h/ 6),在哪里h是数据站点的平均间距。该函数选择默认值在这个范围内。对于等间距数据,可以使用= 1(1 +h/ 60)和一些令人满意的平滑=1/(1)+h/0.6)。你可以输入P> 1,但是这种选择导致平滑的样条甚至比变分立方样条插值更粗糙。

如果输入是负或空的,那么该函数使用默认值.

您可以指定粗糙度测量权重λ.通过提供作为一个向量。此矢量的大小必须与,带有输入值λ.在间歇期(x(i-1)... x(i)),用于i = 2:长度(x). 输入向量的第一个条目平滑度参数的所需值. 通过提供粗糙度度量权重,可以使生成的平滑样条线在间隔的不同部分更平滑(权重值更大)或更接近数据(权重值更小)。粗糙度度量权重必须为非负。

如果你选择困难但有一些感觉达到噪音的大小是的,考虑使用spaps(x,y,tol)相反。此函数选择使粗糙度测量值尽可能小,前提是误差测量值不超过. 在这种情况下,错误度量通常等于.

数据类型:单一的|

参数输出

全部收缩

样条曲线,作为与这些字段的结构返回。

样条的形式,返回ST-TP00.,ST-TP10,ST-TP01,或ST-TP..

站点序列,作为矩阵返回或作为多变量数据的阵列。

每一段多项式的系数,作为矩阵或多元数据的数组返回。

网站序列数。

描述样条曲线的多项式部分的数量,作为标量返回或作为多变量数据的每个变量中的片段的数量矢量。

目标函数的维度,作为标量返回。

包含所有给定中心的stform的基本间隔,以数组形式返回。

用于计算样条曲线的平滑参数,作为标量返回标量或作为多变量数据的标量值阵列。在。。。之间01.

限制

Smoothing样条曲线的确定涉及线性系统的解决方案,因为存在数据点。由于该线性系统的矩阵已满,因此求解也可能需要很长的时间,即使在此,当这里有超过728个数据点时使用迭代方案。迭代的收敛速度受到强烈影响,速度越慢,越大是。因此,对于大问题,使用插值,即,等于1,前提是你有时间。

引入R2006b