简体   繁体   English

具有非常量质量矩阵的非线性微分方程的解

[英]Solution to nonlinear differential equation with non-constant mass matrix

If I have a system of nonlinear ordinary differential equations, M(t,y) y' = F(t,y), what is the best method of solution when my mass matrix M is sometimes singular?如果我有一个非线性常微分方程系统,M(t,y) y' = F(t,y),当我的质量矩阵 M 有时是奇异的时,最好的解决方法是什么?

I'm working with the following system of equations:我正在使用以下方程组:

方程组

If t=0, this reduces to a differential algebraic equation.如果 t=0,这将简化为微分代数方程。 However, even if we restrict t>0, this becomes a differential algebraic equation whenever y4=0, which I cannot set a domain restriction to avoid (and is an integral part of the system I am trying to model).然而,即使我们限制 t>0,只要 y4=0,这就会变成一个微分代数方程,我无法设置域限制来避免(并且是我试图建模的系统的一个组成部分)。 My only previous exposure to DAEs is when an entire row is 0 -- but in this case my mass matrix is not always singular.我之前唯一接触过 DAE 是当整行为 0 时——但在这种情况下,我的质量矩阵并不总是奇异的。

What is the best way to implement this numerically?以数字方式实现这一点的最佳方法是什么? So far, I've tried using Python where I add a small number (0.0001) to the main diagonals of M and invert it, solving the equations y' = M^{-1}(t,y) F(t,y).到目前为止,我已经尝试使用 Python 将一个小数 (0.0001) 添加到 M 的主对角线并将其反转,求解方程 y' = M^{-1}(t,y) F(t,y )。 However, this seems prone to instabilities, and I'm unsure if this is a universally appropriate means of regularization.但是,这似乎容易出现不稳定,我不确定这是否是一种普遍适用的正则化方法。

Python doesn't have any built-in functions to deal with mass matrices, so I've also tried coding this in Julia. Python 没有任何内置函数来处理质量矩阵,所以我也尝试在 Julia 中进行编码。 However, DifferentialEquations.jl states explicitly that "Non-constant mass matrices are not directly supported: users are advised to transform their problem through substitution to a DAE with constant mass matrices."但是,DifferentialEquations.jl明确指出“不直接支持非恒定质量矩阵:建议用户通过替换为具有恒定质量矩阵的 DAE 来转换他们的问题。”

I'm at a loss on how to accomplish this.我不知道如何做到这一点。 Any insights on how to do this substitution or a better way to solve this type of problem would be greatly appreciated.任何有关如何进行这种替换或解决此类问题的更好方法的见解将不胜感激。

The following transformation以下变换转型 leads to a constant mass matrix:导致恒定质量矩阵:

情商系统 . .


You need to handle the case of y_4 = 0 separately.您需要单独处理y_4 = 0的情况。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM