优化模型:Matlab线性规划

简介: 优化模型:Matlab线性规划

写在前面:

博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。


1.基本原理


一般线性规划问题的数学标准型为


c6a04fe37b48ac7fa846261b12730a3e_d33a38bc6ab74785b9497ac1b3cdc3dc.png


满足约束条件的解,称为可行解,使目标函数达到最大值的可行解称为最优解。所有可行解构成的集合称为问题的可行域。


Matlab中规定线性规划的标准形式为


c3a25d614e77a586d376fa05ac21e856_c8752dca2325407cadfb38233f8f33e2.png


式中:f,x,b,beq,lb,ub为列向量,其中f称为价值向量,b称为资源向量,A,Aeq为矩阵。


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返回目标函数的最优值,A和b对应线性不等约束;Aeq和beq对应线性等式约束;lb和ub分别对应x的下界向量和上界向量。


2.案例分析


例1 使用Matlab软件求解下列线性规划问题。


173a78ef8959d956ebe64cd4483b0fc9_a6d30e5344d14cacbe352b61869d9b65.png


Matlab代码:


f=[-3;1;1];
a=[1,-2,1;4,-1,-2];
b=[11,-3];
aeq=[-2,0,1];
beq=1;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x,y=-y

求解结果为:


x1=4,x2=1,x3=9,z的最大值为2。


例2 一架货机有三个货舱:前舱、中仓和后舱。三个货舱所能装载的货物的最大重量和体积有限制如表5所示。并且为了飞机的平衡,三个货舱装载的货物重量必须与其最大的容许量成比例。


7b91d652157708df7f9c8f599f6f1eec_6194bd78dcf140cfbd7ef6f88c9b01e0.png


现有四类货物用该货机进行装运,货物的规格以及装运后获得的利润如表6所示:


317ac09f32236e6408c5e16798a97df4_2d15608c5ea842698a2f6691da41dd55.png


假设:


(1)每种货物可以无限细分;


(2)每种货物可以分布在一个或者多个货舱内;


(3)不同的货物可以放在同一个货舱内,并且可以保证不留空隙。 问应如何装运,使货机飞行利润最大?


解:用=1,2,3,4分别表示货物1,货物2,货物3和货物4;=1,2,3分别表示前舱、中舱和后舱。设表示第i种货物装在第j个货舱内的重量,分别表示第j个舱的重量限制和体积限制,分别表示可以运输的第i种货物的重量,单位重量所占的空间和单位货物的利润,则目标函数为


3c6f57da2c2f33347295b4f3cc1b26eb_9892d5f5dd114fb994ed1bdce09d475c.png


约束条件为


5e6ebc0aaa0dfff068ad2a8ff4030b89_b651574f9e90410bae49955f085ada05.png


Matlab代码:


clc,clear
c=[3100;3800;3500;2850];
c=c*ones(1,3);
c=c(:);%把矩阵转化成一列
a1=zeros(4,12);
for i=1:4
    a1(i,i:4:12)=1;
end
b1=[18;15;23;12];
a2=zeros(3,12);
for i=1:3
    a2(i,4*i-3:4*i)=1;
end
b2=[10;16;8];
a3=zeros(3,12);
bb=[480;650;580;390];
for j=1:3
    a3(j,4*j-3:4*j)=bb;
end
b3=[6800;8700;5300];
a=[a1;a2;a3];b=[b1;b2;b3];
aeq=zeros(2,12);
aeq(1,1:4)=1/10;
aeq(1,5:8)=-1/16;
aeq(2,5:8)=1/16;
aeq(2,9:12)=-1/8;
beq=zeros(2,1);
[x,y]=linprog(-c,a,b,aeq,beq,zeros(12,1));
x=reshape(x,[4,3])
x=sum(x'),y=-y


利用Matlab求解得到每个货舱存放每种货物的结果如下


2ad1740ab1d0a33b4718452f93ed10c2_3ca2f88a193c4bfdaa8737ce001ad888.png


即四种货物的吨数分别为0t,15t,15.9474t,3.0526t,总利润为121520元。


目录
相关文章
|
22小时前
|
传感器 数据采集 数据处理
MATLAB热传导方程模型最小二乘法模型、线性规划对集成电路板炉温优化
MATLAB热传导方程模型最小二乘法模型、线性规划对集成电路板炉温优化
|
2天前
|
机器学习/深度学习 安全 算法
Matlab基于SEIRD模型,NSIR预测模型,AHP层次分析法新冠肺炎预测与评估分析
Matlab基于SEIRD模型,NSIR预测模型,AHP层次分析法新冠肺炎预测与评估分析
|
2天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了运用粒子群优化(PSO)调整深度学习模型超参数以提升时间序列预测性能的方法。在比较了优化前后的效果(Ttttttttttt12 vs Ttttttttttt34)后,阐述了使用matlab2022a软件的算法。文章详细讨论了CNN、GRU网络和注意力机制在时间序列预测中的作用,以及PSO如何优化这些模型的超参数。核心程序展示了PSO的迭代过程,通过限制和调整粒子的位置(x1)和速度(v1),寻找最佳解决方案(gbest1)。最终,结果保存在R2.mat文件中。
基于PSO优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
|
3天前
|
Python
Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测
Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测
|
3天前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
4天前
MATLAB用GARCH-EVT-Copula极值理论模型VaR预测分析股票投资组合
MATLAB用GARCH-EVT-Copula极值理论模型VaR预测分析股票投资组合
11 0
|
6天前
Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测
Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测
24 14
|
9天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文档介绍了使用MATLAB2022A中PSO优化算法提升时间序列预测模型性能的过程。PSO优化前后对比显示了优化效果。算法基于CNN、LSTM和Attention机制构建CNN-LSTM-Attention模型,利用PSO调整模型超参数。代码示例展示了PSO的迭代优化过程及训练、预测和误差分析环节。最终,模型的预测结果以图形形式展示,并保存了相关数据。
|
13天前
|
存储 vr&ar
Matlab创建向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列
Matlab创建向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列
22 0
|
13天前
|
移动开发
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
18 0

热门文章

最新文章