Minimising with multiple constraints and then storing them using a loop
1 次查看(过去 30 天)
显示 更早的评论
I want to minimize a function with two inequality constraints and different set of parameters.
min -x1*x2*x3
st
–a11*x1–a12*x2–a13*x3 ≤ b1;
a21*x1+a22*x2+a23*x3 ≤ b2
I have 100 different A=[a11 a12 a13; a21 a22 a23] matrices and 100 different b=[b1;b2] vectors. For each pair of matrix A and vector b, I will have one solution x=(x1 x2 x3).
My goal is to have a single data set with all the solutions of all the inequality constraints. I mean the first row of that x will have the solution for 1st A,b the the 2nd row for next A,b and so on.
Can anyone please help, thank you so much.
2 个评论
Matt J
2013-6-8
编辑:Matt J
2013-6-8
My goal is to have a single data set with all the solutions of all the inequality constraints. I mean the first row of that x will have the solution for 1st A,b the the 2nd row for next A,b and so on.
It's usually better to store things column-wise in MATLAB (as in my Answer below) since memory access is faster for columns.
回答(1 个)
Matt J
2013-6-8
编辑:Matt J
2013-6-8
Should be pretty straightforward. The code will look like,
X=zeros(3,100);
for i=1:100
X(:,i)=fmincon(@(x)-prod(x), InitialGuess,A(:,:,i),b(:,i));
end
3 个评论
Matt J
2013-6-9
编辑:Matt J
2013-6-9
why do I have to use prod(x)?
Isn't it appropriate? In the problem you posted, the objective is the product of all the variables (times -1).
Also, is A(:,:,i) pick up all the rows corresponding to i th col?
Yes, but it was just an example. Extract the linear inequality constraint data for the i-th problem in whatever way suits the way you have your data organized.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!