主要内容

立方平滑样条函数

这个例子展示了如何使用CSAPS.命令从曲线拟合工具箱™构建三次平滑样条。

CSAPS命令

命令CSAPS.提供了平滑样条。这是一个立方样条曲线,或多或少地遵循嘈杂数据的假定潜在趋势。由您选择的平滑参数确定平滑样条遵循给定数据的遵循程度。以下是文档的基本信息,缩写版本:

CSAPS三次平滑样条曲线。

值= CSAPS(x,y,p,xx)

返回对象的三次平滑样条曲线XX处的值

给定数据(x,y)并取决于平滑参数p,选择

从间隔[0 .. 1]。这种平滑样条曲线F最小化

p * sum_i w(i)(y(i) - f(x(i)))^ 2 +(1-p)*积分(d ^ 2 f)^ 2

例子:三次多项式的噪声数据

以下是一些试运行。我们从一个简单的立方中开始数据,q(x):= x ^ 3,污染有一些噪声的值,并选择平滑参数的值为.5。然后绘制产生的平滑值以及底层立方体和受污染的数据。

ξ= (0:.05:1);Q = @(x) x.^3;易= q (xi);randomStream = RandStream.create ('mcg16807''种子',23);YBAD = yi + .3 *(兰特(Randomstream,尺寸(xi)) - 。5);p = .5;XXI =(0:100)/ 100;ys = csaps(xi,ybad,p,xxi);情节(Xi,Yi,':',席,YBAD,“x”,xxi,ys,'r-')标题('清洁数据,嘈杂的数据,平滑值') 传奇(“准确”“吵”'平滑'“位置”'西北'

图中包含一个轴对象。具有标题清洁数据的轴对象,噪声数据,平滑值包含3个类型的对象。这些对象表示精确,嘈杂,平滑。

这里的平滑太过了。通过选择平滑参数P.当趋近于1时,我们得到一个更接近给定数据的平滑样条。我们试着p=.6,7,8,9,1,并绘制得到的平滑样条。

yy =零(5,长度(xxi));p = [.6 .7 .8 .9 1];j=1:5yy(j,:)=csap(xi,ybad,p(j),xxi);结束抓住在…上情节(第二十一章,yy);抓住标题(“平滑的平滑样条值”平滑参数的各种值')({传奇“准确”“吵”'p = 0.5'“p = 0.6”“p = 0.7”‘p=0.8’......“p=0.9”'p = 1.0'},“位置”'西北'

图中包含一个轴对象。具有平滑参数各种值的标题平滑样条线的轴对象包含8个line类型的对象。这些对象表示精确的、有噪声的、p=0.5、p=0.6、p=0.7、p=0.8、p=0.9、p=1.0。

我们看到平滑样条对平滑参数的选择非常敏感。即使对于P.= 0.9,平滑样条距基本趋势仍较远,而为P.= 1时,我们得到对(噪声)数据的插值。

实际上,使用的配方CSAPI.(p.235ff样条曲线实用指南)对独立变量的缩放非常敏感。对所用方程的简单分析表明敏感范围P.在周围1 /(1 +ε),ε:= h ^ 3/16,H邻居网站之间的平均差异。具体来说,您希望在数据时关闭p = 1 /(1 + epsilon / 100)和一些令人满意的平滑p = 1 /(1 +ε* 100)

下面的曲线显示了平滑样条值的平滑样条P.接近这个神奇的数字1 /(1 +ε).对于这种情况来说,看起来更有信息1-p因为这个神奇的数字,1 /(1 +ε),非常接近于1。

ε= ((xi(结束)习近平(1)/(元素个数(xi) 1)) ^ 3/16;1 - 1 /(1 +ε)
ans = 7.8124e-06
情节(Xi,Yi,':',席,YBAD,“x”)举行在…上标签=单元(1,5);j = 1:5 p = 1 /(1 + epsilon * 10 ^(J-3));YY(J,:)= CSAPS(XI,YBAD,P,XXI);标签{j} = [“1 - p = ', num2str (1 - p)];结束情节(XXI,YY)标题('平滑花键,用于平滑参数附近其“魔法”价值')图例([{“准确”“吵”},标签),“位置”'西北')举行

图中包含一个轴对象。带有标题平滑样条的轴对象用于平滑其“魔法”值附近的平滑参数包含7个类型的类型。这些对象表示精确,嘈杂,1-P = 7.8125E-08,1-P = 7.8125E-07,1-P = 7.8124E-06,1-P = 7.8119E-05,1-P = 0.00078064。

在该示例中,平滑样条曲线对幻数附近的平滑参数的变化非常敏感。距离1的一个似乎是这些的最佳选择,但您可能更喜欢超出此处的选择。

p = 1 /(1 + epsilon * 10 ^ 3);YY = CSAPS(XI,YBAD,P,XXI);抓住在…上情节(第二十一章,yy,“y”“线宽”,2)标题(sprintf)(“添加了1-p = %s的平滑样条,黄色”, num2str(1-p))

图中包含一个轴对象。具有标题的轴对象,为1-p = 0.0077519的平滑花键,黄色含有8个类型的线。这些对象表示精确,嘈杂,1-P = 7.8125E-08,1-P = 7.8125E-07,1-P = 7.8124E-06,1-P = 7.8119E-05,1-P = 0.00078064。

你们也可以提供CSAPS.错误重量,要多关注某些数据点。此外,如果您不提供评估站点xx, 然后CSAPS.返回平滑样条的ppform。

最后,CSAPS.还可以处理矢量值数据甚至多变量网格数据。

spaps命令

命令提供的立方平滑样条与建造的人不同CSAPS.只是选择的方式。以下是文档的缩写版本

SPAPS平滑样条。

[SP,VALUES] = SPAPS(X,Y,TOL)返回B-form,如果被询问,

给定的三次平滑样条f在X处的值

数据(x(i),y(:,i)),i = 1,2,...,n。

平滑样条f使粗糙度最小

F(D^2 F):=∫(D^2 F(t))^2 dt on X(1) < t < X(n)

在所有功能上,错误测量

e(f):= sum_j {w(j)*(y(:,j) - f(x(j)))^ 2:j = 1,...,n}

不大于给定的TOL。这里,D^mf表示第M个

f的导数,权重W的选择使得E(f)是

F(y-f)的复合梯形法则近似。

f被构造为的唯一极小值

ρ*E(f)+f(D^2f),

使用平滑的参数Rho如此选择,使得E(f)等于

托尔。因此,FN2FM(SP,'pp')应该(到四舍五入)相同

作为CPAPS(X,Y,RHO/(1+RHO))的输出。

公差与平滑参数

提供适当的公差可能更容易比平滑参数P.要求CSAPS..在前面的例子中,我们从区间中添加了均匀分布的随机噪声0.3 * -0.5 (. .0.5).因此,我们可以估计合理的价值托尔作为测量误差的值E.在这种噪音。

托尔((=数目。3 *(兰德(randomStream、大小(yi)))) ^ 2);

此图显示了由.请注意,错误权重被指定为统一的,这是它们的默认值CSAPS.

[sp, y,ρ]= spaps (xi, ybad、托尔(大小(xi)));情节(Xi,Yi,':',席,YBAD,“x”,xi,ys,'r-')标题(sprintf (清除数据,噪声数据,平滑值(1-p = %s), num2str(1/(1+rho))));传奇({“准确”“吵”'平滑'},“位置”'西北'

图中包含一个轴对象。标题为Clean Data, Noisy Data, Smoothed Values (1-p = 0.013761)的轴对象包含3个类型为line的对象。这些对象表示精确,嘈杂,平滑。

图标题显示了值P.你会用的CSAPS.精确地得到这些数据的平滑样条。

此外,另外,是由此提供的平滑花键CSAPS.当没有给定平滑参数时。在这种情况下CSAPS.选择参数通过某个ad hoc过程,该过程试图定位平滑样条对平滑参数最敏感的区域(类似于早期讨论)。

抓住在…上情节(第二十一章,fnval (csaps (xi, ybad)第二十一章),' - ')标题('清洁数据,嘈杂的数据,平滑值')({传奇“准确”“吵”“spaps,指定公差”......' caps,默认平滑参数'},“位置”'西北')举行

图中包含一个轴对象。标题为Clean Data, Noisy Data, Smoothed Values的轴对象包含4个类型为line的对象。这些对象代表精确的,嘈杂的,spaps,指定的公差,caps,默认平滑参数。

CSAPS与SPAPS

CSAPS.命令的不同在于指定特定的平滑样条的方式,通过平滑参数和公差。另一个区别是除了立方平滑花条外,还可以提供线性或五颜六色的平滑花键。

五次平滑样条比三次平滑样条在二阶导数移动越小的情况下效果越好。