如何解决唯一 ODE 解决方案的重新缩放参数
我正在尝试从正态分布重新调整我的参数,以便我可以在我的 ODE 中模拟“非耦合项”。仅就某些情况而言,这是一个细胞群,重新调整我的每个细胞的参数,可以进一步了解模型。到目前为止,我有 1000 个单元格,用 N
表示,我想将我的每个参数乘以来自均值为 1 且标准差为 0.25 的正态分布的某个随机值。我知道要创建该发行版,我需要使用 rand = np.random.normal(loc=1.0,scale=0.25,size=N)
。但我还没有看到如何使用 rand
数组中生成的这些值中的每一个将其与每个参数相乘,以便每个单元格都有一个独特的图。我在下面附上了我当前的代码:
def goodwin(t,y):
X,Y,Z,V = y.reshape([4,-1])
N = len(V); v1 = 6.8355; K1 = 2.7266; n = 5.6645; v2 = 8.4297; K2 = 0.2910; k3 = 0.1177; v4 =
1.0841; K4 = 8.1343; k5 = 0.3352; v6 = 4.6645; K6 = 9.9849; k7 = 0.2282; v8 = 3.5216; K8 =
7.4519; vc = 6.7924; Kc = 4.8283; K = 1; L = 0
F = 1/N * sum(V)
dXdt = (v1*(K1**n))/((K1**n)+(Z*abs(Z)**(n-1)))-((v2*X)/(K2+X)) + ((vc*K*F)/(Kc+(K*F))) + L
dYdt = (k3*X) - ((v4*Y)/(K4+Y))
dZdt = (k5*Y) - ((v6*Z)/(K6+Z))
dVdt = (k7*X) - ((v8*V)/(K8+V))
return np.concatenate([dXdt,dYdt,dZdt,dVdt])
t_span = (0,120)
t = np.linspace(t_span[0],t_span[1],3000)
N = 1000
y0 = np.random.rand(4*N)
soln = solve_ivp(goodwin,t_span,y0,t_eval=t)
t = soln.t; X,V = soln.y[0::N]
本质上,我想要做的是对于每个单元格(总单元格 = N
),我希望它的参数是唯一的,即它的参数会被 rand
中的某个随机数缩放分配。我怎样才能做到这一点,然后绘制几个单元格的结果?任何帮助表示赞赏。请注意,我使用的是 solve_ivp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。