小编tig*_*gro的帖子

使用 JiTCDDE 的意外解决方案

我正在尝试使用 Python 研究以下延迟微分方程的行为:

\n
y\'\'(t) = -y(t)/\xcf\x84^2 - 2y\'(t)/\xcf\x84 - Nd*f(y(t-T))/\xcf\x84^2,\n
Run Code Online (Sandbox Code Playgroud)\n

其中f是截止函数,当其参数的绝对值在 1 到 10 之间时,它本质上等于恒等式,否则等于 0(见图 1),并且 、 和Nd\xcf\x84常数T

\n

图 1:函数 f 的绘图

\n

为此,我使用 JiTCDDE 包。这为上式提供了合理的解。尽管如此,当我尝试在方程右侧添加噪声时,我得到了一个在几次振荡后稳定为非零常数的解。这不是方程的数学解(唯一可能的常数解等于零)。我不明白为什么会出现这个问题以及是否可以解决它。

\n

我在下面重现我的代码。这里,为了简单起见,我用高频余弦代替噪声,将其引入方程组作为虚拟变量的初始条件(余弦可以直接引入系统,但对于一般噪音这似乎不可能)。为了进一步简化问题,我还删除了涉及该函数的术语f,因为没有它也会出现问题。图 2 显示了代码给出的函数图。

\n

图 2:代码给出的解图

\n
from jitcdde import jitcdde, y, t\nimport numpy as np\nfrom matplotlib import pyplot as plt\nimport math\nfrom chspy import CubicHermiteSpline\n\n\n# Definition of function f:\ndef functionf(x):\n    return x/4*(1+symengine.erf(x**2-Bmin**2))*(1-symengine.erf(x**2-Bmax**2))\n\n#parameters:\n\xcf\x84 = 42.9\nT = 35.33\nNd = 8.32\n\n# Definition of the initial conditions:\ndt = .01 …
Run Code Online (Sandbox Code Playgroud)

python-3.x differential-equations numerical-stability jitcode-jitcdde-jitcsde

5
推荐指数
1
解决办法
127
查看次数