Looking for optimization loop or tool

1 view (last 30 days)
Tony Esposito
Tony Esposito on 29 Mar 2015
Edited: Matt J on 31 Mar 2015
I'll preface this question noting that I'm new to Matlab and have only been using it for about a week now. I've written the program that I want, but now I need help with optimization.
My program takes (as input) a 1x16 row vector where each entry can vary between 0 and 1. The program then calculates a series of parameters based upon these 16 values.
What I would like to do, is to use some kind of optimization loop/tool that will vary the 1x16 input vector and allow me to specify specific parameters as restrictions (i.e. a < 0.01 ans b = 3500) and specify two other parameters as targets (i.e f = 85 and g = 100).
Is there a way to do this in Matlab? If the reader is familiar with Excel, I'm looking for something similar (but preferable more powerful than) Excels solver add-in.
Thank you in advance for your time.
  1 Comment
Matt J
Matt J on 29 Mar 2015
b = 3500 is not really a "restriction". It means you already know its value!

Sign in to comment.

Answers (1)

Matt J
Matt J on 29 Mar 2015
Edited: Matt J on 30 Mar 2015
You can look at the Optimization Toolbox if you have it. Look at fmincon() or lsqnonlin() if your objective function is nonlinear.
  2 Comments
Tony Esposito
Tony Esposito on 31 Mar 2015
My objective isn't a single function, which is what I was trying to describe above. My objective, I think, would be the "f" and "g" parameters that I indicated above, which are calculated within a script file.
Matt J
Matt J on 31 Mar 2015
Edited: Matt J on 31 Mar 2015
lsqnonlin accepts a vector-valued objective, so in your case this could be [f(x);g(x)]. It tries to minimize the norm of this objective, which I assume is what Excel does as well.
If you really think you need fancier multi-objective optimization, then you might look at fgoalattain().

Sign in to comment.

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!