私はいくつかのデータの導関数を計算しようとしていますが、私は有限差分とスペクトル法出力の出力を比較しようとしていました。しかし、結果は非常に異なり、私は正確に理由を把握することはできません。`numpy.diff`と` scipy.fftpack.diff`は微分時に異なる結果を出します
は
import numpy as np
from scipy import fftpack as sp
from matplotlib import pyplot as plt
x = np.arange(-100,100,1)
y = np.sin(x)
plt.plot(np.diff(y)/np.diff(x))
plt.plot(sp.diff(y))
plt.show()
オレンジ出力fftpack
出力される出力することを検討してください。微妙なことを心配しないでください。これは単なる例のためです。
なぜ、それらはどう違うのですか?彼らは(ほぼ)同じではないでしょうか?
fftpack.diff
の周期キーワードでさまざまな振幅を補正できることは間違いありませんが、どの周期が正しいかはわかりません(私はperiod=1
だと思っていましたが動作しません)。
また、numpyを使用して独自のスペクトル差別化を行うにはどうすればよいですか?
私は単純にその 'period'考えていましたある測定値と他の測定値との間の期間を参照している(したがって、私の場合は「1」)。しかし、ええ、これは明らかに多くの意味があります。私が理解したところで、私はnumpyでfftに 'i * 2 * pi'を掛けて再現することもできます。 – TomCho