@@ -2,15 +2,14 @@ using ModelingToolkit
22using DiffEqBase, StaticArrays
33
44@variables t y (t)[1 : 10 ]
5- y = collect (y)
65D = Differential (t)
76
87sa1sys = let
98 sa1eqs = [D (y[1 ]) ~ - 0.5 * y[1 ], D (y[2 ]) ~ - y[2 ], D (y[3 ]) ~ - 100 * y[3 ], D (y[4 ]) ~ - 90 * y[4 ]]
109 ODESystem (sa1eqs, t, name = :sa1 )
1110end
1211
13- sa1prob = ODEProblem {false} (sa1sys, y[1 : 4 ] .=> 1.0 , (0 , 20.0 ), dt = 1e-2 )
12+ sa1prob = ODEProblem {false} (sa1sys, collect ( y[1 : 4 ]) .=> 1.0 , (0 , 20.0 ), dt = 1e-2 )
1413
1514sa2sys = let
1615 sa2eqs = [D (y[1 ]) ~ - 1800 * y[1 ] + 900 * y[2 ]]
@@ -21,7 +20,7 @@ sa2sys = let
2120 ODESystem (sa2eqs, t, name = :sa2 )
2221end
2322
24- sa2prob = ODEProblem {false} (sa2sys, y[1 : 9 ] .=> 0.0 , (0 , 120.0 ), dt = 5e-4 )
23+ sa2prob = ODEProblem {false} (sa2sys, collect ( y[1 : 9 ]) .=> 0.0 , (0 , 120.0 ), dt = 5e-4 )
2524
2625sa3sys = let
2726 sa3eqs = [
@@ -33,132 +32,11 @@ sa3sys = let
3332 ODESystem (sa3eqs, t, name = :sa3 )
3433end
3534
36- sa3prob = ODEProblem {false} (sa3sys, y[1 : 4 ] .=> 1.0 , (0 , 20.0 ), dt = 1e-5 )
35+ sa3prob = ODEProblem {false} (sa3sys, collect ( y[1 : 4 ]) .=> 1.0 , (0 , 20.0 ), dt = 1e-5 )
3736
3837sa4sys = let
39- sa4eqs = [D (y[i]) ~ - i^ 5 * y[i] for i in 1 : 10 ]
40- ODESystem (sa4eqs, t, name = :sa4 )
41- end
42-
43- sa4prob = ODEProblem {false} (sa4sys, y[1 : 10 ] .=> 1.0 , (0 , 1.0 ), dt = 1e-5 )
44-
45- # const SA_PROBLEMS = [sa1prob, sa2prob, sa3prob, sa4prob]
46-
47- sb1sys = let
48- sb1eqs = [D (y[1 ]) ~ - y[1 ] + y[2 ],
49- D (y[2 ]) ~ - 100 y[1 ] - y[2 ],
50- D (y[3 ]) ~ - 100 y[3 ] + y[4 ],
51- D (y[4 ]) ~ - 10_000 y[3 ] - 100 y[4 ]]
52-
53- ODESystem (sb1eqs, t, name = :sb1 )
54- end
55-
56- sb1prob = ODEProblem {false} (sb1sys, [y[[1 , 3 ]] .=> 1.0 ; y[[2 , 4 ]] .=> 0.0 ;], (0 , 20.0 ), dt = 7e-3 )
57-
58-
59- @parameters α
60- sb2sys = let
61- sb2eqs = [D (y[1 ]) ~ - 10 y[1 ] + α * y[2 ],
62- D (y[2 ]) ~ - α * y[1 ] - 10 * y[2 ],
63- D (y[3 ]) ~ - 4 y[3 ],
64- D (y[4 ]) ~ - y[4 ],
65- D (y[5 ]) ~ - 0.5 y[5 ],
66- D (y[6 ]) ~ - 0.1 y[6 ]]
67-
68- ODESystem (sb2eqs, t, name = :sb2 )
69- end
70-
71- sb2prob = ODEProblem {false} (sb2sys, y .=> 1.0 , (0 , 20.0 ), [α => 3 ], dt = 1e-2 )
72- sb3prob = ODEProblem {false} (sb2sys, y .=> 1.0 , (0 , 20.0 ), [α => 8 ], dt = 1e-2 )
73- sb4prob = ODEProblem {false} (sb2sys, y .=> 1.0 , (0 , 20.0 ), [α => 25 ], dt = 1e-2 )
74- sb5prob = ODEProblem {false} (sb2sys, y .=> 1.0 , (0 , 20.0 ), [α => 100 ], dt = 1e-2 )
75-
76-
77- sc1sys = let
78- sc1eqs = [
79- D (y[1 ]) ~ - y[1 ] + y[2 ]^ 2 + y[3 ]^ 2 + y[4 ]^ 2 ,
80- D (y[2 ]) ~ - 10 y[2 ] + 10 * (y[3 ]^ 2 + y[4 ]^ 2 ),
81- D (y[3 ]) ~ - 40 y[3 ] + 40 * y[4 ]^ 2 ,
82- D (y[4 ]) ~ - 100 y[4 ] + 2 ]
83-
84- ODESystem (sc1eqs, t, name = :sc1 )
85- end
86-
87- sc1prob = ODEProblem {false} (sc1sys, y .=> 1.0 , (0 , 20.0 ), dt = 1e-2 )
88-
89-
90- @parameters β
91- sc2sys = let
92- sc2eqs = [D (y[1 ]) ~ - y[1 ] + 2 ,
93- D (y[2 ]) ~ - 10 y[2 ] + β * y[1 ]^ 2 ,
94- D (y[3 ]) ~ - 40 y[3 ] + 4 β * (y[1 ]^ 2 + y[2 ]^ 2 ),
95- D (y[4 ]) ~ - 100 y[4 ] + 10 β * (y[1 ]^ 2 + y[2 ]^ 2 + y[3 ]^ 2 )]
96-
97- ODESystem (sc2eqs, t, name = :sc2 )
98- end
99-
100- sc2prob = ODEProblem {false} (sc2sys, y .=> 1.0 , (0 , 20.0 ), [β => 0.1 ], dt = 1e-2 , cse = true )
101- sc3prob = ODEProblem {false} (sc2sys, y .=> 1.0 , (0 , 20.0 ), [β => 1.0 ], dt = 1e-2 , cse = true )
102- sc3prob = ODEProblem {false} (sc2sys, y .=> 1.0 , (0 , 20.0 ), [β => 10.0 ], dt = 1e-2 , cse = true )
103- sc3prob = ODEProblem {false} (sc2sys, y .=> 1.0 , (0 , 20.0 ), [β => 20.0 ], dt = 1e-2 , cse = true )
104-
105- sd1sys = let
106- sd1eqs = [D (y[1 ]) ~ 0.2 * (y[2 ] - y[1 ]),
107- D (y[2 ]) ~ 10 y[1 ] - (60 - 0.125 y[3 ])* y[2 ] + 0.125 y[3 ],
108- D (y[3 ]) ~ 1 ]
109-
110- ODESystem (sd1eqs, t, name = :sd1 )
111- end
112-
113- sd1prob = ODEProblem {false} (sd1sys, y .=> 0.0 , (0 , 400.0 ), [β => 0.1 ], dt = 1.7e-2 )
114-
115- sd2sys = let
116- sd2eqs = [D (y[1 ]) ~ - 0.04 y[1 ] + 0.01 * (y[2 ] * y[3 ]),
117- D (y[2 ]) ~ 400 y[1 ] - 100 * (y[2 ] * y[3 ]) - 3000 * y[2 ]^ 2 ,
118- D (y[3 ]) ~ 30 y[2 ]^ 2 ]
119-
120- ODESystem (sd2eqs, t, name = :sd2 )
121- end
122-
123- sd2prob = ODEProblem {false} (sd2sys, [y[1 ] => 1.0 ; y[2 : 3 ] .=> 0.0 ], (0 , 40.0 ), dt = 1e-5 , cse = true )
124-
125- sd3sys = let
126- sd3eqs = [D (y[1 ]) ~ y[3 ] - 100 * (y[1 ] * y[2 ]),
127- D (y[2 ]) ~ y[3 ] + 2 y[4 ] - 100 * (y[1 ] * y[2 ]) - 2e4 * y[2 ]^ 2 ,
128- D (y[3 ]) ~ - y[3 ] + 100 * (y[1 ] * y[2 ]),
129- D (y[4 ]) ~ - y[4 ] + 1e4 * y[2 ]^ 2 ]
130-
131- ODESystem (sd3eqs, t, name = :sd3 )
132- end
133-
134- sd3prob = ODEProblem {false} (sd3sys, [y[1 : 2 ] .=> 1 ; y[3 : 4 ] .=> 0.0 ], (0 , 20.0 ), dt = 2.5e-5 , cse = true )
135-
136- sd4sys = let
137- sd4eqs = [D (y[1 ]) ~ - 0.013 y[1 ] - 1000 * (y[1 ] * y[3 ]),
138- D (y[2 ]) ~ - 2500 * (y[2 ] * y[3 ]),
139- D (y[3 ]) ~ - 0.013 y[1 ] - 1000 * (y[1 ] * y[3 ]) - 2500 * (y[2 ] * y[3 ])]
140-
141- ODESystem (sd4eqs, t, name = :sd4 )
142- end
143-
144- sd4prob = ODEProblem {false} (sd4sys, [y[1 : 2 ] .=> 1 ; y[3 ] => 0.0 ], (0 , 50.0 ), dt = 2.9e-4 , cse = true )
145-
146- sd5sys = let
147- sd5eqs = [D (y[1 ]) ~ 0.01 - (1 + (y[1 ] + 1000 ) * (y[1 ] + 1 )) * (0.01 + y[1 ] + y[2 ]),
148- D (y[2 ]) ~ 0.01 - (1 + y[2 ]^ 2 ) * (0.01 + y[1 ] + y[2 ])]
149-
150- ODESystem (sd5eqs, t, name = :sd5 )
151- end
152-
153- sd5prob = ODEProblem {false} (sd5sys, y[1 : 2 ] .=> 0.0 , (0 , 100.0 ), dt = 1e-4 , cse = true )
154-
155- sd6sys = let
156- sd6eqs = [D (y[1 ]) ~ - y[1 ] + 10 ^ 8 * y[3 ] * (1 - y[1 ]),
157- D (y[2 ]) ~ - 10 y[2 ] + 3e7 * y[3 ] * (1 - y[2 ]),
158- D (y[3 ]) ~ - (- y[1 ] + 10 ^ 8 * y[3 ] * (1 - y[1 ])) - (- 10 y[2 ] + 3e7 * y[3 ] * (1 - y[2 ])),
159- ]
160-
161- ODESystem (sd6eqs, t, name = :sd6 )
38+ sa3eqs = [D (y[i]) ~ - i^ 5 * y[i] for i in 1 : 10 ]
39+ ODESystem (sa3eqs, t, name = :sa3 )
16240end
16341
164- sd6prob = ODEProblem {false} (sd6sys, [ y[1 ] => 1.0 ; y[ 2 : 3 ] .=> 0.0 ] , (0 , 1.0 ), dt = 3.3e-8 , cse = true )
42+ sa4prob = ODEProblem {false} (sa4sys, collect ( y[1 : 10 ]) .=> 1.0 , (0 , 1.0 ), dt = 1e-5 )
0 commit comments