亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

參數值是否傳遞給 lmfit 中的第二個最小化器調用

參數值是否傳遞給 lmfit 中的第二個最小化器調用

拉風的咖菲貓 2023-03-22 14:02:23
我正在使用 lmfit 將一些數據擬合到兩個反應系統以估計速率常數。我的數據是 x1、x2 和 x3 物種在 x1 -> x2 -> x3 中的濃度變化在其他工具中,我通常使用全局優化器,然后使用局部優化器,這樣我就可以更輕松地訪問 Hessian 等。在 lmfit 中,我認為我可以做類似的事情:minimizer = lmfit.Minimizer(self._residuals, params) result = minimizer.minimize(method='differential_evolution') result = minimizer.minimize(method='leastsqr')我假設差分進化擬合的參數將保留在最小化對象中,并由第二個最小化函數調用自動獲取。但是,我不確定,因為我的同事另有建議。如果有人更了解 lmfit 包,那么第二個最小化是否會在第一個最小化停止的地方獲取參數?更新 1:我添加了 Minimize 調用以確保只創建一個 Minnizmize 對象。我當前的測試似乎表明參數值確實從一個最小化調用傳遞到另一個調用(這是我所期望的)。更新 2:進一步的實驗表明,如果系統是不可識別的,則存在差異,這意味著第一次最小化調用似乎不會將其擬合參數傳遞給第二個最小化調用。
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

不,第一種方法的擬合參數將不會用于您提供的代碼的第二次最小化。


如果您沒有指定任何內容,minimizer.minimize()它將從params您提供的初始化Minimizer類開始。下面的代碼應該做你想做的:


minimizer = lmfit.Minimizer(self._residuals, params)

result_de = minimizer.minimize(method='differential_evolution')

result = minimizer.minimize(params=result_de.params, method='leastsqr')

(我在這里假設這self._residuals是您的擬合函數,即您想要最小化的函數)。請在此處查看文檔。


查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號