A optimization problem with constraints
Afficher commentaires plus anciens
Hi, I have a optimization problem. I used the function x = fmincon(fff,x0,A,b) to do optimize ; I have some constraints on x.
Moreover, I also want to make a constraint on an intermediate variable z inside the function fff. For example let z < 0. z is in an intermediate variable of fff and will change with x.
I think fmincon cannot make a constraint on the intermediate variable z , how can I do this? Use other function instead of fmincon?
Réponse acceptée
Plus de réponses (1)
Sean de Wolski
le 24 Juin 2015
1 vote
You'll have to use a nonlinear constraint on x, i.e. it fails if z is outside of range.
4 commentaires
Walter Roberson
le 24 Juin 2015
However, it might not always be feasible to calculate the ranges of x that are valid and implement them all as constraints. For example if one z = sin(50*x) and wanted to constrain -0.05 <= z <= 0.05 then if x is unconstrained then it would not be feasible to create the complete list of ranges of x where the condition will hold.
craftsman
le 24 Juin 2015
The function fff is an ode function. X is the parameter of the ode, z is the result of the ode
If z is the "result of the ode" that means z is a function of time t (or some other variable). Is that correct? If so, at what times t do you want z(t)<=0 to be satisfied? If z(t)<=0 over some infinite or continuous range of t, then fmincon cannot handle that. You might have to look at fseminf.
If instead you're happy to satisfy z(t(i))<=0 at some finite set of sample times t(i), then simply return z(t(i)) from your nonlcon function.
craftsman
le 25 Juin 2015
Catégories
En savoir plus sur Solver-Based Nonlinear Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!