随机动力学
何时使用随机求解器
随机模拟算法为模拟具有随机性质的反应提供了一种实用的方法。具有少量分子的模型可以实际地随机模拟,也就是说,允许结果包含概率元素,而不像确定性解。
用随机求解器进行模拟的模型先决条件
模型的先决条件包括:
模型中的所有反应都必须有
KineticLaw
属性设置为MassAction
.如果你的模型包含事件,你可以使用随机模型进行模拟
ssa
解算器。其他随机求解器不支持事件。万博1manbetx您的模型不能包含剂量。没有随机解算器支持剂量。万博1manbetx
此外,如果您在模型上执行个体或总体拟合,其Configset对象
指定了一个随机求解器和选项,请注意在拟合SimBiology期间®暂时的变化:
SolverType
属性设置为的默认求解器ode15s
SolverOptions
属性设置为确定性求解器最后配置的选项
随机模拟过程中会发生什么?
在模型的随机模拟过程中,软件忽略模型中出现的任何速率、赋值或代数规则。根据模型的不同,随机模拟可能比确定性模拟需要更多的计算时间。
提示
当使用随机求解器模拟模型时,可以增加LogDecimation
的属性configset对象
记录更少的数据点并减少运行时间。
随机模拟算法(SSA)
化学主方程(CME)用概率分布的时间演化来描述化学系统的动力学。对于大多数实际问题,直接求解这个分布是不切实际的。相反,随机模拟算法(SSA)通过使用其倾向函数模拟每个反应,有效地生成与CME一致的单个模拟。因此,分析多个随机模拟来确定概率分布比直接求解CME更有效。
优势
该算法是精确的。
缺点
由于该算法一次评估一个反应,对于具有大量反应的模型来说可能太慢了。
如果任何反应物的分子数量都很大,那么完成模拟可能需要很长时间。
显式tau跳跃算法
由于随机模拟算法对于许多实际问题来说可能太慢,因此设计该算法的目的是以一定的精度为代价来加快模拟速度。该算法将每个反应视为相互独立的。它会自动选择一个时间间隔,使得每个反应的倾向函数的相对变化小于你的容错。在选择时间间隔后,算法计算每个反应在时间间隔内发生的次数,并对所涉及的各种化学物质的浓度进行适当的改变。
优势
这种算法可以比SSA快几个数量级。
您可以将此算法用于大型问题(如果问题在数值上不僵硬)。
缺点
这个算法为了速度牺牲了一些准确性。
该算法不适用于刚性模型。
您需要指定容错性,以便产生的时间步长与最快的时间刻度相同。
隐式tau跳跃算法
与显式tau跳跃算法一样,隐式tau跳跃算法也是一种近似的模拟方法,旨在以一定的精度为代价来加快模拟速度。它比显式tau跳跃算法能更好地处理数值复杂的问题。对于确定性系统,如果系统中存在“快”和“慢”时间尺度,则问题在数值上是刚性的。对于这类问题,显式tau跳跃方法只有在继续采取与最快时间尺度相同的小时间步长时才能表现良好。隐式tau跳跃方法可以潜在地采取更大的步骤,并且仍然是稳定的。该算法将每个反应视为相互独立的。它自动选择一个时间间隔,使得每个反应的倾向函数的相对变化小于用户指定的容错。在选择一个时间间隔后,算法计算每个反应在时间间隔内发生的次数,并对所涉及的各种化学物质的浓度进行适当的改变。
优势
该算法可以比SSA快得多。它通常也比显式tau跳跃算法快。
你可以用这个算法来解决大问题,也可以用它来解决数值复杂的问题。
所采取的总步数通常小于显式-tau- leaps算法。
缺点
这个算法为了速度牺牲了一些准确性。
与显式tau跳跃算法相比,每一步的计算量都更高。这将导致每个步骤占用更大的CPU时间。
这种方法通常会抑制慢流形的扰动,从而减少关于平均值的状态方差。
参考文献
[1] Gibson m.a., Bruck J.(2000),“多物种和多通道化学系统的精确随机模拟”,物理化学杂志,105:1876-1899。
[2] Gillespie D.(1977),“耦合化学反应的精确随机模拟”,物理化学杂志,81(25):2340-2361。
[3] Gillespie D.(2000),“化学朗之万方程”,化学物理杂志,113(1):297-306。
[4] Gillespie D.(2001),“化学反应系统的近似加速随机模拟”,化学物理学报,115(4):1716-1733。
[5] Gillespie D., Petzold L.(2004),“改进的跳跃尺寸选择加速随机模拟”,化学物理学报,119:8229-8234
[6]曹勇,曹勇。(2003),“随机化学反应系统的刚度:隐式tou -跳跃方法”,化学物理学报,39(12):12784-12794。
[7] Moler, C.(2003),“刚度微分方程刚度是常微分方程数值解中一个微妙的、困难的和重要的概念”,MATLAB新闻和笔记。