y(10^6)=y(0) の周期信号を表す配列 y[x], x=0,1,2,...,10^6 があり、その導関数 dy/ を計算したい速い方法でdx。
私はスペクトル差法を試しました。
dy/dx = inverse_fourier_transform ( i*k fourier_transform(y)[k] ) .................(1)
結果は (y[x+1]-y[x-1])/2 とは異なります。つまり、有限差分法によって示唆されます。
どちらがより正確で、どちらがより高速ですか? 他の同等の方法はありますか?
以下は、結果の違いを理解するための努力です。
(1) の fourier_transform と inverse_fourier_transform の両方の合計を展開すると、dy/dx を y[x] と係数 a[x] の線形結合として表すことができます。これらの係数を計算したところ、(配列の長さが無限大になると) 1/n になるように見えます。n は導関数が調べられる場所までの距離です。隣接する 2 点のみを使用する有限差分法と比較すると、スペクトルの違いは非常に局所的ではありません。