此示例显示了如何使用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。然后绘制产生的平滑值以及底层立方体和受污染的数据。
XI =(0:.05:1);q = @(x)x。^ 3;yi = 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,':',xi,ybad,'X',xxi,ys,'r-') 标题('清洁数据,嘈杂的数据,平滑值') 传奇('精确的'那'嘈杂'那'平滑'那'地点'那'西北')
平滑是在这里过度的方式。通过选择平滑参数P.
更靠近1,我们获得更接近给定数据的平滑样条曲线。我们试着p = .6,.7,.8,.9,1
,并绘制所得到的平滑样条。
yy =零(5,长度(xxi));p = [.6 .7 .8 .9 1];为了j = 1:5yy(j,:) = csaps(xi,ybad,p(j),xxi);结尾抓住在情节(XXI,YY);抓住离开标题(“平滑的平滑样条值”平滑参数的各种值') 传奇({'精确的'那'嘈杂'那'p = 0.5'那'p = 0.6'那'p = 0.7'那'p = 0.8'那......'p = 0.9'那'p = 1.0'},'地点'那'西北')
我们看到平滑样条曲线对平滑参数的选择非常敏感。就算P.
= 0.9,平滑花键仍然远离潜在的趋势,而对于P.
= 1,我们得到(嘈杂)数据的interpolatt。
实际上,使用的配方CSAPI.
(p.235ff样条的实用指南)对独立变量的缩放非常敏感。对所用方程的简单分析表明敏感范围P.
在周围1 /(1 + epsilon)
, 和epsilon:= h ^ 3/16
, 和H
邻居网站之间的平均差异。具体来说,您希望在数据时关闭p = 1 /(1 + epsilon / 100)
和一些令人满意的平滑p = 1 /(1 + epsilon * 100)
。
下面的曲线显示了平滑样条值的平滑样条P.
靠近这个魔术号码1 /(1 + epsilon)
。对于这种情况来说,看起来更有信息1-P.
自魔法号码以来,1 /(1 + epsilon)
,非常接近1。
epsilon =((xi(xi(end)-xi(1))/(numel(xi)-1))^ 3/16;1 - 1 /(1 + epsilon)
ans = 7.8124e-06
情节(Xi,Yi,':',xi,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)标题('平滑花键,用于平滑参数附近其“魔法”价值') 传奇( [{'精确的'那'嘈杂'}, 标签],'地点'那'西北') 抓住离开
在该示例中,平滑样条曲线对幻数附近的平滑参数的变化非常敏感。距离1的一个似乎是这些的最佳选择,但您可能更喜欢超出此处的选择。
p = 1 /(1 + epsilon * 10 ^ 3);YY = CSAPS(XI,YBAD,P,XXI);抓住在情节(XXI,YY,'是'那'行宽',2)标题(Sprintf(“1-p =%s的平滑样条曲线被添加,黄色',num2str(1-p)))保持离开
您也可以提供CSAPS.
错误重量,要多关注某些数据点。此外,如果您不提供评估站点XX.
, 然后CSAPS.
返回平滑样条曲线的ppfform。
最后,CSAPS.
还可以处理矢量值数据甚至多变量网格数据。
命令提供的立方平滑样条吐
与建造的人不同CSAPS.
只在选择它的方式。以下是文档的缩写版本吐
:
擦拭平滑花键。
[SP,值] = SPAPS(x,y,tol)返回b形式,如果被问,
给定的X的值,用于给定的立方平滑样条
数据(x(i),y(:,i)),i = 1,2,...,n。
平滑花键F最小化粗糙度测量
f(d ^ 2 f):=积分(d ^ 2 f(t))^ 2 dt on x(1)
在所有功能上,错误测量
e(f):= sum_j {w(j)*(y(:,j) - f(x(j)))^ 2:j = 1,...,n}
没有比给定的tol更大。这里,d ^ m f表示m-th
f的衍生物。选择重量W使得e(f)是
F(Y-F)的复合梯形规则近似。
F构造为独特的最小化器
rho * e(f)+ f(d ^ 2 f),
使用平滑的参数Rho如此选择,使得E(f)等于
tol。因此,FN2FM(SP,'PP')应该是(直到圆周OFF)相同的
作为来自CPAPS的输出(X,Y,RHO /(1 + RHO))。
提供适当的公差可能更容易吐
比平滑参数P.
要求CSAPS.
。在我们之前的示例中,我们从间隔添加了均匀分布的随机噪声0.3 * [ - 0.5 .. 0.5]
。因此,我们可以估计合理的价值托
作为错误测量的值E.
在这种噪音。
tol = sum((。3 *(rand(randstream,尺寸(yi)) - 。5))。^ 2);
该图显示了由此构造的产生的平滑样条曲线吐
。请注意,错误权重指定为统一,这是它们的默认值CSAPS.
。
[sp,ys,rho] = spaps(xi,ybad,tol,一个(尺寸(xi)));情节(Xi,Yi,':',xi,ybad,'X',xi,ys,'r-')标题(Sprintf('清洁数据,嘈杂的数据,平滑值(1-p =%s)',num2str(1 /(1 + rho)))));传奇( {'精确的'那'嘈杂'那'平滑'},'地点'那'西北')
图标题显示了值P.
你会用的CSAPS.
为这些数据获得完全的平滑样条曲线。
此外,另外,是由此提供的平滑花键CSAPS.
当没有给出平滑参数时。在这种情况下CSAPS.
选择参数通过某个ad hoc过程,该过程试图定位平滑样条对平滑参数最敏感的区域(类似于早期讨论)。
抓住在绘图(XXI,FNVAL(CSAPS(XI,YBAD),XXI),' - ') 标题('清洁数据,嘈杂的数据,平滑值') 传奇({'精确的''嘈杂''拍,指定容忍'......'CSAPS,默认平滑参数'},'地点'那'西北') 抓住离开
这CSAPS.
和吐
通过平滑参数与公差,命令在指定特定平滑样条曲线的方式中不同。另一个不同之处在于吐
除了立方平滑花条外,还可以提供线性或五颜六色的平滑花键。
Quintic平滑花键优于在情况下的立方平滑样条曲线,当您希望尽可能少的衍生物移动。