필터 지우기
필터 지우기

optimization problem solution: [500x12000].X = [500x1] ??

조회 수: 1 (최근 30일)
Keshav Dev Singh
Keshav Dev Singh 2012년 2월 3일
Hello,
I've run into the problem that I need to solve an optimization problem for very large matrices. The equality constraint matrix is around 500 (rows) by 12000 (column), There are two other constraints sum-to-unity and non-negativity. The only way I can make such a large matrix is using sparse, but lsqlin/ quadprog constraints (matlab fn) do not cooperate with sparse matrices. Is there some other way I can formulate the problem so I can specify this problem and solve?
I have tried with 'quadprog', as we can always rewrite a least squares problem as a quadratic optimization , and I think quadprog accepts sparse equality constraints. But there might be trouble if the matrix H of quadprog equivalent to A'*A of the lsqlin formulation is singular.
Any and all replies are really appreciated!
~Keshav

채택된 답변

Steve Grikschat
Steve Grikschat 2012년 2월 3일
Here's a suggestion I posted over at the newsgroup:
The default algorithms for both lsqlin and quadprog accept sparse matrices. However, they only solve problems with equality constraints OR bounds on the variables, but not both. Therefore, since your problem has both, they switch to a dense matrix algorithm.
A possibility is to try the interior-point convex algorithm in quadprog (released in R2011a). It accepts sparse matrices and all combinations of constraints for quadprog. Here's an example:

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Linear Least Squares에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by