【发布时间】:2020-07-03 12:37:53
【问题描述】:
我尝试使用 Julia 文档中的 this 示例。我的尝试是将细胞分成两部分,每部分的蛋白质含量是一半,所以我设置了 Theta=0.5。然而,情节是这样的:
很明显,每次达到目标蛋白质量时,细胞数量都会增加一倍,因为它们是相等的。我怎么能策划这个?我也不明白为什么在下面的情况下单元格的数量停止在 3。
【问题讨论】:
标签: plot julia modeling ode ijulia-notebook
我尝试使用 Julia 文档中的 this 示例。我的尝试是将细胞分成两部分,每部分的蛋白质含量是一半,所以我设置了 Theta=0.5。然而,情节是这样的:
很明显,每次达到目标蛋白质量时,细胞数量都会增加一倍,因为它们是相等的。我怎么能策划这个?我也不明白为什么在下面的情况下单元格的数量停止在 3。
【问题讨论】:
标签: plot julia modeling ode ijulia-notebook
绘制每个细胞中的蛋白质含量并考虑您创建的模型。第一次分裂后,两个单元格的值相同。所以在同一时间,你有一个事件触发。 “最大值”(无论哪个索引较低,所以 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
这是一种方法,当然还有很多其他方法。
【讨论】: