optimization using fmincon where objective function includes the lagrange multiplier
3 次查看(过去 30 天)
显示 更早的评论
my objective function is to maximize sum_i(log(1-lambda(yi-xi*beta))) with respect to beta subject to the constraint sum_i(yi-xi*beta)=0. My problem is lambda in the objective function is the lagrange multiplier of the constraint. How can I set the fmincon optimization then?
whenever I call the objective function there comes an error asking for values of lambda.
0 个评论
采纳的回答
Matt J
2012-9-15
编辑:Matt J
2012-9-15
It's not clear how lambda can be "the Lagrange multiplier of the constraint" when it is a parameter of your objective function. As this parameter changes, so does the required Lagrange multiplier, and there is no certainty those 2 values would ever coincide.
Possibly, you're trying to solve the following problem in the unknowns beta and c?
min.
f(beta,c) = -sum_i(log(1-c*(yi-xi*beta)))
s.t.
g(beta,c) = sum_i(yi-xi*beta)=0
grad_wrt_beta f(beta,c)+ c * grad_wrt_beta g(beta,c) =0
Anyway, this is sounding like one of those situations where it would be wise to explain why the heck you want to do this.
3 个评论
Matt J
2012-9-15
OK and what else? How does this problem formulation arise in that? Doesn't the literature you are taking this from give a procedure for determining lambda? For example, page 5 in this paper
seems rather similar to what you are doing and there, they minimize over the Lagrange multiplier lambda first, before maximizing with respect to beta.
Alternatively, was my re-writing of your problem, with the extra constraints, an accurate description of what you are trying to do? If it is, you can just go ahead and plug it all into FMINCON, but your unknown variable vector must now be [beta,c] instead of just beta. It's not apriori obvious whether this problem has a solution, of course. And, if a solution exists, you would have to be able to choose an initial guess sufficiently close to it.
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!