Julia Langauge微分方程示例

问题描述 投票:1回答:1

我尝试使用Julia文档中的this示例。我的尝试是将细胞分裂成两个部分,每个部分的蛋白质含量为一半,因此我将Theta设置为0.5。但是,该图看起来像这样:enter image description here

很明显,由于细胞数量相等,因此每次同时达到目标蛋白质量时,细胞数量就会增加一倍。我该如何绘制?我也不明白为什么在以下情况下单元格的数量会停在3个位置。

plot julia modeling ode ijulia-notebook
1个回答
0
投票

绘制每个细胞中的蛋白质量,并考虑您创建的模型。第一次除法后,两个单元格具有相同的值。因此,在同一时间,您将触发事件。 “最大值”(无论哪个索引较低,所以为1)将拆分,而2将保持在1以上。但是现在u[2] > 1,寻根条件1-maximum(u)将永远不会再为零,因此不再发生拆分。这意味着您将总共进行两个拆分,即3个单元格。

[请记住,程序将完全按照您的指示执行。我假设您的意思是将大于或等于1的any单元拆分为结果。如果这是您想要的affect!,则必须编写它:

function affect!(integrator)
  u = integrator.u
  idxs = findall(x->x>=1-eps(eltype(u)),u)
  resize!(integrator,length(u)+length(idxs))
  u[idxs] ./ 2
  u[end-idxs:end] = 0.5
  nothing
end

将是一种方法,当然还有很多其他方法。

© www.soinside.com 2019 - 2024. All rights reserved.