1- using ModelingToolkit, OrdinaryDiffEq, ODEInterfaceDiffEq, SpecialFunctions
1+ using ModelingToolkit, OrdinaryDiffEq, ODEInterfaceDiffEq, SpecialFunctions, LinearAlgebra
22using Test
33
44# Testing for α < 1
@@ -55,31 +55,37 @@ while(time <= 1)
5555 time += 0.1
5656end
5757
58- # # Testing for example 2 of Section 7
59- # @independent_variables t
60- # @variables x(t) y(t)
61- # D = Differential(t)
62- # tspan = (0., 220.)
58+ # Testing for example 2 of Section 7
59+ @independent_variables t
60+ @variables x (t) y (t)
61+ D = Differential (t)
62+ tspan = (0. , 220. )
6363
64- # sys = fractional_to_ordinary([1 - 4*x + x^2 * y, 3*x - x^2 * y], [x, y], [1.3, 0.8], 10^-8, 220; initials=[[1.2, 1], 2.8]; matrix=true)
65- # prob = ODEProblem(sys, [], tspan)
66- # sol = solve(prob, radau5(), abstol = 1e-8, reltol = 1e-8)
64+ sys = fractional_to_ordinary ([1 - 4 * x + x^ 2 * y, 3 * x - x^ 2 * y], [x, y], [1.3 , 0.8 ], 10 ^- 8 , 220 ; initials= [[1.2 , 1 ], 2.8 ]; matrix= true )
65+ prob = ODEProblem (sys, [], tspan)
66+ sol = solve (prob, radau5 (), abstol = 1e-8 , reltol = 1e-8 )
6767
68- # @test isapprox(1.0097684171, sol(220, idxs=x), atol=1e-5)
69- # @test isapprox(2.1581264031, sol(220, idxs=y), atol=1e-5)
68+ @test isapprox (1.0097684171 , sol (220 , idxs= x), atol= 1e-5 )
69+ @test isapprox (2.1581264031 , sol (220 , idxs= y), atol= 1e-5 )
7070
71- # #Testing for example 3 of Section 7
72- # @independent_variables t
73- # @variables x_0(t)
74- # D = Differential(t)
75- # tspan = (0., 5000.)
71+ # Testing for example 3 of Section 7
72+ @independent_variables t
73+ @variables x_0 (t)
74+ D = Differential (t)
75+ tspan = (0. , 5000. )
76+
77+ function expect (t)
78+ return sqrt (2 ) * sin (t + pi / 4 )
79+ end
80+
81+ sys = linear_fractional_to_ordinary ([3 , 2.5 , 2 , 1 , .5 , 0 ], [1 , 1 , 1 , 4 , 1 , 4 ], 6 * cos (t), 10 ^- 5 , 5000 ; initials= [1 , 1 , - 1 ])
82+ prob = ODEProblem (sys, [], tspan)
83+ sol = solve (prob, radau5 (), abstol = 1e-5 , reltol = 1e-5 )
7684
77- # function expect(t)
78- # return sqrt(2) * sin(t + pi/4)
79- # end
85+ @test isapprox (expect (5000 ), sol (5000 , idxs= x_0), atol= 1e-5 )
8086
81- # sys = linear_fractional_to_ordinary([3, 2.5, 2, 1, .5, 0], [1, 1, 1, 4, 1, 4], 6*cos(t), 10^-5, 5000; initials=[1, 1, -1])
82- # prob = ODEProblem(sys, [], tspan)
83- # sol = solve(prob, radau5(), abstol = 1e-5, reltol = 1e-5)
87+ msys = linear_fractional_to_ordinary ([3 , 2.5 , 2 , 1 , .5 , 0 ], [1 , 1 , 1 , 4 , 1 , 4 ], 6 * cos (t), 10 ^- 5 , 5000 ; initials= [1 , 1 , - 1 ], matrix = true )
88+ mprob = ODEProblem (sys, [], tspan)
89+ msol = solve (prob, radau5 (), abstol = 1e-5 , reltol = 1e-5 )
8490
85- # @test isapprox(expect(5000), sol (5000, idxs=x_0), atol=1e-5)
91+ @test isapprox (expect (5000 ), msol (5000 , idxs= x_0), atol= 1e-5 )
0 commit comments