第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Python GEKKO:如何避免從 IPOPT “解決到可接受的水平”中引發(fā)錯誤。

Python GEKKO:如何避免從 IPOPT “解決到可接受的水平”中引發(fā)錯誤。

開心每一天1111 2022-06-02 11:29:27
我正在求解一組模擬方程(IMODE = 1,SOLVER = 3)。IPOPT 求解器求解到可接受的水平并退出,但 gekko 為此返回錯誤并返回我的解決方案。根據 IPOPT 文檔,可接受級別的容差為 1.0e-6,這與 gekko 使用的 OTOL 和 RTOL 的默認值(以及我正在使用的值)相同。我能夠修改 gekko.py 源代碼以讓我的答案返回,但這樣做我繞過了所有類型的錯誤。我不希望繞過所有錯誤,因為它們顯然有助于調試其他問題,例如不可行性。是否有我缺少的 m.solve 選項,或者當 IPOPT 解決到可接受的水平時不觸發(fā)錯誤的另一種方法?
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

處理求解器錯誤的一種方法是將求解命令包裝在try,except語句中。APPINFO輸出可以為您提供有關遇到什么類型的錯誤的指導,并讓您對“不可行的解決方案”、“解決到可接受的水平”或其他 IPOPT 錯誤代碼做出不同的響應。


try:

   m.solve(disp=True)

except:

   print('Solver error, looking at APPINFO')

   if m.options.APPINFO==1:

      print('APPINFO=1')

   elif m.options.APPINFO==2:

      print('APPINFO=2')

另一種選擇是嘗試不同的求解器,例如 APOT 或 BPOPT。


m.options.SOLVER = 1

編輯:APPINFO Gekko 引發(fā)求解器異常時,不會更新參數。請嘗試以下操作debug=0:


m.solve(disp=True,debug=0)

if m.options.APPINFO!=0:

   print('Solver error, looking at APPINFO')

if m.options.APPINFO==1:

   print('APPINFO=1')

elif m.options.APPINFO==2:

   print('APPINFO=2')

我剛剛更新了 Gekko,以便遠程解決方案也將繞過引發(fā)的異常并使用APPINFO信息完成對選項文件的處理。本地運行時APPINFO信息在run目錄下,用in讀入。options.jsonload_JSONgk_post_solve.py


查看完整回答
反對 回復 2022-06-02
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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