|  | 
| 1 | 1 | @testitem "Muller" begin | 
| 2 |  | -    @testset "Quadratic function" begin | 
| 3 |  | -        f(u, p) = u^2 - p | 
|  | 2 | +    f(u, p) = u^2 - p | 
|  | 3 | +    g(u, p) = sin(u) | 
|  | 4 | +    h(u, p) = exp(-u)*sin(u) | 
|  | 5 | +    i(u, p) = u^3 - 1 | 
| 4 | 6 | 
 | 
|  | 7 | +    @testset "Quadratic function" begin | 
| 5 | 8 |         tspan = (10.0, 30.0) | 
| 6 | 9 |         p = 612.0 | 
| 7 | 10 |         prob = IntervalNonlinearProblem{false}(f, tspan, p) | 
|  | 
| 17 | 20 |     end | 
| 18 | 21 | 
 | 
| 19 | 22 |     @testset "Sine function" begin | 
| 20 |  | -        f(u, p) = sin(u) | 
| 21 |  | - | 
| 22 | 23 |         tspan = (1.0, 3.0) | 
| 23 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 24 | +        prob = IntervalNonlinearProblem{false}(g, tspan) | 
| 24 | 25 |         sol = solve(prob, Muller()) | 
| 25 | 26 | 
 | 
| 26 | 27 |         @test sol.u ≈ π | 
| 27 | 28 | 
 | 
| 28 | 29 |         tspan = (2.0, 6.0) | 
| 29 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 30 | +        prob = IntervalNonlinearProblem{false}(g, tspan) | 
| 30 | 31 |         sol = solve(prob, Muller()) | 
| 31 | 32 | 
 | 
| 32 | 33 |         @test sol.u ≈ 2*π | 
| 33 | 34 |     end | 
| 34 | 35 | 
 | 
| 35 | 36 |     @testset "Exponential-sine function" begin | 
| 36 |  | -        f(u, p) = exp(-u)*sin(u) | 
| 37 |  | - | 
| 38 | 37 |         tspan = (-2.0, -4.0) | 
| 39 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 38 | +        prob = IntervalNonlinearProblem{false}(h, tspan) | 
| 40 | 39 |         sol = solve(prob, Muller()) | 
| 41 | 40 | 
 | 
| 42 | 41 |         @test sol.u ≈ -π | 
| 43 | 42 | 
 | 
| 44 | 43 |         tspan = (-3.0, 1.0) | 
| 45 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 44 | +        prob = IntervalNonlinearProblem{false}(h, tspan) | 
| 46 | 45 |         sol = solve(prob, Muller()) | 
| 47 | 46 | 
 | 
| 48 | 47 |         @test sol.u ≈ 0 atol = 1e-15 | 
| 49 | 48 | 
 | 
| 50 | 49 |         tspan = (-1.0, 1.0) | 
| 51 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 50 | +        prob = IntervalNonlinearProblem{false}(h, tspan) | 
| 52 | 51 |         sol = solve(prob, Muller()) | 
| 53 | 52 | 
 | 
| 54 | 53 |         @test sol.u ≈ π | 
| 55 | 54 |     end | 
| 56 | 55 | 
 | 
| 57 | 56 |     @testset "Complex roots" begin | 
| 58 |  | -        f(u, p) = u^3 - 1 | 
| 59 |  | - | 
| 60 | 57 |         tspan = (-1.0, 1.0*im) | 
| 61 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 58 | +        prob = IntervalNonlinearProblem{false}(i, tspan) | 
| 62 | 59 |         sol = solve(prob, Muller()) | 
| 63 | 60 | 
 | 
| 64 | 61 |         @test sol.u ≈ (-1 + √3*im)/2 | 
| 65 | 62 | 
 | 
| 66 | 63 |         tspan = (-1.0, -1.0*im) | 
| 67 |  | -        prob = IntervalNonlinearProblem{false}(f, tspan) | 
|  | 64 | +        prob = IntervalNonlinearProblem{false}(i, tspan) | 
| 68 | 65 |         sol = solve(prob, Muller()) | 
| 69 | 66 | 
 | 
| 70 | 67 |         @test sol.u ≈ (-1 - √3*im)/2 | 
| 71 | 68 |     end | 
|  | 69 | + | 
|  | 70 | +    @testset "Middle" begin | 
|  | 71 | +        tspan = (10.0, 30.0) | 
|  | 72 | +        p = 612.0 | 
|  | 73 | +        prob = IntervalNonlinearProblem{false}(f, tspan, p) | 
|  | 74 | +        sol = solve(prob, Muller(20.0)) | 
|  | 75 | + | 
|  | 76 | +        @test sol.u ≈ √612 | 
|  | 77 | + | 
|  | 78 | +        tspan = (1.0, 3.0) | 
|  | 79 | +        prob = IntervalNonlinearProblem{false}(g, tspan) | 
|  | 80 | +        sol = solve(prob, Muller(2.0)) | 
|  | 81 | + | 
|  | 82 | +        @test sol.u ≈ π | 
|  | 83 | + | 
|  | 84 | +        tspan = (-2.0, -4.0) | 
|  | 85 | +        prob = IntervalNonlinearProblem{false}(h, tspan) | 
|  | 86 | +        sol = solve(prob, Muller(-3.0)) | 
|  | 87 | + | 
|  | 88 | +        @test sol.u ≈ -π | 
|  | 89 | + | 
|  | 90 | +        tspan = (-1.0, 1.0*im) | 
|  | 91 | +        prob = IntervalNonlinearProblem{false}(i, tspan) | 
|  | 92 | +        sol = solve(prob, Muller(0.0)) | 
|  | 93 | + | 
|  | 94 | +        @test sol.u ≈ (-1 + √3*im)/2 | 
|  | 95 | +    end | 
| 72 | 96 | end | 
0 commit comments