python - 有没有办法强制 ODEINT 在 Python 中使用特定算法?
问题描述
据我所见,odeint 似乎会自动决定要使用哪种算法。但是,我使用的数学在收敛方面非常挑剔,我想更好地控制使用哪种算法。我尝试过使用 ode(特别是 vode),但由于所有移动部件,我很难调试它。我真的对分解我正在使用的 ode 求解器的所有细节不感兴趣:我只想能够告诉 odeint 使用一种特定的算法并收工。这可能吗,还是我需要调试 ode?
解决方案
使用的 LSODA 方法odeint
自动在 Adam 方法(非刚性)和 BDF(刚性)之间切换,据我所知,它不允许改变这种行为。
如果您正在寻找具有类似界面但可以明确选择集成方法的求解器,请查看 scipy 的solve_ivp
. 它有一个可选参数method
,允许您选择一种集成方法。确保不要选择'LSODA'
,否则您将再次遇到同样的问题。
推荐阅读
- python - Django不断返回分配错误之前引用的局部变量“产品”
- php - 如何使用 preg_replace_callback 而不是 preg_replace 用链接 html 替换单词?
- python - “找不到任何有价值的窗口提供程序”错误
- python - 如何进一步优化这段代码?
- lstm - 如何使用二进制标签计算 LSTM 的累积分数?
- wso2dss - WSO2EI DSS 中未发现 ERP 操作错误
- swift - GKState:为什么 StateMachine == nil 代表调用?
- php - 我想通过比较两个索引从嵌套关联数组中删除
- c# - 在 ListBoxItem DataTemplate 内的嵌套控件中处理相同的单击事件 - WPF
- c# - Listview 行工具提示显示持续时间