【2023年数学建模国赛】C题代码与技术文档分享

2023年数学建模国赛C题

  • 第一问代码
    • code1_Q1_1.m
    • Code1_Q1_2.m
    • Code1_Q1_3.m
    • 实验结果
  • 技术文档
    • 问题分析
    • 假设
    • 符号说明
    • 1 第一问
      • 1.1分布检验模型的建立
      • 1.2 相关性模型的建立
      • 1.3各种类蔬菜的销量分布及相关关系
  • 写在最后

第一问代码

code1_Q1_1.m

clc
clear
D=xlsread('合成表1','合成表1、2');
kind_u=unique(D(:,6));
kind_num=size(kind_u,1);%记录蔬菜的种类数
table=zeros(365*4,6);
for k=1:size(kind_u,1) %遍历每一种菜temp_day=D(1,3);temp=1;for i=1:size(D,1) %遍历每一行if D(i,6)==kind_u(k,1) %如果是要找的那种菜if D(i,3)~=temp_day %如果到第二天了temp=temp+1;temp_day=D(i,3);endtable(temp,k)=table(temp,k)+D(i,7);endend
end%% 箱线图
d1=table(table(:,1)~=0,1);
d2=table(table(:,2)~=0,2);
d3=table(table(:,3)~=0,3);
d4=table(table(:,4)~=0,4);
d5=table(table(:,5)~=0,5);
d6=table(table(:,6)~=0,6);
data=[d1;d2;d3;d4;d5;d6];
g1 = repmat({'花叶类'},size(d1,1),1);
g2 = repmat({'花菜类'},size(d2,1),1);
g3 = repmat({'水生根茎类'},size(d3,1),1);
g4 = repmat({'茄类'},size(d4,1),1);
g5 = repmat({'辣椒类'},size(d5,1),1);
g6 = repmat({'食用菌'},size(d6,1),1);
g = [g1; g2; g3; g4; g5; g6];
h=boxplot(data,g,'Colors','k','Symbol','o');
% hTitle = title('Miles per Gallon by Vehicle Origin');
hXLabel = xlabel('蔬菜分类');
hYLabel = ylabel('单日销量');
% 线宽
set(h,'LineWidth',1.5)
% 坐标轴美化
set(gca, 'Box', 'on', ...                                % 边框
'LineWidth', 1,...                                       % 线宽
'XGrid', 'off', 'YGrid', 'off', ...                      % 网格
'TickDir', 'in', 'TickLength', [.015 .015], ...          % 刻度
'XMinorTick', 'off', 'YMinorTick', 'off', ...            % 小刻度
'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])             % 坐标轴颜色
% 字体和字号
set(gca, 'FontName', '宋体')
% set([hXLabel, hYLabel], 'FontName', 'Times New Roman')
set(gca, 'FontSize', 12)
set([hXLabel, hYLabel], 'FontSize', 15)
% set(hTitle, 'FontSize', 11, 'FontWeight' , 'bold')
% 背景颜色
set(gcf,'Color',[1 1 1])%箱子颜色
color=[0/255,96/255,115/255;9/255,147/255,150/255;145/255,211/255,192/255;235/255,215/255,165/255;238/255,155/255,0/255;204/255,102/255,2/255;188/255,62/255,3/255;174/255,32/255,18/255;155/255,34/255,39/255];
h = findobj(gca,'Tag','Box');
for j=1:length(h)patch(get(h(j),'XData'),get(h(j),'YData'),color(j,:),'FaceAlpha',.5);
end
% c = get(gca, 'Children'); %获取子对象(6个色块和点)
% %图注
% % hleg1 = legend(c(1:2:5,:), 'MSE','MAE','MAPE');
% % 绘制参照线
% Y=h(1,1).YData;
% X=h(1,1).XData;
% Y=unique(Y);
% X=unique(X);
% for i=1:size(Y,2)
%     line([0,X(1)],[Y(i),Y(i)],'Color','red','LineStyle','--','LineWidth',0.8);
%     hold on
% end
% c = get(gca, 'Children'); %获取子对象(6个色块和点)
% Ymax=unique(c(11,1).Children(33,1).YData);
% Xmax=min(c(11,1).Children(33,1).XData);
% Ymean=unique(c(11,1).Children(9,1).YData);
% Ymin=unique(c(11,1).Children(25,1).YData);
% line([0,X(1)],[Ymean,Ymean],'Color','red','LineStyle','--','LineWidth',0.8)
% hold on
% line([0,Xmax],[Ymax,Ymax],'Color','red','LineStyle','--','LineWidth',0.8)
% hold on
% line([0,Xmax],[Ymin,Ymin],'Color','red','LineStyle','--','LineWidth',0.8)
% hold on

Code1_Q1_2.m

clc
clear
D=xlsread('合成表1','合成表1、2');
kind_u=unique(D(:,6));
kind_num=size(kind_u,1);%记录蔬菜的种类数
table=zeros(12,6);
for k=1:size(kind_u,1) %遍历每一种菜for m=1:12 %遍历每一个月for i=1:size(D,1) %遍历每一行if D(i,6)==kind_u(k,1) %如果是要找的那种菜if D(i,2)==mtable(m,k)=table(m,k)+D(i,3);endendendend
endd1=table(table(:,1)~=0,1);
d2=table(table(:,2)~=0,2);
d3=table(table(:,3)~=0,3);
d4=table(table(:,4)~=0,4);
d5=table(table(:,5)~=0,5);
d6=table(table(:,6)~=0,6);
data=[d1;d2;d3;d4;d5;d6];
g1 = repmat({'花叶类'},size(d1,1),1);
g2 = repmat({'花菜类'},size(d2,1),1);
g3 = repmat({'水生根茎类'},size(d3,1),1);
g4 = repmat({'茄类'},size(d4,1),1);
g5 = repmat({'辣椒类'},size(d5,1),1);
g6 = repmat({'食用菌'},size(d6,1),1);
g = [g1; g2; g3; g4; g5; g6];
plot()
% hTitle = title('Miles per Gallon by Vehicle Origin');
hXLabel = xlabel('月份');
hYLabel = ylabel('月销量');set(gca, 'FontName', '宋体')
% set([hXLabel, hYLabel], 'FontName', 'Times New Roman')
set(gca, 'FontSize', 12)
set([hXLabel, hYLabel], 'FontSize', 15)
% set(hTitle, 'FontSize', 11, 'FontWeight' , 'bold')
% 背景颜色
set(gcf,'Color',[1 1 1])
%箱子颜色
color=[0/255,96/255,115/255;9/255,147/255,150/255;145/255,211/255,192/255;235/255,215/255,165/255;238/255,155/255,0/255;204/255,102/255,2/255;188/255,62/255,3/255;174/255,32/255,18/255;155/255,34/255,39/255];

Code1_Q1_3.m

clc
clear
D=xlsread('合成表1','合成表1、2');
kind_u=unique(D(:,6));
kind_num=size(kind_u,1);%记录蔬菜的种类数
table=zeros(12,6);
for k=1:size(kind_u,1) %遍历每一种菜for m=1:12 %遍历每一个月for i=1:size(D,1) %遍历每一行if D(i,6)==kind_u(k,1) %如果是要找的那种菜if D(i,2)==m %如果是要找的那个月if D(i,9)==2table(m,k)=table(m,k)+1;endendendendend
endd1=table(table(:,1)~=0,1);
d2=table(table(:,2)~=0,2);
d3=table(table(:,3)~=0,3);
d4=table(table(:,4)~=0,4);
d5=table(table(:,5)~=0,5);
d6=table(table(:,6)~=0,6);
data=[d1;d2;d3;d4;d5;d6];
g1 = repmat({'花叶类'},size(d1,1),1);
g2 = repmat({'花菜类'},size(d2,1),1);
g3 = repmat({'水生根茎类'},size(d3,1),1);
g4 = repmat({'茄类'},size(d4,1),1);
g5 = repmat({'辣椒类'},size(d5,1),1);
g6 = repmat({'食用菌'},size(d6,1),1);
g = [g1; g2; g3; g4; g5; g6];
plot()
% hTitle = title('Miles per Gallon by Vehicle Origin');
hXLabel = xlabel('月份');
hYLabel = ylabel('月销量');set(gca, 'FontName', '宋体')
% set([hXLabel, hYLabel], 'FontName', 'Times New Roman')
set(gca, 'FontSize', 12)
set([hXLabel, hYLabel], 'FontSize', 15)
% set(hTitle, 'FontSize', 11, 'FontWeight' , 'bold')
% 背景颜色
set(gcf,'Color',[1 1 1])
%箱子颜色
color=[0/255,96/255,115/255;9/255,147/255,150/255;145/255,211/255,192/255;235/255,215/255,165/255;238/255,155/255,0/255;204/255,102/255,2/255;188/255,62/255,3/255;174/255,32/255,18/255;155/255,34/255,39/255];

实验结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

技术文档

问题分析

对于问题一,要求分析分析蔬菜各品类及单品销售量的分布规律及相互关系。该问题可以拆分成三个角度进行剖析。1)各种类蔬菜的销售量分布、蔬菜种类与销售量之间的关系;2)各种类蔬菜的销售量的月份分布、各种类蔬菜销售量与月份之间的相关关系;3)各种类蔬菜的销售时间分布、销售时间与退货量之间的相关关系。对于每一角度,先利用箱线图及折线图表述分布特诊,再进行分布检验,最后选取相应的相关性分析方法进行计算。

