Looking for optimization loop or tool

7 visualizzazioni (ultimi 30 giorni)
Tony Esposito
Tony Esposito il 29 Mar 2015
Modificato: Matt J il 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 Commento
Matt J
Matt J il 29 Mar 2015
b = 3500 is not really a "restriction". It means you already know its value!

Accedi per commentare.

Risposte (1)

Matt J
Matt J il 29 Mar 2015
Modificato: Matt J il 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 Commenti
Tony Esposito
Tony Esposito il 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 il 31 Mar 2015
Modificato: Matt J il 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().

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by