Optimizing a function from a given set?

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Walter Roberson
Walter Roberson il 17 Giu 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 Commenti
Mohamed Larabi
Mohamed Larabi il 17 Giu 2018
Your answer replies perfectly to the problem stated. But I made a mistake while I typed it. It is:
For x in {0,0.5,1}, solve: x = arg max x*f(y). If you have any thoughts about it, please let me know.
Walter Roberson
Walter Roberson il 17 Giu 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.

Accedi per commentare.

Più risposte (1)

Mohamed Larabi
Mohamed Larabi il 17 Giu 2018
The task is to find the x, while f(y) is given. I am trying to simplify my problem as much as I can to be understandable by the overall Matlab community. What I actually need to do is to numerically solve HJB (Hamilton-Jacobi-Bellman) problem. It is dynamic programming. Do you have any reference or link to share about it? Thank you very much.
  1 Commento
Walter Roberson
Walter Roberson il 17 Giu 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

Accedi per commentare.

Categorie

Scopri di più su Optimization in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by