How can I write summationn constraints for an optimization problem?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Good morning,
I would like to optimize the following equation:
min
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/368278/image.png)
with the following contraints:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/368281/image.png)
x>0
Where
is a known set of values,
is equal to a [288x1] vector and
is also known as a [288x1] vector.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/368284/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/368287/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/368290/image.png)
How can I add those constraints? I am trying to use x=fmincon(fun,x0,A,b,Aeq,beq);
Thanks!
Réponse acceptée
Matt J
le 29 Sep 2020
Modifié(e) : Matt J
le 29 Sep 2020
fmincon is not the best tool to use for a linear program. In the problem-based framework, you can set up the problem to be solved with linprog() as follows:
x=optimvar('x',size(c),'LowerBound',0);
prob=optimproblem('Objective',x.'*price);
prob.Constraints.sumx=sum(x-c)==0;
sol=solve(prob);
2 commentaires
Matt J
le 29 Sep 2020
Thing is, I would like to have or understand the code behind it.
TMW will not provide the code, but there are algorithm descriptions here
It sounds like we have answered your original question, so I encourage you to Accept-click the answer. If you have spin-off questions, it would be best if you pose them in a separate thread.
Plus de réponses (1)
Ameer Hamza
le 29 Sep 2020
Something like this
price = rand(288, 1); % example value
c = rand(288, 1); % example value
sum_c = sum(c);
x0 = rand(288, 1); % initial guess
fmincon(@(x) price.'*x, x0, [], [], [], [], [], [], @(x) nlcon(x, sum_c)) % price.'*x is same as sum(price.*x)
function [cneq, ceq] = nlcon(x, sum_c)
cneq = [];
ceq = sum(x) - sum_c;
end
0 commentaires
Voir également
Catégories
En savoir plus sur Historical Contests dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!