Sparse matrix constrained optimization

Hi,
I would like to solve a sparse system Ax = b with a large (3M by 3M) ill-conditioned matrix (cond number > 100).
I have bounds and linear constraints. How can I set up an optimization scheme that will accept the sparse structure of A and accepts linear constraints?
lsqlin trust-region-reflective doesn’t take in sparse matrix (or at least converts to dense, but the dense form of A is too large for the memory) and lsqlin interior point doesn't converge.
The other problem I have with lsqlin, is that it doesn’t take in pre-conditioners whereas lsqr does. The latter however doesn’t accepts constraints....
I will be curious to have some advice on least square methods, Biconjugate gradients stabilized method, Generalized minimum residual method and Preconditioned conjugate gradients method that:
  • Accepts sparse structure
  • Use pre-conditioners
  • Accepts lower and upper bounds
  • Accepts linear constraints

댓글 수: 5

Matt J
Matt J 2018년 12월 11일
편집: Matt J 2018년 12월 12일
If lsqlin interior point is not converging, then it is anomalous behavior specific to your problem data. Until the anomaly is understood, there aren't many recommendations that can be made. If you attach relevant code and .mat file data, maybe the community can try to duplicate the failure.
As for preconditioners, they should not be as essential with the algorithms used by lsqlin, but you can always just multiply the C matrix, by a scaling matrix inv(M), to get an equivalent effect.
Nicolas
Nicolas 2018년 12월 12일
Do you know can I add linear constraints on the solution to gmres(A,b,restart,tol,maxit,M1,M2,x0) or bicgstabl(A,b,tol,maxit,M1,M2,x0)?
If they are equality constraints, you could use variable elimination to get rid of them. For example, a constraint like
x+y=1
can be eliminated by making a variable subsitution y=1-x.
Nicolas
Nicolas 2018년 12월 12일
I have inequality constrainsts only. My equality constraints are already folded.
Matt J
Matt J 2018년 12월 12일
Well, then ... lsqlin.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

질문:

2018년 12월 11일

댓글:

2018년 12월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by