MATLAB Answers

0

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

Asked by Richárd Tóth on 24 Aug 2019 at 15:20
Latest activity Edited by John D'Errico
on 24 Aug 2019 at 16:15
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?

  0 Comments

Sign in to comment.

1 Answer

Answer by John D'Errico
on 24 Aug 2019 at 16:11
Edited by John D'Errico
on 24 Aug 2019 at 16:15
 Accepted Answer

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.

  0 Comments

Sign in to comment.