对于问题二,首先要分析各种类蔬菜的销售总量与成本加成定价之间的关系,实质上就是求销售总量与成本利润率之间的关系。对于该问题,建立集成拟合模型对每一蔬菜单品拟合多项式函数,以表征销量与成本利润率之间的关系。其次,需要给出各蔬菜品类未来一周的日补货总量和定价策略,在获取销量与成本利润率之间的关系模型后,通过成本利润率即可求出销量。因此,构建以最大化商超收益为目标,以各蔬菜单品的成本利润率为决策变量的线性规划模型(LP)。对于约束条件中的最大销量约束,基于ARIMA算法对蔬菜需求量进行预测,并取预测值作为最大销量约束。并基于遗传算法(GA)对LP模型进行求解。

对于问题三,实质上为在问题二的基础上增加对于销售空间及最小陈列量的限制。为此,在问题二的LP的基础上调整相应限制条件,限制销售空间及最小陈列量。在求解阶段设计0编码机制以适应销售空间限制,并设计不可行解的修复机制保持染色体的合法性。

对于问题四,需要对相关数据的采集进行设计。该问可以从“是否存在会员折扣”“各商品最佳保存时长”“退货原因”等角度入手进行分析。

假设

1、假设市场价格完全有供需关系决定,不受政策管控影响,物价的上限及下限不受限制。
2、假设不出现突发不可抗灾害导致的囤粮等情况的发生。
3、同种菜品的供货质量稳定不变。
4、近期损耗率不发生大幅波动。
5、菜品批发价格不发生大幅波动。

