主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

3次平滑化スプライン

この例では、曲线拟合工具箱™ のCSAPコマンドおよび垃圾コマンドを使用して,3次平滑化スプラインを作成する方法を示します。

CSAPコマンド

コマンドCSAPは、"平滑化"スプラインを提供します。これは、ノイズを含むデータの基となるトレンドの推定をある程度近似する 3.次スプラインです。選択した平滑化パラメーターによって、与えられたデータを平滑化スプラインがどの程度近似するかが決まります。基本情報として、ドキュメンテーションの要約版を次に示します。

三次平滑样条。

值=CSAP(X,Y,P,XX)

的三次平滑样条在XX处的值

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

从区间[0..1]开始,此平滑样条曲线f最小化

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

例: 3.次多項式のノイズを含むデータ

ここでは、試しにいくつかを実行してみます。単純な 3.次式q(x):=x^3のデータから開始し、値にノイズを追加して、平滑化パラメーターが .5.になるように値を選択します。次に、基にした 3.次式およびノイズ入りデータと共に、結果の平滑化された値をプロットします。

ξ= (0:.05:1);Q = @(x) x.^3;易= q (xi);randomStream = RandStream.create (‘mcg16807’,“种子”ybad=yi+.3*(rand(随机流,大小(xi))-.5);p=.5;xxi=(0:100)/100;ys=csap(xi,ybad,p,xxi);绘图(xi,yi,“:”习,ybad“x”,xxi,ys,“r-”)头衔(“干净数据、嘈杂数据、平滑值”)传奇(“准确”,“吵”,“平滑”,“位置”,“西北”)

この場合は平滑化されすぎています。平滑化パラメーターPを 1.に近づけることで、与えられたデータに近い平滑化スプラインが得られます。P = .6, .7, .8, .9, 1について試行し,結果の平滑化スプラインをプロットします。

yy=0(5,长度(xxi));p=[6.7.8.91];对于y(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”},“位置”,“西北”)

平滑化スプラインは、平滑化パラメーターの選択にかなり影響を受けることがわかります。P= 0.9 の場合でも平滑化スプラインがまだ基のトレンドから離れていますが、P= 1 の場合は (ノイズを含む) データに対する内挿が得られます。

実際に、插值生成三次样条函数が使用する定式化 (『样条的实用指南“の235 ffページ)は独立変数のスケーリングに大きな影響を受けます。使用される式を簡単に解析すると,ε:= h ^ 3/16および隣接するサイト間の平均差異をHとして、Pの影響を受ける範囲はおよそ1 /(1 +ε)となります。特に、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,yi,,“:”习,ybad“x”)举行标签=细胞(1、5);对于j=1:5p=1/(1+epsilon*10^(j-3));yy(j,:)=csap(xi,ybad,p,xxi);标签{j}=[“1-p=”,num2str(1-p)];结束地块(xxi,yy)名称('平滑样条曲线,用于在其“魔法”值附近平滑参数')([{传奇“准确”,“吵”},标签],“位置”,“西北”)举行

この例で、平滑化スプラインはマジック ナンバー付近の平滑化パラメーターの変化にかなり影響を受けます。これらから、1.から最も遠いものが最良の選択肢のようですが、それより良いものが必要な場合があります。

p=1/(1+ε*10^3);yy=csap(xi,ybad,p,xxi);保持地块(xxi,yy,“是的”,“线宽”, 2)标题(sprintf('添加了1-p=%s的平滑样条线,颜色为黄色', num2str(1-p))

誤差の重みを使用してCSAPを指定すると,あるデータ点に他より多くの注意を払うことができます。また,評価サイトxxを指定しない場合、CSAPは平滑化スプラインの 聚丙烯型を返します。

最後に、CSAPはベクトル値データおよび多変量グリッドデータを処理することもできます。

垃圾コマンド

コマンド垃圾により得られる 3.次平滑化スプラインは、その選択方法のみがCSAPで作成されたものと異なります。次に、垃圾のドキュメンテーションの要約版を示します。

SPAPS平滑样条曲线。

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

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

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

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

F(D^2f):=X(1)

对于所有函数f,误差测量

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

并不比给定的TOL大。这里,D^M f表示第M个

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

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

F构造为的唯一极小化器

乘以E(f) + f (D^2 f)

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

因此,FN2FM(SP,'pp')应该(直到舍入)相同

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

許容誤差と平滑化パラメーター

CSAPに必要な平滑化パラメーターPを指定するより,垃圾に適切な許容誤差を指定する方が簡単な場合があります。以前の例では、区間 0.3*[-0.5 .. 0.5] から、一様分布のランダムなノイズを追加しました。 したがって、そのようなノイズにおける誤差測定Eの値として、托尔に妥当な値を推定できます。

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

次のプロットは,垃圾で作成した結果として得られる平滑化スプラインを示しています。誤差の重みが均一になるように指定してあることに注意してください。これがCSAPにおける重みの既定値です。

[sp,ys,rho]=spap(xi,ybad,tol,one(size(xi));绘图(xi,yi,“:”习,ybad“x”,席,YS“r-”)标题(sprintf ('清洁数据、噪声数据、平滑值(1-p=%s)',num2str(1/(1+rho));图例({“准确”,“吵”,“平滑”},“位置”,“西北”)

この 图形のタイトルは、、これらのデータの正確な平滑化スプラインを取得するためにCSAPで使用するPの値を示しています。

さらに、平滑化パラメーターが指定されなかった場合にCSAPで求められる平滑化スプラインを次に示します。この場合,CSAPは,平滑化スプラインが(前の説明と同様に)平滑化パラメーターから最も影響を受ける領域を見つけようとするという,特別な手続きでパラメーターを選択します。

持有地块(xxi,fnval)(csaps(xi,ybad),xxi),'-')头衔(“干净数据、嘈杂数据、平滑值”)({传奇“准确”“吵”“spaps,指定公差”...'csaps,默认平滑参数'},“位置”,“西北”)举行

CSAPと 垃圾

CSAPコマンドと垃圾コマンドには、個々の平滑化スプラインを指定する方法に平滑化パラメーターを使用するか、許容誤差を使用するかの違いがあります。もう 1.つの違いは、垃圾は3次平滑化スプライン以外にも,線形平滑化スプラインまたは5次平滑化スプラインを提供できることです。

2.階微分をできるだけ動かしたくない状況では、5.次平滑化スプラインが 3.次平滑化スプラインよりも優れています。