2017-08-18 29 views
0

我想使用curve_fit將某個自定義函數適用於某些數據點。我已經嘗試過1或2個免費參數。我有其他時間用過它。現在我很難做出合適的選擇,因爲無論初始值是什麼,算法都會返回初始輸入值,並帶有無限西格瑪。我也嘗試打印與我的自定義函數被調用的內部參數,我不明白,我的自定義函數被調用4次,前三個總是相同的參數和最後一個相對變化的參數10^-8。這看起來不正確蟒蛇3.3:scipy.optimize.curve_fit不更新點的值

+1

如果您添加了您嘗試的代碼,這將會很有幫助。 – 9dogs

+0

除了代碼,[租約添加鏈接到數據。 –

回答

2

爲了計算偏導數來決定在參數空間中走哪條路,目標函數初始調用時參數值的變化非常小(大約1e-8)是正常的。如果目標函數的結果根本沒有改變(甚至不在1e-8級別),擬合會放棄:改變參數值不會改變結果。

我會先看看目標函數的結果是否對參數非常敏感。如果對結果的更改實際上對1e-8更改不敏感,但會對更大的更改敏感,則可能需要將epsfcn的值增加到scipy.optimize.leastsq