如何在Matlab中求解线性规划问题
我正在解决下面的线性规划问题,我正在指导自己的文档 每次执行时都会出现以下错误 被连接的矩阵的维数不一致 我的目标函数和限制条件如下如何在Matlab中求解线性规划问题,matlab,Matlab,我正在解决下面的线性规划问题,我正在指导自己的文档 每次执行时都会出现以下错误 被连接的矩阵的维数不一致 我的目标函数和限制条件如下 %F.O f=[0.669 0.654 0.503 0.683 0.670 0.673 0.749 0.655 0.660 0.583 1.243 0.639 2.024 2.156 1.672 0.473 0.139 0.687]; %Restrictions Aeq=[0.1 0.12 0.335 0.15 0.18 0.19 0.12 0.15 0.15
%F.O
f=[0.669 0.654 0.503 0.683 0.670 0.673 0.749 0.655 0.660 0.583 1.243 0.639 2.024 2.156 1.672 0.473 0.139 0.687];
%Restrictions
Aeq=[0.1 0.12 0.335 0.15 0.18 0.19 0.12 0.15 0.15 0.15 0.15 0.11 0.13 0.46;
0.3 0.24 0.03 0.05 0.04 0.27 0.03 0.24 0.15 0.52 0.52;
0.1 0.12 0.31 0.15 0.19 0.08 0.2 0.12 0.15 0.50 0.34 0.44;
0.26 0.50;
0.06 0.17];
b=[285.71; 305.33; 450; 262.50; 41.50];
我用下面的命令执行它
x=linprog(f,Aeq,b)
这些限制将它们从下面的练习中删除
这应该是z的结果
矩阵每行的列数必须相同<代码>Aeq在您的案例中有不同的列数 如何修复它? 约束方程中缺少的变量具有零系数。因此:
%Objective Function
%X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18
f = [0.669 0.654 0.503 0.683 0.670 0.673 0.749 0.655 0.660 0.583 1.243 0.639 2.024 2.156 1.672 0.473 0.139 0.687];
A = []; b = []; %No inequality constraints
%Equality Constraints are:
%X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18
Aeq=[0.1 0.12 0.335 0.15 0.18 0.19 0.12 0.15 0.15 0.15 0 0.15 0.11 0 0.13 0 0 0.46; %Nitrogeno
0.3 0.24 0 0.03 0.05 0.04 0.27 0.03 0.24 0.15 0 0 0.52 0.52 0 0 0 0 ; %Fosforo
0.1 0.12 0 0.31 0.15 0.19 0.08 0.2 0.12 0.15 0.50 0 0 0.34 0.44 0 0 0 ; %Potasio
0 0 0 0 0 0 0 0 0 0 0 0.26 0 0 0 0 0.50 0 ; %Calcio
0 0 0 0 0.06 0 0 0 0 0 0 0 0 0 0 0.17 0 0]; %Magnesio
beq = [285.71; 305.33; 450; 262.50; 41.50]; %What you defined as 'b' is actually `beq`
lb = zeros(18,1); ub = inf(18,1); %Bounds
[x, Optimal_sol] = linprog(f, A, b, Aeq, beq, lb, ub);
>> x
x =
1.0e+03 *
0.7142
0
0
1.0268
0
0
0
0
0
0.4018
0
0
0
0
0
0.2441
0.5250
0
>> Optimal_sol
Optimal_sol =
1.6018e+03