これは私のコードです (より大きなコードの例です):
from scipy.optimize import curve_fit
def func(x, a, b):
return a + b*x
xlist = [10, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230]
ylist = [0.0074999999999999997, 0.011875, 0.0057812499999999999, 0.0036458333333333334, 0.0020312500000000001, 0.0013125000000000001, 0.00098958333333333342, 0.00089285714285714283, 0.00074218750000000001, 0.00093749999999999997, 0.00071874999999999999, 0.00088068181818181821]
popt, pcov = curve_fit(func, xlist, ylist)
print(popt[0], popt[1])
ご覧のとおり、非常に単純なa + b*x
関数で非常に単純な適合を試みています。問題は、これが値を返すことです:
(-119.99689110581872, 1.0)
fora=popt[0]
およびb=popt[1]
zunzun.com との同じ適合により、より妥当な値が得られます。
a = 7.8372289537296004E-03
b = -3.9402329475524466E-05
まったく同じ機能のために。
ここで何が間違っていますか?
編集
以下のウォーレンは、これはバグである可能性があると述べました。そのように報告する必要がありますか、それともこれは予想される動作ですか?