もっと複雑な問題に移る前に、私はcurve_fit
を使って単純な正弦波(雑音でもない)をテストとして試そうとしています。残念ながら、それは遠隔で正しい答えを与えることさえありません。ここに私の構文です:curve_fitが正弦波でも失敗する
x = linspace(0,100,300)
y = sin(1.759*x)
def mysine(x, a):
return sin(a*x)
popt, pcov = curve_fit(mysine, x, y)
popt
array([ 0.98679056])
そして、私は最初の推測(たとえば1.5)しようとした場合:
popt, pcov = curve_fit(mysine, x, y, p0=1.5)
popt
array([ 1.49153365])
...正しい答えほど遠いまだありません。
私は、関数がどのくらいうまくサンプリングされているかを考えれば、フィットがうまくいかないことに驚いていると思います。
ありがとう、regeirk - 私は大いに感謝します!乾杯、ダン。 –