@@ -13,12 +13,16 @@ rxs = [Reaction(k[1], nothing, [A]), # 0 -> A
13
13
Reaction (k[9 ], [A,B], [C,D]), # A + B -> C + D
14
14
Reaction (k[10 ], [A], [C,D], [2 ], [1 ,1 ]), # 2A -> C + D
15
15
Reaction (k[11 ], [A], [A,B], [2 ], [1 ,1 ]), # 2A -> A + B
16
- Reaction (k[12 ], [A,B,C], [C,D], [1 ,3 ,4 ], [2 , 3 ]), # A+3B+4C -> 2C + 3D
17
- Reaction (k[13 ], [A,B], nothing , [3 ,1 ], nothing ), # 3A+B -> 0
18
- Reaction (k[14 ], nothing , [A], nothing , [2 ]), # 0 -> 2A
19
- Reaction (k[15 ]* A/ (2 + A), [A], nothing ; only_use_rate= true ), # A -> 0 with custom rate
20
- Reaction (k[16 ], [A], [B]; only_use_rate= true ), # A -> B with custom rate.
21
- ]
16
+ Reaction (k[12 ], [A,B,C], [C,D], [1 ,3 ,4 ], [2 , 3 ]), # A+3B+4C -> 2C + 3D
17
+ Reaction (k[13 ], [A,B], nothing , [3 ,1 ], nothing ), # 3A+B -> 0
18
+ Reaction (k[14 ], nothing , [A], nothing , [2 ]), # 0 -> 2A
19
+ Reaction (k[15 ]* A/ (2 + A), [A], nothing ; only_use_rate= true ), # A -> 0 with custom rate
20
+ Reaction (k[16 ], [A], [B]; only_use_rate= true ), # A -> B with custom rate.
21
+ Reaction (k[17 ]* A* exp (B), [C], [D], [2 ], [1 ]), # 2C -> D with non constant rate.
22
+ Reaction (k[18 ]* B, nothing , [B], nothing , [2 ]), # 0 -> 2B with non constant rate.
23
+ Reaction (k[19 ]* t, [A], [B]), # A -> B with non constant rate.
24
+ Reaction (k[20 ]* t* A, [B,C], [D],[2 ,1 ],[2 ]) # 2A +B -> 2C with non constant rate.
25
+ ]
22
26
rs = ReactionSystem (rxs,t,[A,B,C,D],k)
23
27
odesys = convert (ODESystem,rs)
24
28
sdesys = convert (SDESystem,rs)
@@ -27,10 +31,10 @@ sdesys = convert(SDESystem,rs)
27
31
function oderhs (u,k,t)
28
32
A = u[1 ]; B = u[2 ]; C = u[3 ]; D = u[4 ];
29
33
du = zeros (eltype (u),4 )
30
- du[1 ] = k[1 ] - k[3 ]* A + k[4 ]* C + 2 * k[5 ]* C - k[6 ]* A* B + k[7 ]* B^ 2 / 2 - k[9 ]* A* B - k[10 ]* A^ 2 - k[11 ]* A^ 2 / 2 - k[12 ]* A* B^ 3 * C^ 4 / 144 - 3 * k[13 ]* A^ 3 * B/ 6 + 2 * k[14 ] - k[15 ]* A/ (2 + A) - k[16 ]
31
- du[2 ] = - k[2 ]* B + k[4 ]* C - k[6 ]* A* B - k[7 ]* B^ 2 - k[8 ]* A* B - k[9 ]* A* B + k[11 ]* A^ 2 / 2 - 3 * k[12 ]* A* B^ 3 * C^ 4 / 144 - k[13 ]* A^ 3 * B/ 6 + k[16 ]
32
- du[3 ] = k[3 ]* A - k[4 ]* C - k[5 ]* C + k[6 ]* A* B + k[8 ]* A* B + k[9 ]* A* B + k[10 ]* A^ 2 / 2 - 2 * k[12 ]* A* B^ 3 * C^ 4 / 144
33
- du[4 ] = k[9 ]* A* B + k[10 ]* A^ 2 / 2 + 3 * k[12 ]* A* B^ 3 * C^ 4 / 144
34
+ du[1 ] = k[1 ] - k[3 ]* A + k[4 ]* C + 2 * k[5 ]* C - k[6 ]* A* B + k[7 ]* B^ 2 / 2 - k[9 ]* A* B - k[10 ]* A^ 2 - k[11 ]* A^ 2 / 2 - k[12 ]* A* B^ 3 * C^ 4 / 144 - 3 * k[13 ]* A^ 3 * B/ 6 + 2 * k[14 ] - k[15 ]* A/ (2 + A) - k[16 ] - k[ 19 ] * t * A
35
+ du[2 ] = - k[2 ]* B + k[4 ]* C - k[6 ]* A* B - k[7 ]* B^ 2 - k[8 ]* A* B - k[9 ]* A* B + k[11 ]* A^ 2 / 2 - 3 * k[12 ]* A* B^ 3 * C^ 4 / 144 - k[13 ]* A^ 3 * B/ 6 + k[16 ] + 2 * k[ 18 ] * B + k[ 19 ] * t * A - 2 * k[ 20 ] * t * A * B ^ 2 * C
36
+ du[3 ] = k[3 ]* A - k[4 ]* C - k[5 ]* C + k[6 ]* A* B + k[8 ]* A* B + k[9 ]* A* B + k[10 ]* A^ 2 / 2 - 2 * k[12 ]* A* B^ 3 * C^ 4 / 144 - 2 * k[ 17 ] * A * exp (B) * C ^ 2 / 2 - k[ 20 ] * t * A * B ^ 2 * C
37
+ du[4 ] = k[9 ]* A* B + k[10 ]* A^ 2 / 2 + 3 * k[12 ]* A* B^ 3 * C^ 4 / 144 + k[ 17 ] * A * exp (B) * C ^ 2 / 2 + 2 * k[ 20 ] * t * A * B ^ 2 * C
34
38
du
35
39
end
36
40
@@ -52,10 +56,14 @@ function sdenoise(u,k,t)
52
56
- 2 * sqrt (k[10 ]* A^ 2 / 2 ) z sqrt (k[10 ]* A^ 2 / 2 ) sqrt (k[10 ]* A^ 2 / 2 );
53
57
- sqrt (k[11 ]* A^ 2 / 2 ) sqrt (k[11 ]* A^ 2 / 2 ) z z;
54
58
- sqrt (k[12 ]* A* B^ 3 * C^ 4 / 144 ) - 3 * sqrt (k[12 ]* A* B^ 3 * C^ 4 / 144 ) - 2 * sqrt (k[12 ]* A* B^ 3 * C^ 4 / 144 ) 3 * sqrt (k[12 ]* A* B^ 3 * C^ 4 / 144 );
55
- - 3 * sqrt (k[13 ]* A^ 3 * B/ 6 ) - sqrt (k[13 ]* A^ 3 * B/ 6 ) z z
59
+ - 3 * sqrt (k[13 ]* A^ 3 * B/ 6 ) - sqrt (k[13 ]* A^ 3 * B/ 6 ) z z;
56
60
2 * sqrt (k[14 ]) z z z;
57
- - sqrt (k[15 ]* A/ (2 + A)) z z z]'
58
-
61
+ - sqrt (k[15 ]* A/ (2 + A)) z z z;
62
+ - sqrt (k[16 ]) sqrt (k[16 ]) z z;
63
+ z z - 2 * sqrt (k[17 ]* A* exp (B)* C^ 2 / 2 ) sqrt (k[17 ]* A* exp (B)* C^ 2 / 2 );
64
+ z 2 * sqrt (k[18 ]* B) z z;
65
+ - sqrt (k[19 ]* t* A) sqrt (k[19 ]* t* A) z z;
66
+ z - 2 * sqrt (k[20 ]* t* A* B^ 2 * C) - sqrt (k[20 ]* t* A* B^ 2 * C) + 2 * sqrt (k[20 ]* t* A* B^ 2 * C)]'
59
67
return G
60
68
end
61
69
0 commit comments