符号说明

在这里插入图片描述

1 第一问

1.1分布检验模型的建立

在进行相关性检验之前,需要先对数据的分布进行检验。Kolmogorov-Smirnov分布检验常被用于大规模样本的检测,而Shapiro–Wilk分布检验常被用于小规模样本的检测。
Kolmogorov-Smirnov分布检验模型可被描述如下:
原假设():数据服从正态分布;
备择假设():数据不服从正态分布。
在这里插入图片描述
在这里插入图片描述

1.2 相关性模型的建立

在这里插入图片描述
在这里插入图片描述

1.3各种类蔬菜的销量分布及相关关系

在这里插入图片描述

写在最后

下面是学姐自己整理的完整代码与运行结果,需要的同学欢迎咨询~

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/126925.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见缺少msvcp140.dll问题及解决方法,分享多种方法帮你解决

在日常使用电脑的过程中,我们可能会遇到各种问题,比如电脑提示msvcp140.dll文件丢失。这个问题通常是由于某些程序或游戏需要这个dll文件来正常运行,但是由于某种原因,这个文件被误删或者损坏了。那么,如何解决这个问题…

MySQL进阶 —— 超详细操作演示!!!(上)

MySQL进阶 —— 超详细操作演示!!!(上) 一、存储引擎1.1 MySQL 体系结构1.2 存储引擎介绍1.3 存储引擎特点1.4 存储引擎选择 二、索引2.1 索引概述2.2 索引结构2.3 索引分类2.4 索引语法2.5 SQL 性能分析2.6 索引使用2…

[学习笔记]CS224W

资料: 课程网址 斯坦福CS224W图机器学习、图神经网络、知识图谱【同济子豪兄】 斯坦福大学CS224W图机器学习公开课-同济子豪兄中文精讲 图的基本表示 图是描述各种关联现象的通用语言。与传统数据分析中的样本服从独立同分布假设不一样,图数据自带关联…

Mysql 性能分析(慢日志、profiling、explain)、读写分离(主从架构)、分库分表(垂直分库、垂直分表、水平分表)

查看系统性能参数 一条sql查询语句在执行前,需要确定查询执行计划,如果存在多种执行计划的话,mysql会计算每个执行计划所需要的成本,从中选择 成本最小的一个作为最终执行的执行计划 想要查看某条sql语句的查询成本,可…

SpringMVC框架@RequestMapping用法,处理器方法参数接收,处理器方法返回值详解

1. RequestMapping 定义请求规则 1.1 指定模块名称 通过RequestMapping 注解可以定义处理器对于请求的映射规则。该注解可以注解在方 法上,也可以注解在类上,但意义是不同的。value 属性值常以“/”开始。RequestMapping 的 value 属性用于定义所匹配请…

