微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:如何用Jacobian有效解决DAE?

如何解决Python:如何用Jacobian有效解决DAE?

我正在尝试使用Assimulo软件包来求解一组微分代数方程(DAE)。我正在尝试使用类似于shown here的算法。但是,似乎没有传递稀疏矩阵的选项。我的Jacobian矩阵非常大,大约为3000 x3000。您知道是否有一种方法可以更有效地解决我的DAE?

解决方法

根据我使用稀疏 ODE 系统(更准确地说是使用半离散 PDE 系统)的经验,使用迭代线性求解器可以大大提高数值效率。据我所知,Assimulo 不允许提供雅可比稀疏模式,但更改线性求解器是解决此问题的另一种方法。

你会做这样的事情:

model = Explicit_Problem(ode_function,y0=y_init,t0=t_init)
simulator = CVode(model)
sim.linear_solver = 'SPGMR'

我不确定这是否也适用于 DAE 系统,但我认为值得一试。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。