主要内容

比较SSA和明确的Tau-跳跃随机求解器

此示例显示了如何使用SSA随机求解器和显式TAU跳闸求解器构建和模拟模型。

将构建下列衰减二聚反应,并随机模拟:

  • 反应1:S1 - > NULL,反应速率常数,C1 = 1.0

  • 反应2:2 S1 - > S2,具有反应速率常数,前进:C2F = 0.002反向:C2R = 0.5

  • 反应3:S2 - > S3,反应速率恒定,C3 = 0.04

  • 初始条件:S1 = 100000分子,S2 = S3 = 0

该示例使用Daniel T. Gillespie,2001中所述的参数和条件,“化学反应系统的近似加速随机模拟”化学物理学,Vol。115,没有。4,pp。1716-1733。

创建腐朽二聚体模型

型号= SBIOMODEL('腐烂 - 二聚体反应集');

输入反应

R1 = AddReaction(模型,'s1  - > null');R2 = AddReacection(模型,'2 s1 < - > s2');r3 = AddReacection(模型,'s2  - > s3');

设定大量的反应

kl1 = addkineticlaw(r1,'批量分离');kl2 = addkineticlaw(r2,'批量分离');kl3 = addkineticlaw(R3,'批量分离');

为每次反应添加速率常数

p1 = addparameter(kl1,'c1''价值',1.0);p2f = addparameter(kl2,'c2f''价值',0.002);p2r = addparameter(kl2,'c2r''价值',0.5);p3 = addparameter(kl3,'c3''价值',0.04);

为每个动力学法设置动力学法常数。

kl1.parametervariablenames = {'c1'};kl2.parametervariablenames = {'c2f''c2r'};kl3.parametervariablenames = {'c3'};

指定每个物种的初始金额

模型.pecies(1).initialamount = 100000;%S1模型.pecies(2).initialamount = 0;%S2model.species(3).initialamount = 0;%S3

显示已完成的模型对象

模型
型号=素质模型 - 衰减二聚化反应设定模型组件:隔间:1事件:0参数:4反应:3规则:0种:3可观察到:0

显示反应物体

模型
ans =素质反应阵列指数:反应:1 s1-> null 2 2 s1 < - > s2 3 s2  - > s3

显示物种对象

模型
ans =素质物种数组阵列索引:隔间:名称:值:单位:1未命名的S1 100000 2未命名的S2 0 3未命名的S3 0

获取模型的活动配置集。

cs = getConfigset(模型,'积极的');

使用SSA随机求解器和图模拟模型

tfinal = 30,记录每个第10个数据点。

cs.solvertype ='SSA';cs.stoptime = 30;Solver = CS.SolverOptions;solver.logdecimation = 10;cs.compileOptions.dimensionalAnalysis = false;[t_ssa,x_ssa] = sbiosimulate(型号);H1 =子图(2,1,1);绘图(H1,T_SSA,X_SSA(:,1),'。');h2 =子图(2,1,2);绘图(H2,T_SSA,X_SSA(:,2:3),'。');网格(H1,'上');网格(H2,'上');标题(H1,'衰变二聚体反应');Ylabel(H1,'S1'的数量);Ylabel(H2,'S2&S3'的数量);Xlabel(H2,'时间');传奇(H2,'s2''s3');

图包含2个轴。具有标题衰减的轴1二聚体反应含有类型线的物体。轴2包含2个类型的2个物体。这些对象代表S2,S3。

模拟模型使用同一图中的显式TAU跳阵击和情节

如果不关闭图形窗口,请使用显式Tau跳动求解器绘制结果。

tfinal = 30,记录每个第10个数据点。求解器的可接受误差容差,0.03。

cs.stoptime = 30;cs.solvertype ='Expltau';Solver = CS.SolverOptions;solver.logdecimation = 10;[t_etl,x_etl] = sbiosimulate(模型);持有(H1,'上');持有(H2,'上');绘图(H1,T_ETL,X_ETL(:,1),'o');绘图(H2,T_ETL,X_ETL(:,2:3),'o');传奇(H2,'S2(SSA)''s3(ssa)''S2(exp.Tau)''S3(exp.Tau)');持有(H1,'离开');持有(H2,'离开');

图包含2个轴。具有标题衰减二聚反应的轴1含有2个类型的2个物体。轴2包含4个类型线的物体。这些对象代表S2(SSA),S3(SSA),S2(Exp.Tau),S3(Exp.Tau)。

SSA和显式TAU跨越算法的步骤数量比较

fprintf('近似SSA步骤:%d \ n',(长度(t_ssa)* 10));
近似SSA步骤数:616010
fprintf('近似的明确TAU  - 跳跃步骤:%d \ n'......(长度(t_etl)* 10)));
明确的Tau跳跃步骤数量:620