solution for nonlinear optimization problem
显示 更早的评论
Hi,
I hope here is one matlab wizard who can help me with following non linear optimization problem. I have a vector of couple of thousands entries (probability vector) p~ and a vector x~ with real values (same number)
I would like to solve following optimization problem and solving for p
min sum log(p~i*x~i)*log((p~i*x~i)/(pi*x~i))
p 1 o 3000
subject to (expectation and variance constraint)
sum pi*x~i >= some number
sum pi(x~i-(sum (pi*x~i))^2) >=some number
I think you need to rewrite the problem with Lagrange duality because otherwise you have too many variables.
Thank you
Andreas
回答(1 个)
Looks like FMINCON should be able to handle it. I don't see an immediate need to rewrite the problem in dual space. 3000 variables isn't absurdly large and your objective function has a highly separable form. My gut says it would converge pretty fast in the space of x(i).
3 个评论
John D'Errico
2016-1-8
Don't forget a positivity constraint on the variables. Else those logs will cause all heck to break loose.
Andreas Stach
2016-1-8
Matt J
2016-1-8
The first inequality is linear so you would use the A,b inputs of fmincon with
A=-pi(:).';
b= -somenumber
类别
在 帮助中心 和 File Exchange 中查找有关 Problem-Based Optimization Setup 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!