解约束时滞微分方程(DDE)系统以给出非负解

编程入门 行业动态 更新时间:2024-10-23 23:32:59
本文介绍了解约束时滞微分方程(DDE)系统以给出非负解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在MATLAB中, ode45 的参数名为 NonNegative 限制了解决方案为非负数. 他们甚至写了一篇有关该方法如何工作的论文以及它不是那么愚蠢就像只要将y_i变为负数就将其设置为0一样,通常就不会起作用.

In MATLAB, ode45 has a parameter called NonNegative which constrains the solutions to be nonnegative. They even wrote a paper about how this method works and how it's not something as stupid as just setting y_i to 0 whenever it becomes negative, as that won't generally work.

现在,MATLAB还具有 dde23 来解决延迟微分方程,但该积分器没有等效的NonNegative参数.

Now, MATLAB also has dde23 for solving delay differential equations, but there is no equivalent NonNegative parameter for this integrator.

不幸的是,我的任务是给现有的ODE系统增加延迟,可以使用 ode45 与 NonNegative

Unfortunately, I am tasked with adding a delay to an existing ODE system which is solved using ode45 with NonNegative enabled.

有什么想法我应该如何进行?

Any ideas how I should proceed?

我不确定这是否有帮助,但是...

I'm not sure if this is helpful, but...

我系统的DDE部分基本上如下:

The DDE part of my system basically looks like:

dx = 1/(1+y*z) - x; dy = (y*z)^2/(1+(y*z)^2) - y; dz = X - z;

其中,X(第三个方程式中的大写字母变量)是x的延迟版本.然后,通过将x和z的方程式添加几个术语,然后将组合的系统集成在一起,将这个DDE系统链接到现有的(和更大的)ODE系统.

where X (the capital letter variable in the third equation) is the delayed version of x. Then, I'm linking this DDE system to an existing (and larger) ODE system by adding a couple terms to the equations for x and z, and then integrating the combined system all together.

推荐答案

您遇到了一个棘手的问题,但我不确定是否有一步解决方案.然后,我会更乐意向愿意提供替代答案的任何人表示敬意.

You have a tough problem and I'm not sure if there is a one-step solution. I'd be more then glad to provide kudos to anyone willing to provide an alternative answer.

根据延迟的长度,一种选择是多次运行方程式,每次迭代将x的旧值传递到最新更新.

Depending on the length of the delay, one option would be to run the equation several times, with each iteration passing the old values of x to latest update.

例如,假设您的延迟时间为一小时.在第一个小时中,运行带有NonNegative标记的ode45.将值与时间参数一起存储到新矩阵中,然后再次运行算法.这次确保您添加了两个输入参数:旧的解决方案矩阵和旧的时间矩阵

For instance, say your delay is one hour. In the first hour, run ode45 with the NonNegative flagged. Store the Value into a New matrix along with the Time parameter, and run the algorithm again. This time make sure you add two input parameters: your old solution matrix and the old time matrix

dx = 1/(1+y*z) - x; dy = (y*z)^2/(1+(y*z)^2) - y; tindex = find(told>t,1) -1 % find the upper index which best approximates t X = xold(tindex) + (xold(tindex+1)-xold(tindex))*(t-told(tindex))/(told(tindex+1)-told(tindex)) % or interpolation method of your choosing dz = X - z;

现在清洗,冲洗并重复.请注意,X现在是准时间相关的术语,如示例3中 ode45所示.

Now wash, rinse, and repeat. Note that X is now a quasi-time-dependant term as seen in example 3 from ode45.

更多推荐

解约束时滞微分方程(DDE)系统以给出非负解

本文发布于:2023-11-30 20:15:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1651348.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:微分方程   系统   束时滞   非负解   DDE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!