主要内容

3차평활화스플라

이예제에서는曲线拟合工具箱™의csapsspaps명령을사용하여3차평활화스플라을생성하는방법을보여줍니다。

Csaps명령

csaps명령은평활화스플라을제공합니다。평활화스플라인은잡음이있는데이터의추정되는기본추세를대략적으로따르는3차스플라인입니다。사용자가선택하는평활화파라미터는평활화스플라인이주어진데이터를얼마나근접하게따라갈지를결정합니다。다음기본정보에문서의내용이약되어있습니다。

三次平滑样条。

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

对象的三次平滑样条XX处的值

给定数据(X,Y),并根据平滑参数P选择

从区间[0 ..1]。平滑样条f最小化

P * sum_i W (i) (Y (i) - f (X (i))) ^ 2 + (1 - P) * (f D ^ 2) ^ 2积分

예:3차다항식의잡음이있는데이터

다음은몇차례의시험적실행입니다。간단한3차식Q (x) = x^3의데이터로시작해서잡음으로데이터를오염시키고,평활화파라미터의값을5로선택합니다。그런다음결과로생성되는평활화된값을기본3차식및오염된데이터와함께플로팅합니다。

Q = @(x) x.^3;Yi = q(xi);randomStream = RandStream.create(“mcg16807”“种子”, 23);Ybad = yi+。3 *(兰德(randomStream、大小(xi)));P = .5;Xxi = (0:100)/100;Ys = caps (xi,ybad,p,xxi);情节(xi,咦,“:”“x”第二十一章,y,的r -)标题(“干净的数据,有噪声的数据,平滑的值”)传说(“准确”“吵”“平滑”“位置”“西北”

图中包含一个轴对象。标题为Clean Data, noise Data, Smoothed Values的axes对象包含3个类型为line的对象。这些对象代表精确,噪声,平滑。

여기서는평활화가지나치게적용되었습니다。평활화파라미터p1를보다에가까운값으로선택하면주어진데이터에더가까운평활화스플라인을얻을수있습니다。P = .6, .7, .8, .9, 1을시도해보고,결과로생성되는평활화스플라marketing을플로팅합니다。

Yy = 0(5,长度(xxi));P =[。]6 .7 .8 .9 1];J =1:5 yy(J,:) = caps (xi,ybad,p(J),xxi);结束持有情节(第二十一章,yy);持有标题(平滑参数不同值的平滑样条)({传奇“准确”“吵”'p = 0.5''p = 0.6''p = 0.7''p = 0.8'...'p = 0.9''p = 1.0'},“位置”“西北”

图中包含一个轴对象。标题为平滑参数不同值的平滑样条的axis对象包含8个类型为line的对象。这些对象分别代表Exact, noise, 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+ /100)이면데이터를밀접하게따라가는반면,P = 1/(1+ *100)이면평활화가어느정도만족스러울것으로예상할수있습니다。

아래플롯은이매직넘버1 /(1 +ε)에 가까운p값에대한평활화스플라을보여줍니다。여기서는,매직넘버1 /(1 +ε)이1에매우가까우므로1 - p를살펴보는것이보다유용합니다。

= (xi(end)-xi(1))/(numel(xi)-1))^3/16;1 - 1/(1+)
Ans = 7.8124e-06
情节(xi,咦,“:”“x”)举行标签= cell(1,5);J =1:5 p =1 /(1+ *10^(J -3));Yy (j,:) = caps (xi,ybad,p,xxi);标签{j} = [“1 - p = ', num2str (1 - p)];结束情节(第二十一章,yy)标题(平滑样条平滑参数接近它的“魔术”值)传说([{“准确”“吵”},标签),“位置”“西北”)举行

图中包含一个轴对象。axis对象的标题为Smoothing Splines for Smoothing Parameter Near Its 'Magic' Value,包含7个类型为line的对象。这些对象分别代表Exact, noise, 1-p= 7.812125 -08, 1-p= 7.812125 -07, 1-p= 7.8124e-06, 1-p= 7.8119e-05, 1-p= 0.00078064。

이예제에서평활화스플라인은매직넘버에가까운평활화파라미터의변동에매우민감합니다。1)에서가장먼값의피팅이가장좋은선택으로여겨지지만,그보다큰값을선호할수도있습니다。

