Skip to content
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

Return semi-infinite intervals when cannot guarantee roots #96

Closed
dpsanders opened this issue Sep 15, 2018 · 7 comments
Closed

Return semi-infinite intervals when cannot guarantee roots #96

dpsanders opened this issue Sep 15, 2018 · 7 comments
Labels
no test The issue is resolved but tests should still be added

Comments

@dpsanders
Copy link
Member

e.g. for f(x) = (x-1)x(x+1) on (-Inf..Inf).

@Kolaru
Copy link
Collaborator

Kolaru commented Sep 29, 2018

Why can't the roots be guaranteed here ?

@dpsanders
Copy link
Member Author

My bad, they apparently can. There are some functions for which it is not possible to exclude "roots at infinity".

@Kolaru
Copy link
Collaborator

Kolaru commented Sep 29, 2018

julia> roots(x -> 1/x, 1..∞)
1-element Array{Root{Interval{Float64}},1}:
 Root(∅, :unique)

Like that one I guess ?

@dpsanders
Copy link
Member Author

Ouch. Exactly!

@dpsanders
Copy link
Member Author

Even with bisection this fails. I think this is because we keep bisecting intervals even when they are atomic. This needs to be fixed.

@dpsanders
Copy link
Member Author

Currently we get

julia> roots(x -> 1/x, 1..∞)
Root([1.79769e+308, ∞], :unique)

The unique here is wrong -- maybe Newton is not checking strict inclusion?

Krawczyk just hangs.

An example of not being able to guarantee roots is

julia> roots(x -> x^2 - 2x, -Inf..Inf)

When x is a semi-infinite interval, x^2 - 2x always gives -Inf..Inf and nothing can be done,
even though for any finite, large interval it can immediately prove that there is no 0.

@Kolaru Kolaru added the no test The issue is resolved but tests should still be added label Nov 6, 2024
@Kolaru
Copy link
Collaborator

Kolaru commented Nov 6, 2024

Currently this creates an :unknown root with dac decoration that gets bisected forever, which is a separate issue (#178).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no test The issue is resolved but tests should still be added
Projects
None yet
Development

No branches or pull requests

2 participants