11using ModelingToolkit
2- using IfElse
3- using Symbolics
2+ using ModelingToolkit. Symbolics
43using Symbolics: unwrap
54using DiffEqBase, StaticArrays, LinearAlgebra
65
@@ -124,7 +123,7 @@ sd2sys = let
124123 ODESystem (sd2eqs, t, name = :sd2 )
125124end
126125
127- sd2prob = ODEProblem {false} (sd2sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 40.0 ), dt = 1e-5 , cse = true )
126+ sd2prob = ODEProblem {false} (sd2sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 40.0 ), dt = 1e-5 )
128127
129128sd3sys = let
130129 sd3eqs = [D (y[1 ]) ~ y[3 ] - 100 * (y[1 ] * y[2 ]),
@@ -135,7 +134,7 @@ sd3sys = let
135134 ODESystem (sd3eqs, t, name = :sd3 )
136135end
137136
138- sd3prob = ODEProblem {false} (sd3sys, [y[1 : 2 ] .=> 1 ; y[3 : 4 ] .=> 0.0 ], (0 , 20.0 ), dt = 2.5e-5 , cse = true )
137+ sd3prob = ODEProblem {false} (sd3sys, [y[1 : 2 ] .=> 1 ; y[3 : 4 ] .=> 0.0 ], (0 , 20.0 ), dt = 2.5e-5 )
139138
140139sd4sys = let
141140 sd4eqs = [D (y[1 ]) ~ - 0.013 y[1 ] - 1000 * (y[1 ] * y[3 ]),
@@ -145,7 +144,7 @@ sd4sys = let
145144 ODESystem (sd4eqs, t, name = :sd4 )
146145end
147146
148- sd4prob = ODEProblem {false} (sd4sys, [y[1 : 2 ] .=> 1 ; y[3 ] => 0.0 ], (0 , 50.0 ), dt = 2.9e-4 , cse = true )
147+ sd4prob = ODEProblem {false} (sd4sys, [y[1 : 2 ] .=> 1 ; y[3 ] => 0.0 ], (0 , 50.0 ), dt = 2.9e-4 )
149148
150149sd5sys = let
151150 sd5eqs = [D (y[1 ]) ~ 0.01 - (1 + (y[1 ] + 1000 ) * (y[1 ] + 1 )) * (0.01 + y[1 ] + y[2 ]),
@@ -154,7 +153,7 @@ sd5sys = let
154153 ODESystem (sd5eqs, t, name = :sd5 )
155154end
156155
157- sd5prob = ODEProblem {false} (sd5sys, y[1 : 2 ] .=> 0.0 , (0 , 100.0 ), dt = 1e-4 , cse = true )
156+ sd5prob = ODEProblem {false} (sd5sys, y[1 : 2 ] .=> 0.0 , (0 , 100.0 ), dt = 1e-4 )
158157
159158sd6sys = let
160159 sd6eqs = [D (y[1 ]) ~ - y[1 ] + 10 ^ 8 * y[3 ] * (1 - y[1 ]),
@@ -165,7 +164,7 @@ sd6sys = let
165164 ODESystem (sd6eqs, t, name = :sd6 )
166165end
167166
168- sd6prob = ODEProblem {false} (sd6sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 1.0 ), dt = 3.3e-8 , cse = true )
167+ sd6prob = ODEProblem {false} (sd6sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 1.0 ), dt = 3.3e-8 )
169168
170169se1sys = let
171170 Γ = 100
@@ -178,7 +177,7 @@ se1sys = let
178177 ODESystem (se1eqs, t, name = :se1 )
179178end
180179
181- se1prob = ODEProblem {false} (se1sys, y .=> 0.0 , (0 , 1.0 ), dt = 6.8e-3 , cse = true )
180+ se1prob = ODEProblem {false} (se1sys, y .=> 0.0 , (0 , 1.0 ), dt = 6.8e-3 )
182181
183182se2sys = let
184183 se2eqs = [D (y[1 ]) ~ y[2 ],
@@ -188,7 +187,7 @@ se2sys = let
188187 ODESystem (se2eqs, t, name = :se2 )
189188end
190189
191- se2prob = ODEProblem {false} (se2sys, [y[1 ] => 2.0 , y[2 ] => 0.0 ], (0 , 1.0 ), dt = 1e-3 , cse = true )
190+ se2prob = ODEProblem {false} (se2sys, [y[1 ] => 2.0 , y[2 ] => 0.0 ], (0 , 1.0 ), dt = 1e-3 )
192191
193192se3sys = let
194193 se3eqs = [D (y[1 ]) ~ - (55 + y[3 ]) * y[1 ] + 65 * y[2 ],
@@ -214,7 +213,7 @@ se4sys = let y = y
214213 ODESystem (se4eqs, t, name = :se4 )
215214end
216215
217- se4prob = ODEProblem {false} (se4sys, [y[1 ] => 0.0 ; y[2 ] => - 2.0 ; y[3 : 4 ] .=> - 1.0 ], (0 , 1000.0 ), dt = 1e-3 , cse = true )
216+ se4prob = ODEProblem {false} (se4sys, [y[1 ] => 0.0 ; y[2 ] => - 2.0 ; y[3 : 4 ] .=> - 1.0 ], (0 , 1000.0 ), dt = 1e-3 )
218217
219218se5sys = let
220219 se5eqs = [
@@ -227,7 +226,7 @@ se5sys = let
227226 ODESystem (se5eqs, t, name = :se5 )
228227end
229228
230- se5prob = ODEProblem {false} (se5sys, [y[1 ] => 1.76e-3 ; y[2 : 4 ] .=> 0.0 ], (0 , 1000.0 ), dt = 1e-3 , cse = true )
229+ se5prob = ODEProblem {false} (se5sys, [y[1 ] => 1.76e-3 ; y[2 : 4 ] .=> 0.0 ], (0 , 1000.0 ), dt = 1e-3 )
231230
232231sf1sys = let
233232 k = exp (20.7 - 1500 / y[1 ])
@@ -241,7 +240,7 @@ sf1sys = let
241240 ODESystem (sf1eqs, t, name = :sf1 )
242241end
243242
244- sf1prob = ODEProblem {false} (sf1sys, [y[1 ] => 761.0 ; y[2 ] => 0.0 ; y[3 ] => 600.0 ; y[4 ] => 0.1 ], (0 , 1000.0 ), dt = 1e-4 , cse = true )
243+ sf1prob = ODEProblem {false} (sf1sys, [y[1 ] => 761.0 ; y[2 ] => 0.0 ; y[3 ] => 600.0 ; y[4 ] => 0.1 ], (0 , 1000.0 ), dt = 1e-4 )
245244
246245sf2sys = let
247246 sf2eqs = [
@@ -252,7 +251,7 @@ sf2sys = let
252251 ODESystem (sf2eqs, t, name = :sf2 )
253252end
254253
255- sf2prob = ODEProblem {false} (sf2sys, [y[1 ] => 1.0 ; y[2 ] => 0.0 ], (0 , 240.0 ), dt = 1e-2 , cse = true )
254+ sf2prob = ODEProblem {false} (sf2sys, [y[1 ] => 1.0 ; y[2 ] => 0.0 ], (0 , 240.0 ), dt = 1e-2 )
256255
257256sf3sys = let
258257 sf3eqs = [
@@ -266,7 +265,7 @@ sf3sys = let
266265 ODESystem (sf3eqs, t, name = :sf3 )
267266end
268267
269- sf3prob = ODEProblem {false} (sf3sys, [y[1 ] => 4e-6 ; y[2 ] => 1e-6 ; y[3 : 5 ] .=> 0.0 ], (0 , 100.0 ), dt = 1e-6 , cse = true )
268+ sf3prob = ODEProblem {false} (sf3sys, [y[1 ] => 4e-6 ; y[2 ] => 1e-6 ; y[3 : 5 ] .=> 0.0 ], (0 , 100.0 ), dt = 1e-6 )
270269
271270sf4sys = let
272271 sf4eqs = [
@@ -278,7 +277,7 @@ sf4sys = let
278277 ODESystem (sf4eqs, t, name = :sf4 )
279278end
280279
281- sf4prob = ODEProblem {false} (sf4sys, [y[1 ] => 4.0 ; y[2 ] => 1.1 ; y[3 ] => 4.0 ], (0 , 300.0 ), dt = 1e-3 , cse = true )
280+ sf4prob = ODEProblem {false} (sf4sys, [y[1 ] => 4.0 ; y[2 ] => 1.1 ; y[3 ] => 4.0 ], (0 , 300.0 ), dt = 1e-3 )
282281
283282sf5sys = let
284283 sf5eqs = [
@@ -291,7 +290,7 @@ sf5sys = let
291290 ODESystem (sf5eqs, t, name = :sf5 )
292291end
293292
294- sf5prob = ODEProblem {false} (sf5sys, [y[1 ] => 3.365e-7 ; y[2 ] => 8.261e-3 ; y[3 ] => 1.642e-3 ; y[4 ] => 9.38e-6 ], (0 , 100.0 ), dt = 1e-7 , cse = true )
293+ sf5prob = ODEProblem {false} (sf5sys, [y[1 ] => 3.365e-7 ; y[2 ] => 8.261e-3 ; y[3 ] => 1.642e-3 ; y[4 ] => 9.38e-6 ], (0 , 100.0 ), dt = 1e-7 )
295294
296295# Non-stiff
297296na1sys = let y = y[1 ]
@@ -300,39 +299,39 @@ na1sys = let y = y[1]
300299 ODESystem (na1eqs, t, name = :na1 )
301300end
302301
303- na1prob = ODEProblem {false} (na1sys, [y[1 ] => 1 ], (0 , 20.0 ), cse = true )
302+ na1prob = ODEProblem {false} (na1sys, [y[1 ] => 1 ], (0 , 20.0 ))
304303
305304na2sys = let y = y[1 ]
306305 na2eqs = D (y) ~ - y^ 3 / 2
307306
308307 ODESystem (na2eqs, t, name = :na2 )
309308end
310309
311- na2prob = ODEProblem {false} (na2sys, [y[1 ] => 1 ], (0 , 20.0 ), cse = true )
310+ na2prob = ODEProblem {false} (na2sys, [y[1 ] => 1 ], (0 , 20.0 ))
312311
313312na3sys = let y = y[1 ]
314313 na3eqs = D (y) ~ y * cos (t)
315314
316315 ODESystem (na3eqs, t, name = :na3 )
317316end
318317
319- na3prob = ODEProblem {false} (na3sys, [y[1 ] => 1 ], (0 , 20.0 ), cse = true )
318+ na3prob = ODEProblem {false} (na3sys, [y[1 ] => 1 ], (0 , 20.0 ))
320319
321320na4sys = let y = y[1 ]
322321 na4eqs = D (y) ~ y/ 4 * (1 - y/ 20 )
323322
324323 ODESystem (na4eqs, t, name = :na4 )
325324end
326325
327- na4prob = ODEProblem {false} (na4sys, [y[1 ] => 1 ], (0 , 20.0 ), cse = true )
326+ na4prob = ODEProblem {false} (na4sys, [y[1 ] => 1 ], (0 , 20.0 ))
328327
329328na5sys = let y = y[1 ]
330329 na5eqs = D (y) ~ (y - t) / (y + t)
331330
332331 ODESystem (na5eqs, t, name = :na5 )
333332end
334333
335- na5prob = ODEProblem {false} (na5sys, [y[1 ] => 4 ], (0 , 20.0 ), cse = true )
334+ na5prob = ODEProblem {false} (na5sys, [y[1 ] => 4 ], (0 , 20.0 ))
336335
337336nb1sys = let
338337 nb1eqs = [
@@ -343,7 +342,7 @@ nb1sys = let
343342 ODESystem (nb1eqs, t, name = :nb1 )
344343end
345344
346- nb1prob = ODEProblem {false} (nb1sys, [y[1 ] => 1.0 , y[2 ] => 3 ], (0 , 20.0 ), cse = true )
345+ nb1prob = ODEProblem {false} (nb1sys, [y[1 ] => 1.0 , y[2 ] => 3 ], (0 , 20.0 ))
347346
348347nb2sys = let
349348 nb2eqs = [
@@ -355,7 +354,7 @@ nb2sys = let
355354 ODESystem (nb2eqs, t, name = :nb2 )
356355end
357356
358- nb2prob = ODEProblem {false} (nb2sys, [y[1 ] => 2.0 , y[2 ] => 0.0 , y[3 ] => 1.0 ], (0 , 20.0 ), cse = true )
357+ nb2prob = ODEProblem {false} (nb2sys, [y[1 ] => 2.0 , y[2 ] => 0.0 , y[3 ] => 1.0 ], (0 , 20.0 ))
359358
360359nb3sys = let
361360 nb3eqs = [
@@ -367,7 +366,7 @@ nb3sys = let
367366 ODESystem (nb3eqs, t, name = :nb3 )
368367end
369368
370- nb3prob = ODEProblem {false} (nb3sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 20.0 ), cse = true )
369+ nb3prob = ODEProblem {false} (nb3sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 20.0 ))
371370
372371nb4sys = let
373372 r = sqrt (y[1 ]^ 2 + y[2 ]^ 2 )
@@ -380,7 +379,7 @@ nb4sys = let
380379 ODESystem (nb4eqs, t, name = :nb4 )
381380end
382381
383- nb4prob = ODEProblem {false} (nb4sys, [y[1 ] => 3.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 20.0 ), cse = true )
382+ nb4prob = ODEProblem {false} (nb4sys, [y[1 ] => 3.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 20.0 ))
384383
385384nb5sys = let
386385 nb5eqs = [
@@ -392,7 +391,7 @@ nb5sys = let
392391 ODESystem (nb5eqs, t, name = :nb5 )
393392end
394393
395- nb5prob = ODEProblem {false} (nb5sys, [y[1 ] => 0.0 ; y[2 : 3 ] .=> 1.0 ], (0 , 20.0 ), cse = true )
394+ nb5prob = ODEProblem {false} (nb5sys, [y[1 ] => 0.0 ; y[2 : 3 ] .=> 1.0 ], (0 , 20.0 ))
396395
397396nc1sys = let y = y
398397 n = 10
@@ -412,7 +411,7 @@ nc2sys = let y = y
412411 ODESystem (nc2eqs, t, name = :nc2 )
413412end
414413
415- nc2prob = ODEProblem {false} (nc2sys, [y[1 ] => 1.0 ; y[2 : 10 ] .=> 0.0 ], (0 , 20.0 ), cse = true )
414+ nc2prob = ODEProblem {false} (nc2sys, [y[1 ] => 1.0 ; y[2 : 10 ] .=> 0.0 ], (0 , 20.0 ))
416415
417416nc3sys = let y = y
418417 n = 10
@@ -422,7 +421,7 @@ nc3sys = let y = y
422421 ODESystem (nc3eqs, t, name = :nc3 )
423422end
424423
425- nc3prob = ODEProblem {false} (nc3sys, [y[1 ] => 1.0 ; y[2 : 10 ] .=> 0.0 ], (0 , 20.0 ), cse = true )
424+ nc3prob = ODEProblem {false} (nc3sys, [y[1 ] => 1.0 ; y[2 : 10 ] .=> 0.0 ], (0 , 20.0 ))
426425
427426@variables y (t)[1 : 51 ]
428427y = collect (y)
@@ -434,7 +433,7 @@ nc4sys = let y = y
434433 ODESystem (nc4eqs, t, name = :nc4 )
435434end
436435
437- nc4prob = ODEProblem {false} (nc4sys, [y[1 ] => 1.0 ; y[2 : 51 ] .=> 0.0 ], (0 , 20.0 ), cse = true )
436+ nc4prob = ODEProblem {false} (nc4sys, [y[1 ] => 1.0 ; y[2 : 51 ] .=> 0.0 ], (0 , 20.0 ))
438437
439438@variables y (t)[1 : 3 , 1 : 5 ]
440439y = collect (y)
@@ -470,7 +469,7 @@ ys′ = [-0.557160570446, 0.505696783289, 0.230578543901,
470469y0 = y .=> reshape (ys, 3 , 5 )
471470y0′ = D .(y) .=> reshape (ys′, 3 , 5 )
472471# The orginal paper has t_f = 20, but 1000 looks way better
473- nc5prob = ODEProblem {false} (nc5sys, [y0; y0′], (0 , 20.0 ), cse = true )
472+ nc5prob = ODEProblem {false} (nc5sys, [y0; y0′], (0 , 20.0 ))
474473
475474@variables y (t)[1 : 4 ]
476475y = collect (y)
@@ -514,7 +513,7 @@ ne2sys = let
514513end
515514
516515y0 = [y[1 ] => 2.0 ; y[2 ] => 0.0 ]
517- ne2prob = ODEProblem {false} (ne2sys, y0, (0 , 20.0 ), cse = true )
516+ ne2prob = ODEProblem {false} (ne2sys, y0, (0 , 20.0 ))
518517
519518ne3sys = let
520519 ne3eqs = [D (y[1 ]) ~ y[2 ],
0 commit comments