Optimizing a function from a given set?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mohamed Larabi
le 17 Juin 2018
Commenté : Walter Roberson
le 17 Juin 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 commentaires
Réponse acceptée
Walter Roberson
le 17 Juin 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 commentaires
Walter Roberson
le 17 Juin 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.
Plus de réponses (1)
Mohamed Larabi
le 17 Juin 2018
1 commentaire
Walter Roberson
le 17 Juin 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
Voir également
Catégories
En savoir plus sur Optimization dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!