选择绝对宽容和相对容忍模拟
SimBiology®使用AbsoluteTolerance
和RelativeTolerance
控制集成在模拟的准确性。具体地说,AbsoluteTolerance
用于控制允许的最大绝对误差在任何一步模拟。它控制解决方案时小的错误。凭直觉,当解决方案趋于0时,AbsoluteTolerance
下面阈值的准确性,你不要担心这个解决方案,因为它实际上是0。RelativeTolerance
控制单个步骤的相对误差的积分器。直观地说,它控制的有效数字解决方案,除非它是小于绝对宽容,和
的数量是正确的数字。
算法
在每个仿真步骤我
,解算器估计本地错误e
在国家j
的模拟。解算器减少时间步的大小我
直到误差状态满足:
因此在状态值更大的大小,取决于准确性RelativeTolerance
。状态值接近零,精度控制AbsoluteTolerance
。
值的正确的选择RelativeTolerance
和AbsoluteTolerance
根据不同的问题。默认值可能为第一次试验的仿真工作。当你调整公差,考虑到有权衡速度和准确性:
如果仿真花费的时间太长,你可以增加(或放松)的值
RelativeTolerance
和AbsoluteTolerance
在一些成本的准确性。如果结果不准确,你可以减少(或收紧)的相对公差值除以10N,其中N是一个真正的正数。但这往往会减缓解算器。
如果国家的大小值高,可以降低相对宽容,得到更准确的结果。
绝对宽容扩展
SimBiology如何使用AbsoluteTolerance
确定误差取决于AbsoluteToleranceScaling
属性启用。默认情况下,AbsoluteToleranceScaling
启用这意味着每个国家都有自己的绝对宽容可能增加的模拟:
CSAbsTol
是AbsoluteTolerance
属性中定义SolverOptions
激活配置集的对象。
对于具有非零初始值的状态,规模是相对于传统的最大状态,如模拟到目前为止:
对于一个国家的初始值为零,规模估计的状态值在试验步骤大小AbsoluteToleranceStepSize
使用欧拉方法。让我们调用这个值你们(j)
。然后:
如果一个初始状态是零,没有动态时间= 0,然后:
剂量、事件和初始分配规则在仿真时间= 0时不考虑计算绝对宽容缩放。