[我正在尝试通过Python 3(通过Jupyter笔记本)使用GEKKO运行微分方程系统求解器。
对于错误的初始参数,它当然会立即停止并说未找到解决方案。或立即结束,而无需更改参数/功能。
对于其他初始参数,CPU(taskmanager中的APM.exe)正忙30秒(取决于问题大小),然后又降为0%使用率。但是某些计算仍在运行,并且不会产生输出。停止它的唯一方法(而不是完全杀死python)是停止APM.exe。我没有解决办法。
[这样做时,我得到disp=True
输出,它已经进行了一定数量的迭代(对于相同的初始参数来说是相同的:]
No such file or directory: 'C:\\Users\\MYUSERNAME\\AppData\\Local\\Temp\\tmpfetrvwwwgk_model7\\options.json'
代码很长,取决于从文件中加载数据。因此,我无法真正提供MWE。
有什么想法吗?
这里有一些有关对应用程序进行故障排除的建议:
IMODE=4
模拟系统,那么我建议您切换到m.options.IMODE=7
并离开m.solve(disp=True)
以查看模型出现故障的地方。 m.options.SOLVER=1
切换求解器。m.time=[0,0.0001]
使用较短的时间范围,以查看模型是否可以在短时间步内收敛。m.options.COLDSTART=2
来帮助识别导致不可行解的方程式或约束。它将问题分解为可以解决的连续问题,并尝试查找导致收敛问题的位置。有使用Gekko模拟的additional tutorials和一个troubleshooting guide(请参阅#18),可帮助您进一步深入研究该应用程序。当收敛有问题时,通常是以下问题之一:
m.Equation(x.dt()==(x+1)/y)
,则将其替换为m.Equation(y*x.dt()==x+1)
。m.abs(x)
或没有问题的m.abs2(x)
或m.abs3(x)
替换x=0
。让我们知道这是否有帮助。