P = 1/(1+ *10^3);Yy = caps (xi,ybad,p,xxi);持有Plot (xxi, yy,“y”“线宽”, 2)标题(sprintf(添加1-p = %s的平滑样条,以黄色显示, num2str(1-p)))等待

图中包含一个轴对象。添加标题为The Smoothing Spline For 1-p = 0.0077519的坐标轴对象,在黄色中包含8个类型为line的对象。这些对象分别代表Exact, noise, 1-p= 7.812125 -08, 1-p= 7.812125 -07, 1-p= 7.8124e-06, 1-p= 7.8119e-05, 1-p= 0.00078064。

다른데이터점보다일부데이터점에더집중하기위해csaps에오차가중치를함께제공할수도있습니다。또한,계산지점xx를제공하지않을경우,csaps는평활화스플라의ppform을반환합니다。

마지막으로,csaps는벡터값데이터와그리딩된다변량데이터까지도처리할수있습니다。

Spaps명령

spaps명령이제공하는3차평활화스플라과csaps에서생성되는3차평활화스플라은스플라이선택되는방식만다릅니다。spaps에대한문서의내용이아래에약되어있습니다。

SPAPS平滑样条。

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

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

data (X(i),Y(:,i)), i=1,2,…, n。

平滑样条f使粗糙度测量最小化

F(D²F):=∫(D²F(t))²dt对X(1) < t < X(n)

对所有函数f进行误差测量

E (f): = sum_j {W (j) * (Y (:, j) - f (X (j))) ^ 2: j = 1,……n}

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

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

F(y-f)的复合梯形规则逼近。

F构造为的唯一最小值

E(f) + f (D²f)

平滑参数RHO的选择使得E(f)等于

托尔。因此,FN2FM(SP,'pp')应该是相同的(直到舍入)

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

허용오차와평활화파라미터비교

csaps에필한평활화파라미터p를제공하는것보다spaps에대해적합한허용오차를제공하는것이더쉬울수있습니다。이전예제에서는구간0.3 * -0.5 (. .0.5)에서균등분포된랜덤잡음을추가했습니다。따라서이잡음에서托尔의합리적값을오차측도e의값이라고추정할수있습니다。

Tol = sum((。3 *(兰德(randomStream、大小(yi)))) ^ 2);

다음플롯은spaps로생성된평활화스플라을보여줍니다。참고로,오차가중치는균일하도록지정되어있으며,이는csaps의디폴트값입니다。

[sp,ys,rho] = spaps(xi,ybad,tol,ones(size(xi)));情节(xi,咦,“:”“x”的r -title(sprintf(“干净数据,有噪声数据,平滑值(1-p = %s)”, num2str(1/(1+rho))));传奇({“准确”“吵”“平滑”},“位置”“西北”

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

图제목에는이러한데이터에대해이평활화스플라인과정확히똑같은결과를얻기위해csaps에서사용할p의값이@ @시됩니다。

다음은평활화파라미터가주어지지않은경우csaps가제공하는평활화스플라입니다。이 경우csaps는(앞서의논의와유사하게)평활화스플라인이평활화파라미터에가장민감한영역을찾기위해시도하는어떤임시적인절차를통해파라미터를선택합니다。

持有情节(第二十一章,fnval (csaps (xi, ybad)第二十一章),“- - -”)标题(“干净的数据,有噪声的数据,平滑的值”)({传奇“准确”“吵”'spaps,指定公差'...caps,默认平滑参数},“位置”“西北”)举行

图中包含一个轴对象。标题为Clean Data, noise Data, Smoothed Values的axes对象包含4个类型为line的对象。这些对象表示Exact, noise, spaps,指定公差,caps,默认平滑参数。

Csaps와spaps비교

csaps명령과spaps명령은구체적인평활화스플라인을지정하는방식(평활화파라미터대허용오차)이다릅니다。또다른차이점은spaps는3차평활화스플라인외에도1차또는5차평활화스플라인을제공할수있다는것입니다。

5차평활화스플라인계은2도함수가가능한한적게움직이면좋을상황에서차3평활화스플라인보다유용합니다。