数学建模1:lingo软件求解优化模型

简介: 数学建模1:lingo软件求解优化模型

本次数学建模学习笔记系列,以代码学习为主,附带建模及论文亮点记录

由于队友为两位经济学小伙伴,因此以大数据类型题目为主要学习方向

注:论文代码资料来源网络

2014C题

1、结构清晰(后附该论文前两问的目录结构)

2、lingo求解优化模型,涉及函数循环与求和

3、表格很好看

4、关于sets,参考

https://blog.csdn.net/qq_47925836/article/details/119088653

5、代码和论文的结果没太明白,感觉优化过?

问题一(求解母猪年均产仔量以达到或超过盈亏平衡点)

盈亏平衡方程、多元函数建立计算模型、求解盈亏平衡问题

一、数据准备

1.搜集相关数据

2.确定养殖周期

二、利用盈亏平衡分析法确定产仔量

1.求解养殖总成本

(1)种猪饲养成本

(2)后备种猪饲养成本

(3)生猪饲养成本

(4)变动成本

(5)总成本

2.求解总收入

3.根据盈亏平衡点求解产仔量

三、结果分析(亮点!!!)

在 2014 年养猪行情下,不论采取何种配种方式和养殖周期该养殖场均无法达到盈亏平衡,

因此我们分析,若该养殖场在前两年的猪市行情下进行养殖可能会达到盈亏平衡。

所以我们又对 2013 年和 2012 年的猪市行情进行了调查,利用这两年的养殖成本和销售价格等数据对该养殖场的盈亏平衡点和母猪年均产仔量进行求解

四、相关建议

通过以上对问题的求解并结合猪市行情,我们给出当前形势下生猪养殖产业的一些相关建议

问题二(求解小猪选为种猪的比例和母猪的存栏数)

母猪每年可以产两胎,每胎可以成活 9 只小猪,求使得该养殖场养殖规模达到饱和时,小猪选为种猪的比例和母猪的存栏数

一、数据准备

1.种猪淘汰率

2.公母种猪比例

二、求解比例和存栏数

1.模型准备

1)目标建立

对小猪z、母猪l和公猪w数量建立整数规划

2)条件约束

(1)养殖场最大养殖规模约束

(2)小猪数量约束约束

(3)公猪母猪比例约束

2.模型建立

3.模型求解

代码(部分修改)

小猪z、母猪y和公猪x

max=x+@floor(x*0.45)+1+y+@floor(y*0.3)+1+z;
x+@floor(x*0.45)+1+y+@floor(y*0.3)+1+z<=10000;
y*9=z+@floor(x*0.45)+1+y+@floor(y*0.3)+1;
x=(1/24)*y;
@gin(x);
@gin(y);
@gin(z);
@floor(y*0.3)+1=a;
@floor(x*0.45)+1=b;
(a+b)/((2*z+@floor(x*0.45)+1+y+@floor(y*0.3)+1))*100=p;

结果表

结果可能被优化过,感觉不配套。。。。

问题三(确定最佳经营策略,计算年均利润)

一、拟合饲料价格与销售价格关系

1.建立函数关系

2.利用最小二乘法拟合

(1)模型准备

①目标建立

②约束条件

(2)模型建立

(3)模型求解

二、确定未来三年饲料价格

三、养殖场三年时间流程图

四、确定最佳经营策略和年均利润

1.数据准备

2.模型准备

1)目标建立

2)条件约束

3.模型建立

4.模型求解

代码 B Q M d

对应代码中 n q e w

第一步

