Python:如何高效地用雅可比行列式求解 DAE?

问题描述 投票:0回答:2

我正在尝试使用 Assimulo 包来求解一组微分代数方程 (DAE)。我正在尝试使用与此处所示类似的算法。但是,似乎没有选择传入稀疏矩阵。我的雅可比矩阵非常大,大约为 3000 x 3000。您知道是否有一种方法可以更高效地解决我的 DAE 问题?

matrix differential-equations jmodelica sundials assimulo
2个回答
1
投票

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

你会做类似的事情:

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

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


0
投票

我也尝试使用 IDA 求解器在 assimulo 中做类似的事情。 没有运气找到解决方案。 如果您对此有所了解,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.