Is there any way to use intervals(Intlab) instead of real numbers when optimizing in Matlab?

8 views (last 30 days)
Hello
I wanted to use intervals instead of numbers to prevent rounding errors, but since Intlab doesn't belong to Matlab, it is unsurprisingly not coded to handle intervals. Any suggestion?

Accepted Answer

John D'Errico
John D'Errico on 24 Aug 2019
Edited: John D'Errico on 24 Aug 2019
The simple answer is, you probably can't.
Think about how an optimization might work, Newton's method, for example. Given a starting interval for a variable, each point in that interval will map to a new point. But the result need not even be a contiguous interval. For example, solve for a root of the function:
Y = 4 - x^2
Clearly the solutions are +/-2.
Given an initial interval of [-0.1, 0.2], leaving the very first iteration to send points in both directions. But there is one point in that interval which causes Newton's method to diverge, so if you start at x==0, Newton will fail.
Admittedly, that is an example of a function with a poor choice of starting interval. But it shows some of the problems you can have.
But how about a different tool, perhaps fminsearch, and in 2 or more dimensions? Here, dependent upon where in an interval each variable lies, you will probably see the simplex iterations result in a completely different choice of simple, possibly flipping it differently, possibly even flipping from a different vertex. Again, fminsearch would fail, miserably.
Likewise, other optimization tools like GA will have serious problems. I can also show how tools like fzero will fail. Each optimizer would have its own variation of failure mode, but all will die an agonizing computational death.
Sorry, but it won't work.

More Answers (0)

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!