线性约束 - MATLAB@TOC
线性约束linprog - MATLAB
一、MATLAB中求解线性规划的命令为:
[x,fval]=linprog(f,A,b)
[x,fval]=linprog(f,A,b,Aeq,beq)
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub,x0,OPTIONS)
式中:x返回决策向量的取值,即最优值;
fval返回目标函数的最优值;
A和b对应线性不等式约束;
Aeq和beq对应线性等式约束;
lb和ub分别对应决策向量的下界向量和上界向量;
x0是x的初始值;OPTIONS是控制参数,为指定参数进行最小化;
二、求解具有线性不等式、线性等式和边界的简单线性规划。
对于此示例,使用以下三种约束条件,求目标函数 : f = x(1)−x(2)的最小值。
(1)线性不等式约束:
x(1)+x(2)≤2
x(1)+x(2)/4≤1
(2)线性等式约束:
x(1)+x(2)/4=1/2
(3)边界:
−1 ≤ x(1) ≤ 1
1 ≤ x(2)≤ 2
(4)目标函数 : f = x(1)−x(2)
三、代码
clear all
clc %清空
%% 不等式约束 系数
A = [ 1 1
1 1/4 ];
b = [2 1];
%% 线性等式约束 系数
Aeq = [1 1/4];
beq = 1/2;
%% 设置边界
lb = [-1,1];
ub = [1,2];
%% 目标函数 系数
f = [1 -1];
%% 调用linprog求解线性规划
x = linprog(f,A,b,Aeq,beq,lb,ub)
结果:
Optimal solution found.
x =
0
2
视频链接:
图片: