数学において、三角関数補間とは、三角関数多項式を用いた補間のことです。補間とは、与えられたデータ点を通る関数を求めるプロセスです。三角関数補間の場合、この関数は三角関数多項式、つまり、与えられた周期の正弦と余弦の和でなければなりません。この形式は、周期関数の補間に特に適しています。
重要な特殊ケースは、与えられたデータ点が等間隔である場合で、この場合、解は離散フーリエ変換によって与えられます。
次数Kの三角多項式は次の形式になります。
この式には 2 K + 1 個の係数a 0、a 1、 … a K、b 1、 …、b Kが含まれており、関数がN個の点を通過するようにこれらの係数を計算したい。
三角多項式は周期2πの周期関数であるため、N個の点は1周期内に分布し、順序付けることができる。
(一般的に、これらの点が等間隔である必要はありません。)補間問題は、三角多項式p が補間条件を満たすような係数を見つけることです。
複素平面で定式化すると、問題はより自然になります。三角多項式の式は次のように書き換えることができます。 ここでiは虚数単位である。z = e ixとすると、これは次のようになる。
と
これにより、三角関数補間の問題は、単位円上の多項式補間の問題に帰着する。三角関数補間の存在と一意性は、多項式補間に関する対応する結果から直ちに導かれる。
複素平面における三角関数補間多項式の定式化に関する詳細については、『フーリエ多項式を用いた補間』 の156ページを参照してください。
上記の条件の下では、データ点の数Nが多項式の係数の数以下、すなわち N ≤ 2 K +1である限り、任意のデータ点集合 { x k , y k }に対して問題の解が存在します( N > 2 K +1の場合、解が存在する場合と存在しない場合があります)。さらに、補間多項式は、調整可能な係数の数がデータ点の数と等しい場合、すなわちN = 2 K + 1 の場合に限り一意です。この記事の残りの部分では、この条件が成り立つと仮定します。
点の数Nが奇数、例えばN=2K+1の場合、複素平面上の多項式表現にラグランジュの多項式補間公式を適用すると、解は次の形式で表すことができます。
どこ
その要因 この式では、複素平面の定式化には負のべき乗も含まれているという事実を補正します。したがって、多項式表現ではないこの表現の正しさは、以下の点を観察することで容易に検証できる。そしてそれはは、右のべき乗の線形結合です。. IDを使用すると
係数次のように書くことができます
点の数Nが偶数、例えばN=2Kの場合、複素平面上の多項式表現にラグランジュの多項式補間公式を適用すると、解は次の形式で表すことができます。
どこ
ここで定数はは自由に選択できます。これは、補間関数( 1 )に奇数個の未知定数が含まれているためです。一般的な選択は、最高周波数が定数倍の形であることを要求することです。つまり、項は消滅するが、一般に最高周波数の位相は次のように選択できる。式を取得するには( 2)を用いると、 ( 3)は次の形式で書けることがわかる。
これにより、
そして
分母にゼロが含まれることで無限大が生じるのを避けるため、注意が必要であることに注意してください。
ノードが等距離である、つまり
詳細はジグムントを参照してください。
(4)を用いることでさらに簡略化することは明白なアプローチだが、明らかに複雑である。より単純なアプローチは、ディリクレ核を考えることである。
どこ奇妙だ。は、右のべき乗の線形結合です。そして満たす
これら2つの特性は係数を一意に定義するため( 5 )において、以下が導かれる。
ここで、sinc関数は特異点を防ぎ、次のように定義されます。
のためにさらに、ディリクレ核を次のように定義します。
また、容易にわかるように、は、右のべき乗の線形結合です。、という用語を含みませんそして満たす
これらの性質を用いると、係数は次のようになる。(6)は次のように与えられる。
ご了承ください含まれていません同様に。最後に、関数に注意してください。すべての点で消滅するしたがって、この項の倍数は常に加算できますが、通常は省略されます。
上記のMATLAB実装はここにあり、以下のとおりです。
function P = triginterp ( xi,x,y ) % TRIGINTERP 三角関数による補間。% 入力: % xi 補間関数の評価点 (ベクトル) % x 等間隔の補間ノード (ベクトル、長さ N) % y 補間値 (ベクトル、長さ N) % 出力: % P 三角関数による補間値 (ベクトル) N = length ( x ); % 指定された独立変数の間隔を調整します。h = 2 / N ; scale = ( x ( 2 ) - x ( 1 )) / h ; x = x / scale ; xi = xi / scale ; % 補間関数を評価します。P = zeros ( size ( xi )); for k = 1 : N P = P + y ( k ) * trigcardinal ( xi - x ( k ), N ); endfunction tau = trigcardinal ( x,N ) ws = warning ( 'off' , 'MATLAB:divideByZero' ); % 偶数と奇数のNで形式が異なります。if rem ( N , 2 ) == 1 % 奇数tau = sin ( N * pi * x / 2 ) ./ ( N * sin ( pi * x / 2 )); else % 偶数tau = sin ( N * pi * x / 2 ) ./ ( N * tan ( pi * x / 2 )); end warning ( ws ) tau ( x == 0 ) = 1 ; % x=0 の値を固定点x nが等間隔に配置されている特殊なケースは特に重要です。この場合、次のようになります。
データ点y nを係数a k、b kにマッピングする変換は、次数Nの離散フーリエ変換(DFT)から得られます。
(上記の問題の定式化の都合上、ここでは奇数個の点に限定して議論を進めています。これは必ずしも必要ではありません。偶数個の点の場合は、ナイキスト周波数に対応する別のコサイン項を含める必要があります。)
等間隔の点に対するコサインのみの補間(点が偶対称である場合は三角関数補間に相当)は、1754 年にAlexis Clairautによって扱われました。この場合、解は離散コサイン変換に相当します。奇対称に対応する等間隔の点に対するサインのみの展開は、 1762 年にJoseph Louis Lagrangeによって解決され、その解は離散サイン変換です。DFT を生み出す完全なコサインとサインの補間多項式は、1805 年頃の未発表の研究でCarl Friedrich Gaussによって解決され、その時点で彼はそれを迅速に評価するための高速フーリエ変換アルゴリズムも導出しました。Clairaut、Lagrange、Gauss は皆、有限個の観測点から惑星、小惑星などの軌道を推測する問題の研究に関心を持っていました。軌道は周期的であるため、三角関数による補間が自然な選択であった。Heideman et al. (1984)も参照のこと。
Chebfunは、関数計算のためにMATLABで記述された完全統合型ソフトウェアシステムであり、周期関数の計算に三角関数補間とフーリエ展開を使用します。Chebfunには、三角関数補間に関連する多くのアルゴリズムがすぐに利用できます。いくつかの例はこちらで確認できます。