Looking for optimization loop or tool
5 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Matt J
2015 年 3 月 29 日
編集済み: Matt J
2015 年 3 月 30 日
You can look at the Optimization Toolbox if you have it. Look at fmincon() or lsqnonlin() if your objective function is nonlinear.
2 件のコメント
Matt J
2015 年 3 月 31 日
編集済み: Matt J
2015 年 3 月 31 日
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().
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!