2016-01-24 45 views
-1

我正在使用curve_fit函數來查找兩個係數,並且直到我將maxfev更改爲更大的值之後才能得到結果,因爲我的錯誤是'maxfev = 600已達到',所以我採用了全部猜測並將maxfev=10000添加到我的curve_fit函數中,這似乎工作。 我的問題是:什麼是maxfev?它有什麼作用,它是如何工作的,以及這如何影響我的數據?'maxfev'在iPython Notebook中做什麼?

+0

儘量不要增加maxfev太多;這通常意味着合身本身有問題。你可以發佈你的數據和代碼!? – Cleb

回答

0

函數curve_fit是圍繞leastsq(均來自scipy.optimize庫)的包裝。您正在調整的參數指定在您嘗試修改的模型參數允許更改的次數,而程序試圖找到局部最小值時(參見下面的示例)。

data = [(1,0),(2,1),(3,2),(4,3)...] 
model = a*x+b 

讓我們假設你初始化ab0。程序嘗試一次,得到給定的最小方格數組,然後程序將嘗試更改ab並再次運行它。這將重複進行,直到找到最佳值ab(產生最小的最小平方,應該是a=1b=-1)。

事實上,您的程序在600次參數更改後無法找到最佳值,這清楚地表明您正在擬合錯誤的模型。

PS:你的問題無關,與IPython的筆記本

相關問題