Optimizing a function from a given set?

3 ビュー (過去 30 日間)
Mohamed Larabi
Mohamed Larabi 2018 年 6 月 17 日
コメント済み: Walter Roberson 2018 年 6 月 17 日
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

採用された回答

Walter Roberson
Walter Roberson 2018 年 6 月 17 日
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 件のコメント
Mohamed Larabi
Mohamed Larabi 2018 年 6 月 17 日
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 2018 年 6 月 17 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Mohamed Larabi
Mohamed Larabi 2018 年 6 月 17 日
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 6 月 17 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeOptimization についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by