Write nonlinear constraint to fmincon
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am using fmincon to optimize a vectorized function (myfun) of five variables (x). This function has also some parameters (k, l, m, n) which I am passing to fmincon. What I am doing is shown below:
p=@(x)myfun(x, k, l, m, n);
[xmin, pmin]=fmincon(p, x0, A, b, Aeq, beq, lb, ub, nonlcon, options);
My question is how am I going to write the nonlinear equality which I have in my problem. I have written another function about the nonlinear equality in which x is the variables used in myfun and L is a parameter that I would like to pass inside the constraint. See below:
function [c,ceq]=pitch(x,L)
c=[];
ceq=x(3)*x(5)-L;
end
The problem is that I don't know how to write inside the fmincon the constraint. I have written this:
nonlcon=@(x)pitch(x,L)
which results in an error. I would appreciate your answers. Thank you.
1 commentaire
Réponse acceptée
Shashank Prasanna
le 17 Jan 2013
Thanks for the error, it appears that your objective function myfun takes 'x' as a 4x1 vector while your nonlinear constraint assumes that there is atleast x(5) in the line:
ceq=x(3)*x(5)-L;
that is atleast a 5x1 vector.
You might want to check that.
0 commentaires
Plus de réponses (4)
Giorgos Papakonstantinou
le 17 Jan 2013
3 commentaires
Shashank Prasanna
le 17 Jan 2013
Giorgos, you are right this options is currently only available in Genetic Algorithm. Other optimization tools as yet dont support mixed integer programming.
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!