TPAP
薄板平滑样条
句法
tpaps(x,y)
tpaps(x,y,p)
[…,,,,p] = tpaps(...)
描述
tpaps(x,y)
是薄板平滑样条的柱形FFor the given data sitesx(:,j)
和给定的数据值y((:,j)
。Thex(:,j)
在平面中必须是不同的点,值可以是标量,向量,矩阵,甚至是ND阵列,并且必须有与站点一样多的值。
The thin-plate smoothing splineF是the unique minimizer of the weighted sum
在这里,积分是所有的r2,,,,|z|2denotes the sum of squares of all the entries ofz,,,,andd一世F表示部分衍生物F关于它的一世论点,因此集成涉及的第二部分衍生物F。平滑参数p
被选为((1-p)/p
等于矩阵的对角线条目的平均值一个
, 和a +(1-p)/p*眼(n)
线性系统的系数矩阵n
要确定的平滑样条的系数。这个选择p
旨在确保我们处于两个极端之间的插值之间(当p
是close to1
系数矩阵本质上是一个
)and complete smoothing (whenp
是close to0
系数矩阵实质上是身份矩阵的倍数)。这应该是一个很好的第一个猜测p
。
tpaps(x,y,p)
也输入平滑参数,,,,p
,在0到1之间的数字。随着平滑参数从0到1不等,平滑样条不一p
是0
,到薄板样条插值到数据时p
是1
。
[…,,,,p] = tpaps(...)
还返回实际使用的平滑参数。
例子
eXample 1.以下代码在31个随机选择的站点处获得平滑函数的值,向这些值添加一些随机噪声,然后使用TPAP
恢复基础的精确平滑值。说明如何很好TPAP
在这种情况下,除了平滑样条之外,代码图还确切的值(黑色球)以及从平滑值通往相应嘈杂值的每个箭头。
RNG(23);nxy = 31;xy = 2*(rand(2,nxy) - 。5);vals = sum(xy。^2);NoisyVals = Vals +(rand(size(vals)) - 。5)/5;st = tpaps(xy,noisyvals);fnplt(st),握住avals = fnval(st,xy);plot3(xy(1,:),xy(2,2,:),vals,'wo','MarkerfaceColor','k')Quiver3(xy(1,:),xy(2,2,:),avals,Zeros(1,nxy),零(1,nxy),... noisyvals-avals,'r')
eXample 2.以下代码使用插值薄板样条到矢量值数据值,以构造从平面到平面的地图,该地图载有单位正方形{X:|X((j)≤1,j= 1:2}大约在单元磁盘上{X:X(1)2+X(2)2≤ 1} , as shown by the picture generated.
n = 64;t = linspace(0,2*pi,n+1);t(end)= [];值= [cos(t);罪(t)];center = values./repmat(max(abs(Values):),2,1);st = tpaps(中心,值,1);FNPLT(ST),轴相等
注意选择1
For the smoothing parameter here, to obtain interpolation.
Limitations
平滑样条的确定涉及具有与数据点一样多的未知数的线性系统解决方案。由于该线性系统的矩阵已满,因此即使在这里有超过728个数据点时,求解也可能需要很长时间。该迭代的收敛速度受到强烈影响p
,并且较慢越大p
是。So, for large problems, use interpolation, i.e.,p
等于1,只有当您负担得起时间。