大数据下的精准营销获客

2012年以后,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。哈佛大学社会学教授加里金说“这是一场革命,庞大的数据资源使得各个…

【面试经典150 | 数组】合并两个有序数组

文章目录 写在前面Tag题目来源题目解读解题思路方法一:合并排序方法二:双指针方法三:原地操作-从前往后方法四:原地操作-从后往前 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章…

OpenCV(十八):图像直方图

目录 1.直方图统计 2.直方图均衡化 3.直方图匹配 1.直方图统计 直方图统计是一种用于分析图像或数据的统计方法,它通过统计每个数值或像素值的频率分布来了解数据的分布情况。 在OpenCV中,可以使用函数cv::calcHist()来计算图像的直方图。 calcHist(…

基于SSM的蜀都天香酒楼管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

【Tomcat服务部署及优化】

Tomcat 一、什么是Tomcat?二、Tomcat 核心组件2.1 Tomcat 组件2.3 Container组件的结构2.4 Tomcat 请求过程 三、Tomcat 部署3.1 安装JDK3.2 设置JDK环境变量3.3 安装Tomcat并用supervisor启动解压添加到supervisord服务测试能否通过supervisorctl启动 四、Tomcat的端口和主要…

Flutter实现CombineExecutor进行多个异步分组监听,监听第一个异步执行的开始和最后一个异步执行结束时机。

1.场景 我们在调用接口时,很多时候会同时调用多个接口,接口都是异步执行,我们很难知道调用的多个接口哪个会最后执行完成,我们有时候需要对最后一个接口执行完成的时机监听,所以基于该需求,设计了CombineE…

RabbitMQ: 死信队列

一、在客户端创建方式 1.创建死信交换机 2.创建类生产者队列 3.创建死信队列 其实就是一个普通的队列,绑定号私信交换机,不给ttl,给上匹配的路由,等待交换机发送消息。 二、springboot实现创建类生产者队列 1.在消费者里的…

如何选择报修管理系统?报修工单管理系统有哪些功能和优势?

报修管理系统是一种能够帮助企业快速反应设备故障和异常情况,并将问题及时通知到相关人员,并对问题进行统计和分析的系统。它能够有效提高企业的工作效率,并减少人员成本的支出。那么,报修工单管理系统有哪些功能和优势呢?下面以“…

nginx-缓存

disk cache:磁盘缓存数据,有时间延迟,但是非常小,相对于直接请求服务器返回 对于用户来说基本无感知。 memory cache:磁盘缓存数据,基本上没有时间延迟 协商缓存(nginx自带功能, 不…

C++函数内联详解

本文旨在讲解C中的函数内联相关知识,读完这篇文章,希望读者们会对函数内联有更深一步的认识! 内联函数的定义 在计算机科学中, 内联函数 (有时称作 在线函数 或 编译时期展开函数 )是一种编程语言结构&…

详解Vue中的render: h => h(App)

声明:只是记录,会有错误,谨慎阅读 我们用脚手架初始化工程的时候,main.js的代码如下 import Vue from vue import App from ./App.vueVue.config.productionTip falsenew Vue({// 把app组件放入容器中render: h > h(App), }).$mount(#ap…

洛谷P8814:解密 ← CSP-J 2022 复赛第2题

【题目来源】https://www.luogu.com.cn/problem/P8814https://www.acwing.com/problem/content/4732/【题目描述】 给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni,ei,di,求两个正整数 pi,qi&#xf…

vue中的几种name属性

vue中的几种name属性 组件名name name选项 export default{name:xxx } // 获取组件的name属性 this.$options.namevue-devtools调试工具里显示的组件名称; 未配置name选项,就是组件的文件名; vue3配置name通过defineOptions()函数 de…

flink cdc多种数据源安装、配置与验证

搜索 flink cdc多种数据源安装、配置与验证 文章目录 1. 前言2. 数据源安装与配置2.1 MySQL2.1.1 安装2.1.2 CDC 配置2.2 Postgresql2.2.1 安装2.2.2 CDC 配置2.3 Oracle2.3.1 安装2.3.2 CDC 配置2.4 SQLServer2.4.1 安装2.4.2 CDC 配置3. 验证3.1 Flink版本与CDC版本的对应关系…

nlp系列(7)实体识别(Bert)pytorch

模型介绍 本项目是使用Bert模型来进行文本的实体识别。 Bert模型介绍可以查看这篇文章:nlp系列(2)文本分类(Bert)pytorch_bert文本分类_牧子川的博客-CSDN博客 模型结构 Bert模型的模型结构: 数据介绍 …