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