此示例显示了如何使用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(模型,'积极的');
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');
如果不关闭图形窗口,请使用显式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,'离开');
fprintf('近似SSA步骤:%d \ n',(长度(t_ssa)* 10));
近似SSA步骤数:616010
fprintf('近似的明确TAU - 跳跃步骤:%d \ n'那......(长度(t_etl)* 10)));
明确的Tau跳跃步骤数量:620