如果我有一个非线性常微分方程组 M(t,y) y' = F(t,y),当我的质量矩阵 M 有时是奇异的时,最佳求解方法是什么?
我正在使用以下方程组:
如果 t=0,这会简化为微分代数方程。然而,即使我们限制 t>0,只要 y4=0,这就会变成微分代数方程,我无法设置域限制来避免这种情况(并且是我尝试建模的系统的组成部分)。我之前唯一一次接触 DAE 是当整行为 0 时——但在这种情况下,我的质量矩阵并不总是奇异的。
以数字方式实现此目的的最佳方法是什么? 到目前为止,我已经尝试使用Python,在 M 的主对角线上添加一个小数字(0.0001)并将其反转,求解方程 y' = M^{-1}(t,y) F(t,y) )。然而,这似乎容易不稳定,而且我不确定这是否是一种普遍适用的正则化方法。
Python 没有任何内置函数来处理质量矩阵,因此我也尝试在 Julia 中进行编码。然而,DifferentialEquations.jl states explicitly “不直接支持非恒定质量矩阵:建议用户通过替换为具有恒定质量矩阵的 DAE 来转换他们的问题。”
我不知道如何实现这一目标。任何关于如何进行这种替代或解决此类问题的更好方法的见解将不胜感激。
最佳答案
关于python - 具有非常量质量矩阵的非线性微分方程的解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66096157/