Defining objective functions appropriately

Hi community, I previously asked about grey wolf optimizer and the guidance I got was much helpful,am eternally grateful for you all. I wanted to use the code to estimate Weibull parameters. I have a slight problem, when defining weibull function, do we consider it as maximization problem or minimization problem? Being that my objecive function has to be Weibull function. I will appreciate any clue or any help.

 Accepted Answer

Matt J
Matt J on 2 Feb 2023
Edited: Matt J on 2 Feb 2023
It depends what environment you are formulating the problem in. fmincon and fminunc will only minimize functions, so you cannot present the problem to them as a maximization. However, if you set up the problem with optimproblem(), then it allows you to specify through ObjectiveSense whether you are minimizing or maximizing,

More Answers (1)

Usually, you maximize the corresponding log-likelihood function. So it's a maximization problem.
To maximize, use one of MATLAB's optimizers. Instead of maximizing f, you can then minimize -f so that every optimizer in MATLAB can also be used as a maximizer.

4 Comments

@Torsten thank you for your answer. Allow me to bother you a little; Does thismean that, I define my objective function(Weibull) as usual the i multiply it by -1 so that i minimize the function? Thank you
Torsten
Torsten on 2 Feb 2023
Edited: Torsten on 2 Feb 2023
Did you read about maximizing the log-likelihood function of a distribution to compute its parameters ? Because you always write that the Weilbull function is the objective. This is wrong.
Better use MATLAB's tool "mle" to fit your parameters directly instead of trying to implement it on your own:
Does thismean that, I define my objective function(Weibull) as usual the i multiply it by -1 so that i minimize the function?
It means that if you have a function f you want to maximize, you supply -f as the objective function for MATLAB's optimizers. Because maximizing f is equivalent to minimizing -f.
Thank you @Torsten, It's because am fairly new to parameter estimation techniques using metaheuristics algorithms. That is why I can be so annoying with my questions. However, your response opened my eyes and I think have gotten the lead on what to do. I knew about the inbuilt mle() for parameter estimation, but the resaerch am doing requires me to obtain the parameters using grey wolf, then compare with the results of mle().
but the resaerch am doing requires me to obtain the parameters using grey wolf, then compare with the results of mle().
So your research is about different optimization methods ?

Sign in to comment.

Products

Asked:

on 2 Feb 2023

Commented:

on 3 Feb 2023

Community Treasure Hunt

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

Start Hunting!