主要内容

tpaps

薄板平滑花键

描述

例子

= tpaps (xystform是薄板平滑样条吗f对于给定的数据站点x (:, j)和给定的数据值y (:, j).的x (:, j)必须是平面上不同的点,值可以是标量、向量、矩阵,甚至是nd数组,而且值的个数必须和点的个数一样多。

薄板平滑样条f是加权和的唯一最小值吗

p E f + 1 p R f

Ef误差测量

E f j | y j f x j | 2

而且Rf)粗糙度测量

R f | D 1 D 1 f | 2 + 2 | D 1 D 2 f | 2 + | D 2 D 2 f | 2

这里,积分是对所有的R2, |z|2的所有元素的平方和z,Df的偏导数f关于它-th参数,因此被积函数涉及的二阶偏导f.函数选择平滑参数p(1 - p) / p等于矩阵对角线元素的平均值一个,A + (1-p)/p*eye(n)线性系统的系数矩阵n需要确定的平滑样条的系数。这确保了保持在插值的两个极端之间(当p接近于1系数矩阵本质上是一个)和完成平滑(当p接近于0系数矩阵本质上是单位矩阵的倍数)这是一个很好的初步猜测p

例子

= tpaps (xyp也输入平滑参数p, 0到1之间的数字。当平滑参数从0到1变化时,平滑样条变化,从最小二乘近似到数据的线性多项式p0,以薄板样条插值到数据时p1

(…P= tpaps(…)还返回最终样条结果中使用的平滑参数的值,无论是否指定p.这种语法对于您可以开始的实验非常有用[pp,P] = tpaps(x,y)并得到一个合理的初步猜测p

例子

全部折叠

下面的代码在31个随机选择的位置获得平滑函数的值,在这些值上添加一些随机噪声,然后使用tpaps以恢复底层精确的平滑值。为了说明tpaps在这种情况下,除了平滑样条外,代码还绘制了精确的值(作为黑球)以及从平滑值到相应噪声值的每个箭头。

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:),瓦尔斯,“我们”“markerfacecolor”“k”) quiver3 (xy (1:), xy(2:),担保,0 (1,nxy), 0 (1, nxy),...noisyvals-avals,“r”),持有

图中包含一个轴对象。坐标轴对象包含面、线、箭袋类型的3个对象。

下面的代码使用插值薄板样条到向量值数据值来构造一个平面到平面的映射,其中包含单位正方形 x | x j | 1 j 1 2 大约在单位圆盘上 x x 1 2 + x 2 2 1

N = 64;T = linspace(0,2*pi,n+1);T (end) = [];值= [cos(t);罪(t)];中心= values./repmat(max(abs(values)),2,1);St = tpaps(中心,值,1);fnplt(圣),轴平等的

图中包含一个轴对象。axis对象包含一个line类型的对象。

注意的选择1对于这里的平滑参数,得到插值。

输入参数

全部折叠

数据值的数据站点y为拟合,指定为多维数据的向量或单元格数组。样条f在每个数据站点上创建结x这样fx (j)) =y (:, j)对于所有的值j

对于多变量网格化数据,您可以指定x作为一个单元格数组,在每个变量维度中指定数据站点:fx1(我),x2 (j),……xn (k)) =y (:, i, j,…,k)

在创建样条期间拟合的数据值,指定为矢量、矩阵或数组。数据值y (:, j)可以是标量、矩阵或n维数组。同一数据站点给出的数据值x是平均的。

数据类型:|

平滑参数,指定为0到1之间的标量值,或为多元数据的单元格值数组。还可以为粗糙度度量权重指定值λ通过提供p作为一个向量。若要为多元数据提供粗糙度度量权重,请使用向量单元格数组。如果您提供了一个空数组,该函数将为选择一个默认值p根据网站的数据x的默认值1为粗糙度测量重量λ

平滑参数决定了对拥有的矛盾要求的相对权重f光滑或有f接近数据。为p= 0,f最小二乘直线拟合数据。为p= 1,f变分,或自然,三次样条插值。作为p从0移动到1,平滑样条从一个极端变化到另一个极端。

的有利范围p通常在1/(1 + ?h3./ 6),在那里h是数据站点的平均间距。的默认值p在这个范围内。对于均匀间隔的数据,可以期望与p= 1(1 +h3./60)和一些令人满意的平滑p= 1/(1 +h3./ 0.6)。你可以输入P > 1,但这种选择导致平滑样条甚至比变分三次样条插值更粗糙。

如果输入p为负或空,则函数使用默认值p

您可以指定粗糙度度量权重λ通过提供平滑参数p作为一个向量。这个向量的大小必须和x,与的值λ在间隔中(x(张)……(我)),因为I = 2:长度(x).输入向量的第一项p平滑度参数的期望值是多少p.通过提供粗糙度度量权重,可以使得到的平滑样条在区间的不同部分更平滑(具有较大的权重值)或更接近数据(具有较小的权重值)。粗糙度测量权重必须是非负的。

如果你有选择困难p但对噪音的大小有一些感觉y,考虑使用spaps (x, y, tol)代替。这个函数选择p使所测得的粗糙度尽可能小,但条件是所测得的误差不超过托尔.在这种情况下,误差测量通常等于的指定值托尔

数据类型:|

输出参数

全部折叠

样条,作为带有这些字段的结构返回。

样条的形式,返回为st-tp00st-tp10st-tp01,或st-tp

站点序列,以矩阵或多元数据数组的形式返回。

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

站点序列的个数。

描述样条的多项式块数,以标量或多元数据中每个变量块数的向量形式返回。

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

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

用于计算样条的平滑参数,作为标量或作为多元数据的标量值单元格数组返回。P之间的是0而且1

限制

平滑样条的确定涉及到一个线性系统的解,该系统具有与数据点一样多的未知数。由于这个线性系统的矩阵是满的,即使像这里的情况一样,当有超过728个数据点时使用迭代方案,求解也会花费很长时间。迭代的收敛速度受到p,越大越慢p是多少。因此,对于较大的问题,使用插值,即,p等于1,前提是你有时间。

版本历史

在R2006b中引入

Baidu
map