python - JiTCDDE 没有给出预期的输出
问题描述
我一直在尝试使用 JiTCDDE 求解以下延迟微分方程组:
这是我的代码:
from jitcdde import y, t
from jitcdde import jitcdde
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
N1=30290000
a1=0.98*N1
eps=1/5
b1=0.000024246
eta=0.3
B1=0.7
m=0.0005
chi=0.071
k1=0.185
alpha1=0.1155
delta=0.0225
phi1=0.26
omega1=0.26
d=3
model=[b1-((y(0)*B1*(y(2)+y(3)+(eta*y(5))))/a1)-b1*y(0)-m*y(0,t-d),
((y(0)*B1*(y(2)+y(3)+(eta*y(5))))/a1)-(k1+eps)*y(1)-m*y(1,t-d),
k1*eps*y(1)-(alpha1+chi)*y(2)-m*y(2,t-d),
(1-k1)*eps*y(1)-(phi1+omega1)*y(3)-m*y(3,t-d),
k1*y(1)+alpha1*y(2)-chi*y(4),
(phi1+omega1)*y(3)-(chi+delta)*y(5),
chi*(y(4)+y(5))-b1*y(6)-m*y(6,t-d),
delta*y(5)]
I=jitcdde(model)
I.constant_past([(0.98*N1-13),0,5,7,0,1,0,0], time=0.0)
I.step_on_discontinuities()
e=[]
for i in range(50):
e.append(I.integrate(i)[1])
print(e)
问题是,对于解决方案的第二个数组(我正在尝试访问),当我指定 t<0 时,前几个值是负值,该值为 0。我已经尝试过这个相同的模型使用ddeint
它给出了一个单调递增的正值曲线,这是我所期望的。不过我想jitcdde
工作,因为即使没有延迟项,这个模型也应该运行。第一个数组看起来不错,我检查了我的模型,看看是否有任何错别字,但对我来说一切都很好。我也尝试过使用adjust_diff
and integrate_blindly
,但问题仍然存在。
解决方案
推荐阅读
- python - Beam 支持融合模式注册表和 avro 消息
- mysql - 使用mysql将纪元时间转换为gmt
- paypal - 离线支付网关提供商
- tensorflow - Tensorflow Keras 输出层形状奇怪的错误
- python - Remove rows based on a Pandas groupby() result
- c# - 通过微服务创建 Unity Streamingassets
- php - 是否有一个函数或钩子可以用来跟踪 WordPress 中的简单插件更改?
- css - 交互式图像 - 反应
- swift - 如何创建一个可以删除 Swift 中所有 UserDefaults 数据的函数?
- java - 房间 (android) 中的数据访问对象类不起作用