@@ -36,8 +36,7 @@ function h_dde_DDETST_A1(p, t)
36
36
end
37
37
38
38
const prob_dde_DDETST_A1 =
39
- DDEProblem (f_dde_DDETST_A1, 0.5 , h_dde_DDETST_A1, (0.0 , 500.0 );
40
- constant_lags = [14 ])
39
+ DDEProblem (f_dde_DDETST_A1, h_dde_DDETST_A1, (0.0 , 500.0 ); constant_lags = [14 ])
41
40
42
41
# Problem A2
43
42
@doc raw """
@@ -79,16 +78,22 @@ function f_dde_DDETST_A2!(du, u, h, p, t)
79
78
nothing
80
79
end
81
80
82
- function h_dde_DDETST_A2 (p, t; idxs = 1 )
83
- idxs == 1 || error (" history function is only implemented for the first component" )
81
+ function h_dde_DDETST_A2 (p, t; idxs:: Union{Nothing,Int} = nothing )
84
82
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
85
83
86
- 1.05767027 / 3
84
+ if idxs === nothing
85
+ [1.05767027 / 3 , 1.030713491 / 3 ]
86
+ elseif idxs == 1
87
+ 1.05767027 / 3
88
+ elseif idxs == 2
89
+ 1.030713491 / 3
90
+ else
91
+ error (" delay differential equation consists of two components" )
92
+ end
87
93
end
88
94
89
95
const prob_dde_DDETST_A2 =
90
- DDEProblem (f_dde_DDETST_A2!, [1.05767027 / 3 ; 1.030713491 / 3 ], h_dde_DDETST_A2, (0.0 , 100.0 );
91
- constant_lags = [20 ])
96
+ DDEProblem (f_dde_DDETST_A2!, h_dde_DDETST_A2, (0.0 , 100.0 ); constant_lags = [20 ])
92
97
93
98
# Problem B2
94
99
@doc raw """
136
141
137
142
const prob_dde_DDETST_B1 =
138
143
DDEProblem (DDEFunction (f_dde_DDETST_B1; analytic = fanalytic_dde_DDETST_B1),
139
- log ( 0.1 ), h_dde_DDETST_B1, (0.1 , 10.0 );
140
- dependent_lags = [( u, p, t) -> t - exp (1 - 1 / t)] )
144
+ h_dde_DDETST_B1, (0.1 , 10.0 );
145
+ dependent_lags = (( u, p, t) -> t - exp (1 - 1 / t),) )
141
146
142
147
# Problem B2
143
148
@doc raw """
200
205
201
206
const prob_dde_DDETST_B2 =
202
207
DDEProblem (DDEFunction (f_dde_DDETST_B2; analytic = fanalytic_dde_DDETST_B2),
203
- 1.0 , h_dde_DDETST_B2, (0.0 , 2 * log (66 ));
208
+ h_dde_DDETST_B2, (0.0 , 2 * log (66 ));
204
209
dependent_lags = ((u, p, t) -> t / 2 ,))
205
210
206
211
# Problem C1
@@ -231,8 +236,8 @@ function h_dde_DDETST_C1(p, t)
231
236
end
232
237
233
238
const prob_dde_DDETST_C1 =
234
- DDEProblem (f_dde_DDETST_C1, 0.5 , h_dde_DDETST_C1, (0.0 , 30.0 );
235
- dependent_lags = [( u, p, t) -> 1 + abs (u)] )
239
+ DDEProblem (f_dde_DDETST_C1, h_dde_DDETST_C1, (0.0 , 30.0 );
240
+ dependent_lags = (( u, p, t) -> 1 + abs (u),) )
236
241
237
242
# Problem C2
238
243
@doc raw """
@@ -275,16 +280,23 @@ function f_dde_DDETST_C2!(du, u, h, p, t)
275
280
nothing
276
281
end
277
282
278
- function h_dde_DDETST_C2 (p, t; idxs = 1 )
279
- idxs == 1 || error (" history function is only implemented for the first component" )
283
+ function h_dde_DDETST_C2 (p, t; idxs:: Union{Nothing,Int} = nothing )
280
284
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
281
285
282
- 1.0
286
+ if idxs === nothing
287
+ [1.0 , 0.5 ]
288
+ elseif idxs == 1
289
+ 1.0
290
+ elseif idxs == 2
291
+ 0.5
292
+ else
293
+ error (" delay differential equation consists of two components" )
294
+ end
283
295
end
284
296
285
297
const prob_dde_DDETST_C2 =
286
- DDEProblem (f_dde_DDETST_C2!, [ 1.0 , 0.5 ], h_dde_DDETST_C2, (0.0 , 30.0 );
287
- dependent_lags = [( u, p, t) -> u[2 ]] )
298
+ DDEProblem (f_dde_DDETST_C2!, h_dde_DDETST_C2, (0.0 , 30.0 );
299
+ dependent_lags = (( u, p, t) -> u[2 ],) )
288
300
289
301
# Problem C3
290
302
@doc raw """
@@ -327,19 +339,24 @@ const prob_dde_DDETST_C3 =
327
339
nothing
328
340
end
329
341
330
- global function h_dde_DDETST_C3 (p, t; idxs = 2 )
331
- idxs == 2 || error (" history function is only implemented for the second component" )
342
+ global function h_dde_DDETST_C3 (p, t; idxs:: Union{Nothing,Int} = nothing )
332
343
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
333
344
334
- if t < - T₁
335
- 9.5
345
+ if idxs === nothing
346
+ [3.325 , t < - T₁ ? 9.5 : 10.0 , 120.0 ]
347
+ elseif idxs == 1
348
+ 3.325
349
+ elseif idxs == 2
350
+ t < - T₁ ? 9.5 : 10.0
351
+ elseif idxs == 3
352
+ 120.0
336
353
else
337
- 10.0
354
+ error ( " delay differential equation consists of three components " )
338
355
end
339
356
end
340
357
341
- DDEProblem (f_dde_DDETST_C3!, [ 3.325 , 10.0 , 120.0 ], h_dde_DDETST_C3, (0.0 , 300.0 );
342
- constant_lags = [T₁], dependent_lags = [( u, p, t) -> T₁ + u[3 ]] )
358
+ DDEProblem (f_dde_DDETST_C3!, h_dde_DDETST_C3, (0.0 , 300.0 );
359
+ constant_lags = [T₁], dependent_lags = (( u, p, t) -> T₁ + u[3 ],) )
343
360
end
344
361
345
362
# Problem C4
@@ -377,15 +394,24 @@ const prob_dde_DDETST_C4 =
377
394
nothing
378
395
end
379
396
380
- global function h_dde_DDETST_C4 (p, t; idxs = 2 )
381
- idxs == 2 || error (" history function is only implemented for the second component" )
397
+ global function h_dde_DDETST_C4 (p, t; idxs:: Union{Nothing,Int} = nothing )
382
398
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
383
399
384
- 10.0
400
+ if idxs === nothing
401
+ [3.5 , 10.0 , 50.0 ]
402
+ elseif idxs == 1
403
+ 3.5
404
+ elseif idxs == 2
405
+ 10.0
406
+ elseif idxs == 3
407
+ 50.0
408
+ else
409
+ error (" delay differential equation consists of three components" )
410
+ end
385
411
end
386
412
387
413
DDEProblem (f_dde_DDETST_C4!, [3.5 , 10.0 , 50.0 ], h_dde_DDETST_C4, (0.0 , 100.0 );
388
- constant_lags = [T₁], dependent_lags = [( u, p, t) -> T₁ + u[3 ]] )
414
+ constant_lags = [T₁], dependent_lags = (( u, p, t) -> T₁ + u[3 ],) )
389
415
end
390
416
391
417
# Problem D1
@@ -439,11 +465,18 @@ function f_dde_DDETST_D1!(du, u, h, p, t)
439
465
nothing
440
466
end
441
467
442
- function h_dde_DDETST_D1 (p, t; idxs = 2 )
443
- idxs == 2 || error (" history function is only implemented for the second component" )
468
+ function h_dde_DDETST_D1 (p, t; idxs:: Union{Nothing,Int} = nothing )
444
469
0 < t ≤ 0.1 || error (" history function is only implemented for 0 < t ≤ 0.1" )
445
470
446
- 1 / t
471
+ if idxs === nothing
472
+ [log (t), 1 / t]
473
+ elseif idxs == 1
474
+ log (t)
475
+ elseif idxs == 2
476
+ 1 / t
477
+ else
478
+ error (" delay differential equation consists of two components" )
479
+ end
447
480
end
448
481
449
482
function fanalytic_dde_DDETST_D1 (u₀, :: typeof (h_dde_DDETST_D1), p, t)
455
488
456
489
const prob_dde_DDETST_D1 =
457
490
DDEProblem (DDEFunction (f_dde_DDETST_D1!; analytic = fanalytic_dde_DDETST_D1),
458
- [ log ( 0.1 ), 10 ], h_dde_DDETST_D1, (0.1 , 5.0 );
459
- dependent_lags = [( u, p, t) -> t - exp (1 - u[2 ])] )
491
+ h_dde_DDETST_D1, (0.1 , 5.0 );
492
+ dependent_lags = (( u, p, t) -> t - exp (1 - u[2 ]),) )
460
493
461
494
# Problem D2
462
495
@doc raw """
@@ -516,8 +549,8 @@ const prob_dde_DDETST_D2 =
516
549
[5.0 , 0.1 , 0.0 , 0.0 ]
517
550
end
518
551
519
- dependent_lags = [(u, p, t) -> u[ 4 ]])
520
- DDEProblem (f_dde_DDETST_D2!, h_dde_DDETST_D2 ( nothing , 0.0 ), h_dde_DDETST_D2, ( 0.0 , 40.0 );
552
+ DDEProblem (f_dde_DDETST_D2!, h_dde_DDETST_D2, ( 0.0 , 40.0 );
553
+ dependent_lags = ((u, p, t) -> u[ 4 ],))
521
554
end
522
555
523
556
# Problem E1
@@ -554,7 +587,7 @@ const prob_dde_DDETST_E1 =
554
587
1.0
555
588
end
556
589
557
- DDEProblem (f_dde_DDETST_E1, 2.0 , h_dde_DDETST_E1, (0.0 , 40.0 );
590
+ DDEProblem (f_dde_DDETST_E1, h_dde_DDETST_E1, (0.0 , 40.0 );
558
591
constant_lags = [1 ], neutral = true )
559
592
end
560
593
@@ -599,21 +632,34 @@ const prob_dde_DDETST_E2 =
599
632
nothing
600
633
end
601
634
602
- global function h_dde_DDETST_E2 (p, t; idxs = 1 )
603
- idxs == 1 || error (" history function is only implemented for the first component" )
635
+ global function h_dde_DDETST_E2 (p, t; idxs:: Union{Nothing,Int} = nothing )
604
636
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
605
637
606
- 0.33 - 0.1 * t
638
+ if idxs === nothing
639
+ [0.33 - 0.1 * t, 2.22 + 0.1 * t]
640
+ elseif idxs == 1
641
+ 0.33 - 0.1 * t
642
+ elseif idxs == 2
643
+ 2.22 + 0.1 * t
644
+ else
645
+ error (" delay differential equation consists of two components" )
646
+ end
607
647
end
608
648
609
- global function h_dde_DDETST_E2 (p, t, :: Type{Val{1}} ; idxs = 1 )
610
- idxs == 1 || error ( " history function is only implemented for the first component " )
649
+ global function h_dde_DDETST_E2 (p, t, :: Type{Val{1}} ;
650
+ idxs :: Union{Nothing,Int} = nothing )
611
651
t ≤ 0 || error (" history function is only implemented for t ≤ 0" )
612
652
613
- - 0.1
653
+ if idxs === nothing
654
+ [- 0.1 , - 0.1 ]
655
+ elseif idxs == 1 || idxs == 2
656
+ - 0.1
657
+ else
658
+ error (" delay differential equation consists of two components" )
659
+ end
614
660
end
615
661
616
- DDEProblem (f_dde_DDETST_E2!, [ 0.33 , 2.22 ], h_dde_DDETST_E2, (0.0 , 2.0 );
662
+ DDEProblem (f_dde_DDETST_E2!, h_dde_DDETST_E2, (0.0 , 2.0 );
617
663
constant_lags = [τ], neutral = true )
618
664
end
619
665
676
722
677
723
const prob_dde_DDETST_F1 =
678
724
DDEProblem (DDEFunction (f_dde_DDETST_F1; analytic = fanalytic_dde_DDETST_F1),
679
- 1.0 , h_dde_DDETST_F1, (0.0 , 0.1 );
680
- dependent_lags = [( u, p, t) -> t / 2 ] , neutral = true )
725
+ h_dde_DDETST_F1, (0.0 , 0.1 );
726
+ dependent_lags = (( u, p, t) -> t / 2 ,) , neutral = true )
681
727
682
728
# Problem F2
683
729
@doc raw """
761
807
762
808
const prob_dde_DDETST_F2 =
763
809
DDEProblem (DDEFunction (f_dde_DDETST_F2; analytic = fanalytic_dde_DDETST_F2),
764
- exp ( - 0.25 ^ 2 ), h_dde_DDETST_F2, (0.25 , 0.499 );
765
- dependent_lags = [( u, p, t) -> 1 / 2 - t] , neutral = true )
810
+ h_dde_DDETST_F2, (0.25 , 0.499 );
811
+ dependent_lags = (( u, p, t) -> 1 / 2 - t,) , neutral = true )
766
812
767
813
# Problem F3
768
814
@doc raw """
816
862
817
863
const prob_dde_DDETST_F3 =
818
864
DDEProblem (DDEFunction (f_dde_DDETST_F3; analytic = fanalytic_dde_DDETST_F345),
819
- log (3 ), h_dde_DDETST_F345, (0.0 , 10.0 );
820
- dependent_lags = [(u, p, t) -> 0.5 * t * (1 + cos (2 * π * t))], neutral = true )
865
+ h_dde_DDETST_F345, (0.0 , 10.0 );
866
+ dependent_lags = ((u, p, t) -> 0.5 * t * (1 + cos (2 * π * t)),),
867
+ neutral = true )
821
868
822
869
# Problem F4
823
870
"""
910
957
911
958
const prob_dde_DDETST_G1 =
912
959
DDEProblem (DDEFunction (f_dde_DDETST_G1; analytic = fanalytic_dde_DDETST_G1),
913
- 1.0 , h_dde_DDETST_G1, (0.0 , 1.0 );
914
- dependent_lags = [( u, p, t) -> u^ 2 / 4 ] , neutral = true )
960
+ h_dde_DDETST_G1, (0.0 , 1.0 );
961
+ dependent_lags = (( u, p, t) -> u^ 2 / 4 ,) , neutral = true )
915
962
916
963
# Problem G2
917
964
@doc raw """
962
1009
963
1010
const prob_dde_DDETST_G2 =
964
1011
DDEProblem (DDEFunction (f_dde_DDETST_G2; analytic = fanalytic_dde_DDETST_G2),
965
- 1.0 , h_dde_DDETST_G2, (0.0 , 1.0 );
966
- dependent_lags = [( u, p, t) -> t + 2 - u] , neutral = true )
1012
+ h_dde_DDETST_G2, (0.0 , 1.0 );
1013
+ dependent_lags = (( u, p, t) -> t + 2 - u,) , neutral = true )
967
1014
968
1015
# Problem H1
969
1016
@doc raw """
@@ -1020,8 +1067,8 @@ end
1020
1067
1021
1068
const prob_dde_DDETST_H1 =
1022
1069
DDEProblem (DDEFunction (f_dde_DDETST_H1; analytic = fanalytic_dde_DDETST_H1),
1023
- 0.0 , h_dde_DDETST_H1, (0.0 , 0.225 * π);
1024
- dependent_lags = [( u, p, t) -> t / (1 + u^ 2 )] , neutral = true )
1070
+ h_dde_DDETST_H1, (0.0 , 0.225 * π);
1071
+ dependent_lags = (( u, p, t) -> t / (1 + u^ 2 ),) , neutral = true )
1025
1072
1026
1073
# Problem H2
1027
1074
@doc raw """
@@ -1084,8 +1131,8 @@ end
1084
1131
1085
1132
const prob_dde_DDETST_H2 =
1086
1133
DDEProblem (DDEFunction (f_dde_DDETST_H2; analytic = fanalytic_dde_DDETST_H234),
1087
- 0.0 , h_dde_DDETST_H234, (0.0 , π);
1088
- dependent_lags = [( u, p, t) -> t * (1 - u^ 2 )] , neutral = true )
1134
+ h_dde_DDETST_H234, (0.0 , π);
1135
+ dependent_lags = (( u, p, t) -> t * (1 - u^ 2 ),) , neutral = true )
1089
1136
1090
1137
# Problem H3
1091
1138
"""
0 commit comments