问题描述
如果我有一个非线性常微分方程组,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 来转换他们的问题。”
我不知道如何实现这一点。如果您对如何进行这种替换或解决此类问题的更好方法有任何见解,我们将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)