MATLAB线性规划函数求解线性规划

线性规划LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:

min f(x)

s.t.

A·x <=b

Aeq·x=beq

vlb<= x<= vub

其中 ,b,beq均为向量,A,Aeq为矩阵,x为向量变量.矩阵A和向量b是线性不等式约束条件的系数,Aeq和beq是等式约束条件的系数.

在MATLAB中,用于LP的求解函数为linprog.其调用格式为:
[x,fval,lambda]=linprog(f,A,b,Aeq,beq,vlb,vub,x0,options)
其中f,A,b,是不可缺省的输入变量,x是不可缺省的输出变量,它是问题的解.vlb,vub均是向量,
分别表示x的下界和上界,x0为x的起始点,options为optimset函数中定义的参数的值,
fval是目标函数在解x处的值。


linprog函数使用语法

实例1

程序

clc;
clear all;
c = [2;3;1];
a = [1, 4,2;3,2,0];
b = [8;6];
[x,y] = linprog(c,-a,-b,[],[],zeros(3,1))
%%因为没有等号约束条件,所以为空矩阵

运行结果


实例2


程序

clc;
clear all;
c = [5;4;6];
a = [1,-1,1;3,2,4;3,2,0];
b = [20,42,30];
[x,cval,exitflag,putput,lambda] = linprog(-c,a,b,[],[],zeros(3,1))

运行方式


实例3


程序

clc;
clear all;
c = [0;0;0;1.6;1.2;1.4];
A = [0 1 0 0 0 0;0 0 0 1 0 0;0 0 0 0 0 0];
b = [200000;250000;150000];
aeq = [1 1 0 0 0 0;-1.2 0 1 1 0 0;0 -1.5 -1.2 0 1 1];
beq = [400000;0;0];
d  = zeros(6,1);
[x,y] = linprog(-c,A,b,aeq,beq,d);
fprintf('x11=%.4f, x12=%.4f, x21=%.4fr
',x(1:3,1));
fprintf('x23=%.4f ,x31=%.4f, x34=%.4fr
',x(4:6,1));
fprintf('r
z=%.4fr
', -y);

运行结果


展开阅读全文

页面更新:2024-04-23

标签:线性规划   函数   向量   矩阵   线性   系数   变量   实例   条件   程序

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top