Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {k1 = 1.1, k2 = 0.1, k3 = 0.8, e = 100, s = 100, c = 1, p = 1,
- numOfReaction = 100, numOfsim = 10};
- sim = NestList[(
- [CapitalDelta]t1 =
- RandomVariate@ExponentialDistribution[k1 #[[2]] #[[3]]];
- [CapitalDelta]t2 =
- RandomVariate@ExponentialDistribution[k2 #[[4]]];
- [CapitalDelta]t = Min[[CapitalDelta]t1, [CapitalDelta]t2];
- If[[CapitalDelta]t1 < [CapitalDelta]t2, {#[[
- 1]] + [CapitalDelta]t, #[[2]] - 1, #[[3]] - 1, #[[4]] +
- 1}, {#[[1]] + [CapitalDelta]t, #[[4]] - 1, #[[2]] +
- 1, #[[3]] + 1}]) &, {0, e, s, c}, numOfReaction];
- ListStepPlot[{Transpose@{sim[[All, 1]], sim[[All, 2]]},
- Transpose@{sim[[All, 1]], sim[[All, 4]]}},
- PlotLegends -> {"Simulation"},
- PlotStyle -> Directive[AbsoluteThickness[0.2]], Frame -> True,
- PlotTheme -> "Detailed", FrameLabel -> {"Time", "Population"},
- ImageSize -> Large]
- NestList[(
- [CapitalDelta]t1 =
- RandomVariate[ExponentialDistribution[k1 #[[2]] #[[3]]]];
- [CapitalDelta]t2 =
- RandomVariate[ExponentialDistribution[k2 #[[4]]]];
- [CapitalDelta]t3 =
- RandomVariate[ExponentialDistribution[k3 #[[4]]]];
- [CapitalDelta]t =
- Min[{[CapitalDelta]t1, [CapitalDelta]t2, [CapitalDelta]t3}];
- If[[CapitalDelta]t1 < [CapitalDelta]t2, {#[[
- 1]] + [CapitalDelta]t, #[[2]] - 1, #[[3]] - 1, #[[4]] +
- 1}, {#[[4]] - 1, #[[2]] + 1, #[[3]] + 1}];
- If[[CapitalDelta]t1 < [CapitalDelta]t3, {#[[
- 1]] + [CapitalDelta]t, #[[2]] - 1, #[[3]] - 1, #[[4]] +
- 1}, {#[[4]] - 1, #[[2]] + 1, #[[5]] + 1}];
- If[[CapitalDelta]t2 < [CapitalDelta]t3, {#[[
- 1]] + [CapitalDelta]t, #[[4]] - 1, #[[2]] + 1, #[[3]] +
- 1}, {#[[4]] - 1, #[[2]] + 1, #[[4]] + 1}]) &, {0, e, s,
- c}, numOfReaction]
Add Comment
Please, Sign In to add comment