Optimizing a function from a given set?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohamed Larabi
am 17 Jun. 2018
Kommentiert: Walter Roberson
am 17 Jun. 2018
Is there a way to find the optimal value of a minimized function from a given set of solutions?
Here is an example of what I would like to do:
For x in {0,0.5,1}, solve: x = arg max f(x).
I think I would need a variation of "fminbnd", as this one uses a given interval of solutions, while I need a given set of solutions.
Any suggestion would be very much appreciated. Thank you
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 17 Jun. 2018
For an explicit list of arguement values, x:
[bestfval, bestidx] = max(arrayfun(@f, x))
bestx = x(bestidx);
If the function is fully vectorized then
[bestfval, bestidx] = max(f(x(:)));
bestx = x(bestidx);
2 Kommentare
Walter Roberson
am 17 Jun. 2018
If the task is to find the y that maximizes x*f(y) for each given x, then the answer is going to be the same as the y that maximizes f(y) without considering the x because multiplication by positive x is a linear operator. If some of the x could be negative and some positive then you could have a more interesting situation.
Weitere Antworten (1)
Mohamed Larabi
am 17 Jun. 2018
1 Kommentar
Walter Roberson
am 17 Jun. 2018
If f(y) is given, then the x that maximizes x*f(y) is:
if f(y) > 0
bestx = max(x);
elseif f(y) < 0
bestx = min(x);
else
all finite non-nan entries in x give the same result
end
Siehe auch
Kategorien
Mehr zu Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!