2021年高教杯数学建模国赛C题的解题过程附全部代码以及参赛论文(百度网盘)

部署运行你感兴趣的模型镜像

我们小组参加了2021年数学建模,本人负责代码方面,此文仅为自己的思考理解+代码分析+题目分析

题目:
注:试题完整版和对应的附件在我另一篇文章里面

某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A,B,C 三种类型。该企业每年按 48 周安排生产,需要提前制定 24 周的原材料订购和转运计划,即根据产能要求确定需要订购的原材料供应商(称为“供应商”)和相应每周的原材料订购数量(称为“订货量”),确定第三方物流公司(称为“转运商”)并委托其将供应商每周的原材料供货数量(称为“供货量”)转运到企业仓库。
该企业每周的产能为 2.82 万立方米,每立方米产品需消耗 A 类原材料0.6 立方米,或 B 类原材料 0.66 立方米,或 C 类原材料 0.72 立方米。由于原材料的特殊性,供应商不能保证严格按订货量供货,实际供货量可能多于或少于订货量。为了保证正常生产的需要,该企业要尽可能保持不少于满足两周生产需求的原材料库存量,为此该企业对供应商实际提供的原材料总是全部收购。在实际转运过程中,原材料会有一定的损耗(损耗量占供货量的百分比称为“损耗率”),转运商实际运送到企业仓库的原材料数量称为“接收量”。每家转运商的运输能力为 6000 立方米/周。通常情况下,一家供应商每周供应的原材料尽量由一家转运商
运输。原材料的采购成本直接影响到企业的生产效益,实际中 A 类和 B 类原材料的采购单价分别比 C 类原材料高 20%和 10%。三类原材料运输和储存的单位费用相同。附件 1 给出了该企业近 5 年 402 家原材料供应商的订货量和供货量数据。附件 2 给出了 8 家转运商的运输损耗率数据。请你们团队结合实际情况,对相关数据进行深入分析,研究下列问题:
1.根据附件 1,对 402 家供应商的供货特征进行量化分析,建立反映保障企业生产重要性的数学模型,在此基础上确定 50 家最重要的供应商,并在论文中列表给出结果。
2.参考问题 1,该企业应至少选择多少家供应商供应原材料才可能满足生产的需求?针对这些供应商,为该企业制定未来 24 周每周最经济的原材料订购方案,并据此制定损耗最少的转运方案。试对订购方案和转运方案的实施效果进行分析。
3.该企业为了压缩生产成本,现计划尽量多地采购 A 类和尽量少地采购 C 类原材料,以减少转运及仓储的成本,同时希望转运商的转运损耗率尽量少。请制定新的订购方案及转运方案,并分析方案的实施效果。
4.该企业通过技术改造已具备了提高产能的潜力。根据现有原材料的供应商和转运商的实际情况,确定该企业每周的产能可以提高多少,并给出未来 24 周的订购和转运方案。

第一问:

理论分析:
该企业每周的产能为 2.82 万立方米,按照每立方米产品需消耗 A 类原材料 0.6 立方米,或 B 类原材料 0.66 立方米,或 C 类原材料 0.72 立方米。按原材料的最小需求量算是2.82万0.6=16920,按原材料的最大需求量算是2.82万0.72=20304。而我们根据excel表格计算402家每周所有的供应量仅仅只有40+周是肯定能满足要求的(即是该周供应量超过20304),有50+周是不一定能满足的(即是该周供应量在16920到20304之间),还有140周是一定不能满足要求的,既然402家供应商全部供应量加起来都不一定能达到所需产能,那选择最重要的50家企业就需要以这个供应量为标准,然后我们又考虑到了有些供应商的数据非常奇怪(连续几周供应量非常低,然后突然供应量达到最大值),如图
在这里插入图片描述
像这种我们就需要考虑他的方差,我们需要把这两个因素考虑进去,从而在402家供应商里面挑选50家最重要供应商,我们把每周的供应量进行排序,给每一家供应商一个排名,如果遇到供应量相同的供应商,给一个相同的排名,某家企业240周每周的排名的平均值即是以权值相等去同时考虑供应量和方差。以这个平均值去排序得到前50家供应商就是我们需要的最重要50家供应商。
代码分析:
首先需要从excel表格中读取402家供应商的240周的数据,

