Solving an optimization problem using fmincon

Can anyone help me to solve this? I do not know how to use the contraint on C3 and how to implement ri in it!

 采纳的回答

I think that this is a straightforward problem is you use the problem-based optimization workflow, which requires a relatively recent version of Optimization Toolbox™.
Alan Weiss
MATLAB mathematical toolbox documentation

3 个评论

thank you for the reply
I wrote this code for it
clc
clear
close all
prob = optimproblem('ObjectiveSense','min');
x = optimvar('x',3,1,'LowerBound',0,'UpperBound',inf);
i=[1:3];
j=[1:3];
a=rand(3,1);
a1=diag(a)';
r=rand(3,1);
cons1 = sum(x(i)) <= 10;
cons2 = sum(r(i).*x(i)) >= 10;
prob.Constraints.cons1 = cons1;
prob.Constraints.cons2 = cons2;
prob.Objective = sum(sum(a1(i,j),2).*x(i).*x(j));
[sol,fval] = solve(prob);
disp(sol.x)
disp(fval)
seems to be okay. it worked but also it said : "quadprog stopped because it was unable to find a point that satisfies the constraints within the value of the constraint tolerance"
So you were able to program it. Good for you!
Now let's look at your constraints:
cons1 = sum(x) <= 10;
cons2 = sum(r.*x) >= 10;
The r variable has all entries between 0 and 1, and the x variable is nonnegative. Therefore, for any x satisfying cons1, the value of sum(r.*x) is smaller. Therefore your constraints are inconsistent.
Alan Weiss
MATLAB mathematical toolbox documentation

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Nonlinear Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by