sets:
bb/1..109/:a,b,c;
aa/1..6/:;
cc(aa,bb):f,p;
endsets
data:
a=@text('D:\roujia.txt');
b=@text('D:\biandongfeiyong.txt');
c=@text('D:\tianshujiange.txt');
enddata
max=n-q-e-w;
n=@sum(cc(i,j):a(j)*f(i,j)*100*8543)+8543*a(2);
q=@sum(cc(i,j):(c(j)*f(i,j)-c(j)*p(i,j)))*8543*1.5*3+8543*130*1.5*3;
e=@sum(bb(j):1452*(a(j)-7.3371)/2.3888*2.5*10);
w=@sum(cc(i,j):f(i,j)*8543*b(j))+1452*120;
@for(aa(i):@sum(bb(j):c(j)*f(i,j)-c(j)*p(i,j))>=150);
@for(aa(i)|(i#le#5):@sum(bb(j):f(i+1,j)*c(j)-f(i,j)*c(j))>=150);
!@for(aa(i)|(i#le#5):@sum(bb(j):f(i+1,j)*c(j)-f(i,j)*c(j))<=180);
@for(aa(i)|(i#le#5):@sum(bb(j):p(i+1,j)*c(j)-p(i,j)*c(j))>=180);
@for(aa(i):@sum(bb(j):f(i,j))<=1);
@for(aa(i):@sum(bb(j):p(i,j))<=1);
@for(cc(i,j):@bin(f(i,j)));
@for(cc(i,j):@bin(p(i,j)));

结果表

附表(部分)

5.结果分析

问题四

sets:
bb/1..109/:a,b,c,x,y;
aa/1..6/:;
cc(aa,bb):f,p;
endsets
data:
a=@text('D:\roujia.txt');
b=@text('D:\biandongfeiyong.txt');
c=@text('D:\tianshujiange.txt');
f=@text('D:\f.txt');
p=@text('D:\p.txt');
enddata
max=n-q-e-w;
n=@sum(cc(i,j):a(j)*f(i,j)*100*9*x(j)*0.98)+8479*a(2);
q=@sum(cc(i,j):(c(j)*f(i,j)-c(j)*p(i,j))*9*x(j)*0.98*1.5*3)+8479*130*1.5*3;
e=@sum(bb(j):x(j)/0.96*(a(j)-7.3371)/2.3888*2.5*10);
w=@sum(cc(i,j):f(i,j)*9*x(j)*0.98*b(j))+@sum(bb(j):x(j)/0.96)/109*120;
!@for(aa(i):@sum(bb(j):c(j)*f(i,j)-c(j)*p(i,j))>=150);
!@for(aa(i)|(i#le#5):@sum(bb(j):f(i+1,j)*c(j)-f(i,j)*c(j))>=150);
!@for(aa(i)|(i#le#5):@sum(bb(j):p(i+1,j)*c(j)-p(i,j)*c(j))>=180);
x(1)=1110;
@for(bb(j):x(j)<=1110);
@for(bb(j):x(j)>=24);
!@for(bb(j)|(j#le#108):@if(x(j+1)#ge#x(j),x(j+1)*0.1,x(j)*0.1)=@abs(x(j+1)-x(j)));
@for(bb(j)|(j#le#108):@abs(x(j)-x(j+1))<=x(j)*0.01);
!@for(aa(i):@sum(bb(j):f(i,j))<=1);
!@for(aa(i):@sum(bb(j):p(i,j))<=1);
@for(cc(i,j):@bin(f(i,j)));
@for(cc(i,j):@bin(p(i,j)));
@for(bb(j):x(j)*1.3=y(j));

母猪数量

模型推广与评价

1.模型评价

好的方面:

1.对所收集来的数据进行整理,并对其进行筛选,将合理数据用于计算中;

2.利用拟合最小二乘法来分析预测数据,更加具有说服力和理论性;

3.结合不同种实际情况,使所建立的模型更加科学、合理。

有待改进的地方:

1.本模型所收集的数据有限,计算精度不高,得到的结果可能同实际情况有所出入。

2.模型推广

所建立的模型考虑到的因素比较全面,并详细的给出了经营策略,可以应用到实际规划中。

根据文中所建立的模型,依据近几年市场价格涨跌趋势,预测未来几年市场营销情况,即可以提前做出预判。

目录
相关文章
鲁棒优化入门(二)——基于matlab+yalmip求解鲁棒优化问题
鲁棒优化的含义就是在最恶劣的情况下(不确定变量的取值使目标函数最大),求出满足约束条件,并且能使目标函数最优的决策变量。 yalmip工具箱可以用来求解鲁棒优化问题,但还是有一定局限性的,并不能处理任意形式的不确定集下的鲁棒优化问题,一般来说,当鲁棒优化问题的不确定集合为箱型不确定集、椭球不确定集以及多面体不确定集时,都可以用yalmip工具箱求解(具体细节可参考官方文档)。本文介绍了利用yalmip求鲁棒优化问题的一般方法。......
|
1月前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
3月前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
非线性优化 | 非线性问题matlab+yalmip求解案例
非线性优化 | 非线性问题matlab+yalmip求解案例
|
算法 数据可视化 Java
数学建模常用算法:启发式优化算法合辑(内含多种智能优化算法,使用java实现算法、详细注释、并进行结果可视化)
数学建模常用算法:启发式优化算法合辑(内含多种智能优化算法,使用java实现算法、详细注释、并进行结果可视化)
651 2
|
存储 算法 调度
Matlab+Yalmip两阶段鲁棒优化通用编程指南
主要包含8大内容: ①.拿到一个复杂的两阶段鲁棒优化问题的分析步骤和方法。 ②.采用Yalmip工具箱中的uncertain函数和鲁棒优化模块求解两阶段鲁棒优化的子问题。 ③.Yalmip工具箱中的鲁棒优化模块和常规的求解思路有什么异同。 ④.使用KKT条件求解两阶段鲁棒优化的子问题。 ⑤.使用对偶变换求解两阶段鲁棒优化的子问题。 ⑥.采用Yalmip工具箱的内置函数,将线性约束写成紧凑矩阵形式的方法。 ⑦.矩阵形式的两阶段鲁棒优化问题,如何快速写出子问题内层优化的KKT条件。 ⑧.矩阵形式的两阶段鲁棒优化问题,如何快速写出子问题内层优化的对偶问题。
基于MATLAB的麻雀搜索算法SSA代码解释(对照论文公式)
基于MATLAB的麻雀搜索算法SSA代码解释(对照论文公式)
|
机器学习/深度学习 资源调度 数据建模
Matlab+Yalmip求解鲁棒优化编程实战
去年发布了使用Yalmip工具箱求解鲁棒优化问题的博客之后,陆陆续续有朋友问我相关的问题,有人形容从学习这篇博客到求解论文中的鲁棒优化问题,就好像刚学会求导公式,就要去做高考压轴题,根本无从下手。为了解决这个问题,这篇博客将手把手地教会大家如何使用Matlab+ yalmip+cplex(当然其他的求解器比如gurobi也是可以的)求解论文中的鲁棒优化问题。
基于遗传算法的最优潮流问题的研究(Matlab实现)【期刊论文复现】
基于遗传算法的最优潮流问题的研究(Matlab实现)【期刊论文复现】
131 0
|
机器学习/深度学习 存储 算法
【MATLAB第16期】#源码分享|基于MATLAB的精英非支配排序多目标遗传算法NSGAⅡ,非工具箱
【MATLAB第16期】#源码分享|基于MATLAB的精英非支配排序多目标遗传算法NSGAⅡ,非工具箱