import xlrd  	
file_location = "C:/Users/95870/Desktop/数学建模代码/a.xlsx"#这个位置需要更改,否则不能运行
data = xlrd.open_workbook(file_location)

sheet = data.sheet_by_index(1) # 引用第二个表
sheet2=data.sheet_by_index(0) # 引用第一个表



data = [[sheet.cell_value(r,c) for c in range(sheet.ncols)] for r in range(sheet.nrows)] #读取该表1中所有的数据
data_d=[[sheet2.cell_value(r,c) for c in range(sheet2.ncols)] for r in range(sheet2.nrows)] #读取该表2中所有的数据

定义了一个列表,num_list(402240),用以存放每家供应商每周的排名(这个排名是没有并序的,就是数据相同的按照供应商号码进行排序),然后用冒泡法把402家供应商240周的供应量进行排序,并根据供应商号有一个对应关系,然后将排名进行并行排序,然后算排名的平均值,根据平均值再进行排序,前50家就是我们需要的50家最重要供应商(结果如图)。
<

您可能感兴趣的与本文相关的镜像

Qwen-Image-Edit-2509

Qwen-Image-Edit-2509

图片编辑
Qwen

Qwen-Image-Edit-2509 是阿里巴巴通义千问团队于2025年9月发布的最新图像编辑AI模型,主要支持多图编辑,包括“人物+人物”、“人物+商品”等组合玩法

2021高教大学生数学建模C主要围绕“颜色与物质浓度辨识”展开,涉及图像处理、数据拟合与回归分析等关键技术。针对该问,可以采用MATLAB进行图像数据提取、浓度与灰度关系建模,并通过非线性回归或线性回归方法建立数学模型以实现浓度预测。 在图像处理阶段,可以通过读取图像并提取特定区域的灰度值,结合已知浓度的样本数据,构建浓度与灰度之间的函数关系。随后,利用MATLAB的`polyfit`函数进行线性回归,或使用`fitnlm`等函数进行非线性回归分析,从而得到浓度与灰度之间的数学表达式。以下是基于线性回归对灰度值取对数后拟合的参考代码示例: ```matlab % 读取实验数据 concentration = data1(:,1); % 自变量 - 浓度 grayscale = data1(:,7); % 因变量 - 灰度值 % 对灰度值取对数后进行一次线性回归 coefficients = polyfit(concentration, log(grayscale), 1); % 提取拟合系数 a = coefficients(1); % 斜率 b = exp(coefficients(2)); % 截距,还原指数项 % 构建拟合方程 fit_equation = strcat('y = ', num2str(b), ' * exp(', num2str(a), 'x)'); % 显示拟合方程 disp(fit_equation); % 绘图展示原始数据与拟合曲线 figure; scatter(concentration, grayscale, 'filled'); hold on; x = min(concentration):0.01:max(concentration); y = b * exp(a * x); plot(x, y, 'r', 'LineWidth', 2); xlabel('浓度'); ylabel('灰度值'); legend('原始数据', '拟合曲线'); ``` 在实际建模过程中,还可以引入多项式拟合、最小二乘法或更复杂的非线性模型以提高拟合精度。此外,利用图像处理工具箱(如`imread`、`rgb2gray`等函数)提取图像中的颜色信息,并将其与浓度数据进行关联,是完成该目的关键步骤之一。 对于更复杂的模型构建,可考虑使用`lsqcurvefit`或`nlinfit`等函数进行参数优化,进一步提升模型的预测能力。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值