べき法則の依存関係を把握するために、実行しているシミュレーション コードからいくつかのデータを当てはめようとしています。線形フィットをプロットすると、データがうまくフィットしません。
データを適合させるために使用しているpythonスクリプトは次のとおりです。
#!/usr/bin/env python
from scipy import optimize
import numpy
xdata=[ 0.00010851, 0.00021701, 0.00043403, 0.00086806, 0.00173611, 0.00347222]
ydata=[ 29.56241016, 29.82245508, 25.33930469, 19.97075977, 12.61276074, 7.12695312]
fitfunc = lambda p, x: p[0] + p[1] * x ** (p[2])
errfunc = lambda p, x, y: (y - fitfunc(p, x))
out,success = optimize.leastsq(errfunc, [1,-1,-0.5],args=(xdata, ydata),maxfev=3000)
print "%g + %g*x^%g"%(out[0],out[1],out[2])
私が得る出力は次のとおりです: -71205.3 + 71174.5*x^-9.79038e-05
プロット上では、最小二乗法から期待されるのとほぼ同じように適合しているように見えますが、出力の形式が気になります。定数がゼロになると予想される場所(約30)に近いことを望んでいました。そして、10^-5 よりも大きな分数の電力依存性を見つけることを期待していました。
私は自分のデータを再スケーリングし、optimize.leastsq のパラメーターをいじってみましたが、うまくいきませんでした。私が達成しようとしていることは可能ですか、それとも私のデータがそれを許可していませんか? 計算にはコストがかかるため、より多くのデータ ポイントを取得することは簡単ではありません。
ありがとう!