Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

chbpnt

チェビシェフ・デムコ点

構文

tau = chbpnt(t,k)
chbpnt(t,k,tol)
[tau,sp] = chbpnt(...)

説明

tau = chbpnt(t,k) は、節点シーケンス t をもつ次数 k のチェビシェフ スプラインの極端なサイトです。これらは特に、節点シーケンス t をもつ次数 k のスプラインによってデータが内挿される場合に適したサイトです。それは、結果の内挿が、通常、スプライン空間から、tau で内挿される値をもつ関数への最適で一様な近似にきわめて近くなるからです。

chbpnt(t,k,tol) は、チェビシェフ スプラインを作成する反復プロセスで使用される許容誤差 tol も指定します。このプロセスは、スプラインの絶対最大局所的極値と絶対最小局所的極値の相対差分が tol より小さくなると終了します。tol の既定値は .001 です。

また、[tau,sp] = chbpnt(...) は、sp でチェビシェフ スプラインも返します。

すべて折りたたむ

関数augkntを使用して、0 が 10 個と 1 が 10 個の節点シーケンスを作成します。

k = 10;
t = augknt([0,1],k);

節点シーケンス t をもつ次数 10 のチェビシェフ スプラインのチェビシェフ・デムコ点を計算することによって、内挿サイトのベクトルを作成します。

sites = chbpnt(t,k);

チェビシェフ・デムコ点で関数sqrtを評価することによって、内挿点のベクトルを作成します。関数spapiを使用して、評価された点間を節点シーケンス t から 10 次スプラインで内挿します。t 内の節点は、スプライン近似が、0 と 1 で境界をもつ単一の多項式で構成されることを示しています。

interpolationPoints = sqrt(sites);
sp = spapi(t,sites,interpolationPoints)
sp = struct with fields:
      form: 'B-'
     knots: [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1]
     coefs: [-1.7088e-16 0.8842 -0.7101 2.4484 -1.1869 1.9678 0.3331 0.9940 0.9349 1]
    number: 10
     order: 10
       dim: 1

構造体 sp には、スプラインのプロパティが含まれます。spcoefs フィールドは、区間 [0,1] で平方根関数を近似する多項式の係数ベクトルです。

sp と平方根関数を同じプロット内に表示して比較します。

x = linspace(0,1,1000);

plot(x,sqrt(x))
hold on
fnplt(sp,'-',0.75)
legend(["square root function" "spline"],Location="best")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent square root function, spline.

プロットは、スプラインが平方根関数に密接に追従していることを示しています。

アルゴリズム

与えられた節点シーケンスと次数のチェビシェフ スプラインは、Remez アルゴリズムを使用して反復的に作成されます。初期推定として、シーケンス aveknt(t,k) で値 1 と −1 を交互にとるスプラインを使用します。例チェビシェフ スプラインの作成では、特定の例に適用された場合のプロセスのバージョンの 1 つが詳しく説明されています。

参考