MATLAB Answers

fmincon for bounded optimization problem

22 views (last 30 days)
Devyani
Devyani on 16 Jan 2021
Commented: Devyani on 18 Jan 2021
Hello,
I am trying to solve a nonlinear optimization problem using fmincon interior point method. Originally my problem formulation does not have bounds on the decision variable, and when i try to run it without the bounds then it takes infintie time and when I run it with bounds then it is much faster. Following are my questions:
1) Why bounds are making the algorithm faster?
2) The final optimal result for the problem is nowhere near the bound, but my lagrange multiplier for the bounds is coming to be non zero, arent they supposed to be zero if the solution is not hitting the bounds?
3) How is the first order optimality criteria defined for interior point method? I saw the documentation but it is not clear to me, is the infinite norm of the grad or some other equation?
I am giving very good initial guess (exact true values) to my problem to make sure it is near the optimal. When I do that, the optimizer is just giving me the intial guess as my final solution which is not possible as I am feeding noisy data to my problem.
Thanks in advance

  7 Comments

Show 4 older comments
Devyani
Devyani on 17 Jan 2021
@Walter Roberson Hello, I have given my code. Also i checked with inv, the Qdk is not singular.
Thanks in advance
Walter Roberson
Walter Roberson on 17 Jan 2021
I had to uninstall MATLAB temporarily because of operating system limitations (not related to MATLAB itself.) It may take me a bit of time to recover.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 16 Jan 2021
Generally speaking, functions without bounds can take indefinite time to minimize if the function has an asymptope
| |
___/ --v-+
where the v marks the minimum. But if the function happens to land on the shoulder to the left then the local gradient slopes away from the center and the minimizer can take indefinite time exploring that left slope.
fmincon is a local optimizer: there is no way for it to know that it should spend time climbing the hill to the center to get to a better opportunity. And not every such hill happens to lead to a global minimum. Furthermore, the global minimum can be an indefinitely small part of the graph -- imagine putting something heavy on a section of stiff rubber that has a very elastic center, then unless you were quite close to the indentation you would get no information that it existed.

  3 Comments

Devyani
Devyani on 16 Jan 2021
Thank you for the response, that explains why I need bounds. But why the langrange multiplliers are non-zero when the final optimal values are not near the bounds.?
Walter Roberson
Walter Roberson on 16 Jan 2021
Sorry, I am not familiar with the theory about the lagrange multipliers. (I read it once, but did not retain it in memory.)
Devyani
Devyani on 16 Jan 2021
Okay thank you anyways for solving the first part.:)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!