Julia Langauge 微分方程示例

Fab*_*ini 2 plot modeling ode julia ijulia-notebook

我尝试在 Julia 文档中使用这个示例。我的尝试是将细胞分成两部分,每部分的蛋白质含量都是一半,所以我设置了 Theta=0.5。然而,情节是这样的: 在此处输入图片说明

很明显,每次达到目标蛋白质量时,细胞数量都会增加一倍,同时,因为它们是相等的。我怎么能画这个?我也不明白为什么在下面的情况下单元格的数量停在 3。

Chr*_*kas 5

绘制每个细胞中的蛋白质含量并考虑您创建的模型。第一次分裂后,两个单元格具有相同的值。所以在同一时间,你有一个事件触发。“最大值”(以较低的索引为准,所以 1)将分裂,而 2 将继续增长到 1 以上。但是现在u[2] > 1,求根条件1-maximum(u)将永远不会再次达到零,因此不会发生更多分裂。这意味着您总共将有两个拆分,即 3 个单元格。

请记住,程序将完全按照您的要求执行。我假设你的意思是,作为你的效果,分裂any大于或等于 1 的单元格。如果这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
Run Code Online (Sandbox Code Playgroud)

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