Minimizerオブジェクトを使用して関数呼び出しの数を最小限に抑える方法を教えてください。ログから次のメッセージが表示されます。Pythin lmfit library:最小化関数を使用して関数呼び出しの数を制限する方法
関数呼び出しが多すぎます(最大%iに設定されています)!この最大値を大きくするには、minimize(func、params、...、maxfev = NNN)またはleastsq_kws [\ 'maxfev \']を設定してください。
from numpy import sqrt, pi, exp, loadtxt
from lmfit import Model
from lmfit import Minimizer
import matplotlib.pyplot as plt
data = loadtxt('data/model1d_gauss.dat')
x = data[:, 0]
y = data[:, 1]
def gaussian(x, amp, cen, wid):
"1-d gaussian: gaussian(x, amp, cen, wid)"
return (amp/(sqrt(2*pi)*wid)) * exp(-(x-cen)**2 /(2*wid**2))
gmodel = Model(gaussian)
result = gmodel.fit(y, x=x, amp=5, cen=1, wid=1,method= 'least_squares')
print(result.fit_report())
r = result.fit_report()
plt.plot(x, y, 'bo')
plt.plot(x, result.init_fit, 'k--')
plt.plot(x, result.best_fit, 'r-')
plt.show()
私は私がこれを推薦する場合
許容誤差があるまでデータを適合させることができますか?もしそうなら、そのコードスニペットは何ですか? – im281
@ im281 [here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html)に記載されているパラメータを使用できます。私はいくつかの例を加えました。 – sascha
優秀!それはまさに私が必要としたものです – im281