I have a multivariable function that I wish to minimize. The function has two input arguments, a vector c and a scalar \theta.
Using fmincon in MATLAB to solve the optimization problem for both c and \theta is complicated because certain values of \theta causes numerical errors. However, fixing theta, c can be easily obtained via fmincon without any errors.
So the plan now is to do a brute force approach, i.e. compute c for each value of \theta in the range 1:100 (although the true constraint for \theta is \theta \ge 0) and choose \theta (and the corresponding c) for which the objective value is minimized simply by plugging the estimated parameters back to the objective function.
Now this doesn't sound very efficient to me and I'm wondering if I can employ a bisection method-esque approach so that I would not have to go over all possible values of \theta in the range specified above.
Thanks a lot!
You should be able to let fmincon do you work for you on both
candtheta. If it has problems getting a decent result when theta is included, it is likely because the elements incandthetaare of very different scales. You should scale your equations so that all of the variables end up around a value of 1.0. This greatly improves the performance (ie, speed) and accuracy of nearly any numerical optimization code.So, if you suspect that the final values of
cmight end up being [1.0 0.001 10.0] and you suspect that theta might end up as [10.0], you would formulate your problem as