-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extra roots bug for large intervals #162
Comments
Also, now that I look at the function better julia> roots(f, 0..30, Bisection)
5-element Vector{Root{Interval{Float64}}}:
Root(Interval(1.2337005023828356, 1.233700557778276), :unknown)
Root(Interval(15.064561967948055, 15.064562025101973), :unknown)
Root(Interval(3.844642092262015, 3.8446421485298243), :unknown)
Root(Interval(11.103304945220835, 11.103305008980778), :unknown)
Root(Interval(0.0, 8.972354260755779e-8), :unknown)
julia> roots(f, 0..30, Krawczyk)
5-element Vector{Root{Interval{Float64}}}:
Root(Interval(15.064562002776027, 15.064562002781207), :unique)
Root(Interval(11.103304945220835, 11.103305008980778), :unknown)
Root(Interval(1.2337005023828356, 1.233700557778276), :unknown)
Root(Interval(3.8446421166049274, 3.844642116613573), :unique)
Root(Interval(0.0, 8.972354260755779e-8), :unknown) Also, those extra intervals contain or are close to vertical asymptotes of the function (pi^2/8 and 9/8*pi^2), which I guess explains why the algorithm cannot through them away. |
The root at 0 cannot be proved because there is not an open interval around it, since |
But the root at 0 should still be reported as |
yeah I also wondered whether there was a relation between the returned empty set and the root at zero. It seems that starting with "small" intervals in the form
|
I suspect the empty interval appears because it is a subset of any interval, so some inclusion test somewhere does not work as intended (in many places empty intervals are explicitly special cased, otherwise this example would be way more broken ^^'). This together with JuliaIntervals/IntervalArithmetic.jl#441 makes me wonder if we should use decorated itnerval as default, or at least convert everything to decorated interval in Moreover, looking at the graph of the function, it even may be that Newton should not be able to exclude the singularities, since the image of any interval containing one of the singularity will contain zero. The function may violate some of the hypothesis of the Newton method we take for granted here. Decorations could help for that as well. |
https://discourse.julialang.org/t/question-about-interval-root-finding/57124
is buggy.
The text was updated successfully, but these errors were encountered: