Python求解常微分方程初值问题及非标准有限差分方法
1. 使用Gekko求解常微分方程
Gekko是一个Python优化套件,最初设计用于解决混合整数、非线性和微分代数方程(DAE)的动态优化问题。其默认求解器是基于内点法的IPOPT求解器,还包括APOPT、BPOPT、SNOPT和MINOS等其他求解器。状态方程的离散化通过有限元上的正交配置来实现,在每个有限元中,正交配置用多项式近似控制和状态变量。
1.1 初始化Gekko模型
在Python中初始化Gekko模型 m ,使用以下两条指令:
from gekko import GEKKO
m = GEKKO(remote = False)
将参数 remote 的值设为 False ,告知Gekko将服务器设置为本地机器。
如果模型 m 包含一个变量 x ,其下限为 xmin ,上限为 xmax ,初始值为 x0 ,则可以这样声明:
x = m.Var(value = x0, lb = xmin, ub = xmax)
1.2 示例:求解SIR模型
SIR模型的方程如下:
$\dot{S}(t
超级会员免费看
订阅专栏 解锁全文
94

被折叠的 条评论
为什么被折叠?



