Effacer les filtres
Effacer les filtres

Brute force for finding optimal value

7 vues (au cours des 30 derniers jours)
Chetan Fadnis
Chetan Fadnis le 28 Mar 2022
Commenté : Walter Roberson le 28 Mar 2022
I have a function Say, f(x)=(1-0.5)*[(sin(x-0.25))/2]+0.5.
and x lie in range [-pi,pi], which need to be optimized such that the f(x) will be maximum. The final result f(x), after applying brute force, will be of order 1*10. How to incorporate it, using brute force?
Regards and thanks in anticipation.
  2 commentaires
Torsten
Torsten le 28 Mar 2022
Your function does not depend on x.
Chetan Fadnis
Chetan Fadnis le 28 Mar 2022
Sorry, I have updated.
I need 10 different values of x, so that finally I can get a vector of 1*10.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 28 Mar 2022
Brute force is defined as trying all possible values. You have about 8*10^18 representable values in that range, so if you need to use brute force then the best you can hope for is roughly 3 months of computation (unless a gpu could be used)
  1 commentaire
Walter Roberson
Walter Roberson le 28 Mar 2022
There might be reason to divide a range into segment, and run fmincon() of the function confined to that segment, and the gather all of the results together. But that would not be considered brute force.

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 28 Mar 2022
Modifié(e) : Torsten le 28 Mar 2022
I don't understand. Your function has a single maximum at x=0.25+pi/2. Why are you talking about 10 x-values ?
Do you perhaps mean
f = @(x)(1-0.5)*sin(x-0.25)/2 + 0.5;
x = linspace(-pi,pi,10); % Choose 10 equidistant x-values
[imax,fmax] = max(f(x)); % find maximum and position under the 10 x-values
xmax = x(imax) % print out x position of maximum

Community Treasure Hunt

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

Start Hunting!

Translated by