1

scipy から、interpolate.splrep および interpolate.splev 関数を使用して、データ セットを補間しています。当然のことながら、データ セットの端に近い補間値を取得しようとすると、これはうまく機能しません。

私は回避策を思いつきました (データセットの最後の「通常の」エントリと同じ値を持つ 2 つの追加エントリによってデータセットを拡張します。これは機能しているようです)、別の補間関数を使用する必要があるかどうか疑問に思っています、またはこれに対処する一般的な方法がある場合。

前もって感謝します!

4

1 に答える 1

0

残念ながら私はscipyに精通していませんが、おそらくこれが役立つでしょう:

これらは多項式スプライン関数であるため、実際の多項式でエッジ近くのデータセットを実際に補間できます。簡単です。

(xi,yi), i=1..n のような点のデータセットがあると仮定しましょう。splerp 関数から、ポイント '2' (df_second') と 'n-1' (df_before_last) で一次導関数 (実際には有限の差が必要です) を見つけることができます。次に、線形方程式の 2 つのシステムが必要です。

a1*x1^2 + b1*x1 + c1 = y1
a1*x2^2 + b1*x2 + c1 = y2
2*a1*x2 + b1 = df_second

a2*xn^2 + b2*xn + c2 = yn
a2*x(n-1)^2 + b2*x(n-1) + c2 = y(n-1)
2*a2*x(n-1) + b2 = df_before_last

この方程式を解くと、次の 2 つのポリモンが得られます: a1*x^2 + b1*x + c1 と a2*x^2 + b2*x + c2 は補間され、スプライン関数にスムーズにアクセスされます。

実際には、システムに方程式を追加するだけで、多項式の次数を上げて、最初と最後のポイントに内挿グラフィックスの曲率と角度を設定できます。

于 2009-11-13T12:38:51.500 に答える