multi-variable optimization in matlab?

Hi,
I need to minimize a function that involves two variables. The problem is that this function is not directly related to those two variables, which means i can't use the standard optimization functions like fminsearch. Many other variables are to be calculated first, which are actually functions of the first two variables, and then they're used to calculate the function. And I can't put the function and the two variables in one equation. So, what options do I have in matlab to solve this optimization problem?
Thanks

 Accepted Answer

Matt J
Matt J on 6 Dec 2019
Edited: Matt J on 6 Dec 2019
Many other variables are to be calculated first, which are actually functions of the first two variables, and then they're used to calculate the function....And I can't put the function and the two variables in one equation.
None of the above are requirements of fminsearch or any other Matlab optimization routine. Go ahead and create a function with as many lines as you need. Pass this function to fminsearch, fminunc, or whatever...

4 Comments

Here is an example from the Matlab documentation showing that the objective function can consist of multiple lines of code
That's really helpful, thank you.
Matt J
Matt J on 7 Dec 2019
Edited: Matt J on 7 Dec 2019
You're welcome. One final footnote, though. fminunc and fmincon assume that your objective function is differentiable. This does not mean it must be expressed in a single of code, but it means you must be sure, on analytical grounds, that the code represents a differentiable operation. fminsearch does not require this.
Thanks for highlighting that. They're all linear equations, so both fmincon and fminsearch will be ok.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!