Maximising a function that i've created
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
So I have created a function, f(quantity), and I would like to minimise this with respect to quantity.
Error in Maximisation (line 15):
x = fminbnd(findvalue(quantity), 2, 10)
Any help on why my approach is wrong?
2 commentaires
Geoff Hayes
le 14 Fév 2015
Sam - please provide the full error message and describe your inputs. What does your function quantity do?
Réponses (1)
Stephen23
le 15 Fév 2015
Modifié(e) : Stephen23
le 15 Fév 2015
If findvalue is your function, then findvalue(quantity) is probably returning a value, which you then supply to fminbnd in the line x = fminbnd(findvalue(quantity),...).
However the documentation of fminbnd states that it requires a function handle, so you need to supply it with a function handle . It might be sufficient if you try this:
x = fminbnd(findvalue, 2, 10)
Or perhaps
x = fminbnd(@findvalue, 2, 10)
depending on how you have defined your function findvalue.
PS: Also note that maximizing a function is the same as minimizing its negative.
3 commentaires
Stephen23
le 15 Fév 2015
"Is this a result of my function, or is there a better optimisation method to use?": it could be both. Not all functions have a minimum or it is not easy to locate, and there are different minimization tools that each perform well on different kind of functions.
Without knowing anything more about your function, it is impossible to say why it is not finding a minimum. As a start I would suggest that you plot the function to see if it even has a minimum.
Voir également
Catégories
En savoir plus sur Startup and Shutdown 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!