Solving a constrained optimization problem

12 vues (au cours des 30 derniers jours)
Erick
Erick le 23 Avr 2015
Commenté : Erick le 1 Mai 2015
I am trying to solve an optimization problem in matlab:
minimize( sum_{i,j}(f(M(i,j))) + err )
subject to: - norm(M) < err
- err > 0
- if j == i+1: M(i,j) > 1
- if j == i-1: M(i,j) < -1
- else: -1 <= M(i,j) <= 1
where: - f is a non convex function in general
- M is an n by n matrix
I looked at the constrained optimization toolbox but could not find how to solve this problem.
Can anyone point me which function I should use?

Réponse acceptée

Alan Weiss
Alan Weiss le 24 Avr 2015
If you look in the Optimization Decision Table you see that for a constrained nonlinear problem you should use fmincon. The constraint norm(M) < err is a nonlinear inequality constraint. The other constraints on M(i,j) are bound constraints.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
  3 commentaires
Alan Weiss
Alan Weiss le 30 Avr 2015
That sounds right, with the proviso that you make
A = [M(:);err];
I mean, make a column vector, using a semicolon before err.
Alan Weiss
MATLAB mathematical toolbox documentation
Erick
Erick le 1 Mai 2015
That works. Thank you for your help!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by