不连续的心血管模型DDE
这个例子展示了如何使用dde23
解一个具有不连续导数的心血管模型。该示例最初由Ottesen[1]提出。
方程组是
的条款 而且 是同一方程的有或没有时滞的变化形式。 而且 分别表示有延时和无延时的平均动脉压。
这个问题有一些物理参数:
动脉顺应性
静脉合规
外周阻力
静脉流出阻力
中风的体积
典型平均动脉压
系统受外围压力的影响很大,外围压力从 来 开始在 .因此,系统在低阶导数处具有不连续性 .
恒解历史是根据物理参数定义的
要在MATLAB®中求解这个方程组,在调用时滞微分方程求解器之前,需要对方程、参数、延迟和历史进行编码dde23
,这是指具有恒定时延的系统。您可以将所需的函数作为本地函数包含在文件的末尾(如这里所做的),或者将它们作为单独的命名文件保存在MATLAB路径的目录中。
定义物理参数
首先,将问题的物理参数定义为结构中的字段。
p.ca = 1.55;p.cv = 519;’变为贬义词= 1.05;’变为贬义词= 0.068;p.Vstr = 67.9;p.alpha0 = 93;p.alphas = 93;p.alphap = 93;p.alphaH = 0.84;p.beta0 = 7; p.betas = 7; p.betap = 7; p.betaH = 1.17; p.gammaH = 0;
代码延迟
接下来,创建一个变量τ
表示恒定时间延迟
在这些项的方程中
.
τ= 4;
代码方程
现在,创建一个函数来编码这些方程。这个函数应该具有签名dydt = ddefun (t, y, Z, p)
,地点:
t
为时间(自变量)。y
是解(因变量)。Z (n, j)
接近延迟 ,其中延迟 由分量给出j
的德(t, y)
.p
是可选的第四个输入,用于传入参数的值。
前三个输入由求解器自动传递给函数,变量名决定如何编写方程。参数结构p
在调用求解器时传递给函数。在这种情况下,延迟表示为:
Z (: 1)
函数dydt = ddefun (t, y, Z, p)如果t <= 600 p.R = 1.05;其他的pr = 0.21 * exp(600-t) + 0.84;结束ylag = Z (: 1);Patau = ylag (1);Paoft = y (1);Pvoft = y (2);Hoft = y (3);dPadt = - (1 / (p.ca * p.R)) * Paoft...+ (1 / (p。c一个* p.R)) * Pvoft...+ (1/p.ca) * p.Vstr * Hoft;dPvdt = (1 / (p.v v * p.R)) * Paoft...- 1 / (p.cv * p.R)...+ 1 / (p.cv * p.r)) * Pvoft;Ts = 1 / (1 + (Patau / p))^p。贝塔);Tp = 1 / (1 + (p.alphap / Paoft)^p。betap);dHdt = (p.alphaH * Ts) / (1 + p.gammaH * Tp)...- p. h * p;dydt = [dPadt;dPvdt;dHdt];结束
注意:在示例的最后,所有函数都作为局部函数包含在内。
代码解决方案历史
接下来,创建一个向量来定义这三个组件的恒定求解历史 , , .解决历史就是解决时间 .
P0 = 93;Paval = P0;Pvval = (1 / (1 + p.R/ p.R)) * P0;Hval =(1 /(’变为贬义词* p.Vstr)) *(1 /(1 +’变为贬义词/’变为贬义词))* P0;历史= [Paval;Pvval;Hval];
解决方程
使用ddeset
说明不连续的存在
.最后,定义积分区间
求解DDEdde23
解算器。指定ddefun
使用匿名函数传入参数结构,p
.
选择= ddeset (“跳跃”, 600);Tspan = [0 1000];sol = dde23(@(t,y,Z) ddefun(t,y,Z,p), tau, history, tspan, options);
策划解决方案
解决方案结构索尔
的字段sol.x
而且sol.y
其中包含求解器所采取的内部时间步骤以及在这些时间点对应的解。(如果你在特定的地方需要解决方案,你可以使用德瓦尔
在特定点上求解。)
绘制第三个溶液组分(心率)与时间的关系图。
情节(sol.x sol.y(3:))标题(“压力反射反馈机制的心率。”)包含(“t”) ylabel (“H (t)”)
本地函数
这里列出的是DDE解算器的本地帮助函数dde23
调用来计算解。或者,您可以将这些函数作为它们自己的文件保存在MATLAB路径下的一个目录中。
函数dydt = ddefun (t, y, Z, p)%方程式被解如果t <= 600 p.R = 1.05;其他的pr = 0.21 * exp(600-t) + 0.84;结束ylag = Z (: 1);Patau = ylag (1);Paoft = y (1);Pvoft = y (2);Hoft = y (3);dPadt = - (1 / (p.ca * p.R)) * Paoft...+ (1 / (p。c一个* p.R)) * Pvoft...+ (1/p.ca) * p.Vstr * Hoft;dPvdt = (1 / (p.v v * p.R)) * Paoft...- 1 / (p.cv * p.R)...+ 1 / (p.cv * p.r)) * Pvoft;Ts = 1 / (1 + (Patau / p))^p。贝塔);Tp = 1 / (1 + (p.alphap / Paoft)^p。betap);dHdt = (p.alphaH * Ts) / (1 + p.gammaH * Tp)...- p. h * p;dydt = [dPadt;dPvdt;dHdt];结束
参考文献
[1] Ottesen J. T. <带时滞的barreflexx -反馈机构的建模>。j .数学。医学杂志。1997年第1期第36卷第41-63页。