数学建模算法目标规划

在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性 规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。

1.目标规划问题实例

这是一个最基本的目标规划问题,根据上述题目,我们可以列出目标函数和约束条件如下: 

上述目标函数应为4000和3000,在程序部分进行了修正,接下来,来求解这个 线性规划问题。

2.线性规划的 Matlab 标准形式 

线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以 是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性 规划的标准形式为:

基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值。

如: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 

 3.求解问题实例代码

clc,clear;
c=[4;3];
a=[2,1;1,1;0,1];
b=[10;8;7];
x=linprog(-c,a,b);  %注意是求最大值,但linprog默认求最小值,所以c取负
value=c'*x*1000;
disp('最优解 x:');  
disp(x);  
disp('目标函数值 value:');  
disp(value);

结果显示:最优解为2,6;即生产甲2台,乙6台,总利润为26000元。 

4.实例二

 

c=[2;3;-5];
a=[-2,5,-1;1,3,1]; b=[-10;12];
aeq=[1,1,1];
beq=7;
x=linprog(-c,a,b,aeq,beq,zeros(3,1));
value=c'*x;
disp('最优解 x:');  
disp(x);  
disp('目标函数值 value:');  
disp(value);

运行结果如下:

5.对偶问题

 对偶问题为以下形式:

简单来说说,对偶问题可被看作是原始问题的“行列转置”:

(1) 原始问题中的第 j 列系数与其对偶问题中的第 j 行的系数相同;

(2) 原始目标函数的各个系数行与其对偶问题右侧的各常数列相同;

(3) 原始问题右侧的各常数列与其对偶目标函数的各个系数行相同;

(4) 在这一对问题中,不等式方向和优化方向相反。 

已知线性规划问题:

 6.小练习

 试着用MATLAB写出求解下列线性规划的程序:

 最终结果:

程序:

c=[3;-1;-1];
a=[1,-2,1;4,-1,-2];
b=[11,-3];
aeq=[-2,0,1];
beq=1;
x=linprog(-c,a,b,aeq,beq,zeros(3,1));
value=c'*x;
disp('最优解 x:');  
disp(x);  
disp('目标函数值 value:');  
disp(value);

评论区亮出你的答案~ ,一起讨论呀!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roy Teng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值