Matlab优化工具箱的使用
MATLAB最优化工具箱的使用
一、实验目的
利用Matlab优化工具箱解二次规划问题。
二、实验内容
(1)建立线性规划的数学模型;
(2)安装Matlab优化工具箱(Optimization Toolbox),并学习工具箱中求解线性规划的函数;
(3)利用Matlab优化工具箱解线性规划问题。
(4)运行该程序,在命令窗记录下最优解x和对应的最优值fval。
(5)按照模板撰写实验报告,要求规范整洁。
三、算法步骤、代码、及结果
1. 算法步骤
设x1,x2,x3分别表示农作物A,B,C的种植面积
max z = 1500x1 + 1200x2 + 1800x3
s.t.
x1 + x2 + x3 = 100
450x1 + 600x2 + 900x3 <=63000
35x1 + 25x2 + 30x3 <=3300
350x1 + 400x2 + 300x3 <=33000
x1, x2, x3 >= 0
2. 代码
c=[1500 1200 1800]';
A=[450 600 900;35 25 30;350 400 300];
b=[63000 3300 33000]';
Ae=[];
be=[];
lb=[0 0 0]';
ub=[];
[x,fval,exitflag,output,lambda]=linprog(-c,A,b,Ae,be,lb,ub);
3. 结果
x =
60
0
40
ans =
162000
1. 算法步骤
设点( Xi , X , Xy )到超平面 Ax = b 的最短距离为 d .则该问题的目标是求最短距离 d 。
min XX
s . t . Ax = b
xERs
使用二次规划函数 quadprog 求解该模型。
2. 代码
function distance = point_to_hyperplane_qp(A, b)
n = null(A)';
P0 = A \ b;
Q = eye(3);
c = -P0';
Aeq = A;
beq = b;
x0 = [0; 0; 0];
options = optimoptions('quadprog', 'Algorithm', 'interior-point-convex');
[x, ~, ~, ~, ~] = quadprog(Q, c, [], [], Aeq, beq, [], [], x0, options);
distance = norm(x);
end
3. 结果
ans =
1.7321