具有非恒定质量矩阵的非线性微分方程的解
Solution to nonlinear differential equation with non-constant mass matrix
如果我有一个非线性常微分方程组 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 来转换他们的问题。”
我不知道如何完成这个。任何关于如何进行这种替换或解决此类问题的更好方法的见解都将不胜感激。
以下变换 导致 常数 质量矩阵:
.
您需要单独处理y_4 = 0
的情况。
如果我有一个非线性常微分方程组 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 来转换他们的问题。”
我不知道如何完成这个。任何关于如何进行这种替换或解决此类问题的更好方法的见解都将不胜感激。
以下变换
您需要单独处理y_4 = 0
的情况。