2023华数杯数学建模竞赛选题建议

提示:DS C君认为的难度:C<B<A,开放度:B<A<C 

A题:隔热材料的结构优化控制研究

A题是数模类赛事很常见的物理类赛题,需要学习不少相关知识。

其中第一问需要建立平纹织物整体热导率与单根纤维热导率之间关系的数学模型,并计算出单根A纤维的热导率。问题二是如何选用单根A纤维的直径和调整织物的经密纬密弯曲角度,使得织物的整体热导率最低。

对于前两问,大家可以采用传热模型:基于纤维传热和空隙中气体传热的理论,建立平纹织物的整体热导率与单根纤维热导率之间的关系模型。可以考虑使用传热方程和热传导模型以及多孔介质传热模型。然后进行参数拟合,也就是利用附件2提供的实验样品参数条件下测得的平纹织物的整体热导率,采用参数拟合或优化算法,将实验数据与理论模型进行匹配,得到单根A纤维的热导率。最后进行验证和评估,即根据建立的数学模型和计算得到的单根A纤维的热导率,对模型进行验证并进行评估。可以比较模型计算结果与实验数据的拟合程度,评估模型的准确性和可靠性。

这道题专业性较高,后续账号会在出本题具体思路分析时,再进行具体分析与建模。开放程度低,难度适中。但这类赛题通常不能起到好的练手作用,小白谨慎选择。DS-C君建议物理、电气、自动化等相关专业选择。

B题:不透明制品最优配色方案设计

B题需要用到不少运筹学相关算法,目测需要用到比如多目标优化、动态规划等,推荐利用lingo进行求解。

这里对第一问进行简单的分析,后续账号会在出本题具体思路分析时,再进行具体分析与建模。

问题一需要计算附件2中三种着色剂在不同波长下的KS值与浓度的关系。首先,我们需要选择适当的拟合函数,常见的选择包择多项式拟合、指数拟合、对数拟合等。在这里,我们使用多项式拟合来表示KS值与浓度的关系。这里的多项式拟合,如果大家想简单一点,可以就用多元线性回归或者二次多项式拟合,推荐利用matlab或者python做拟合。

具体步骤如下所示:

1 根据附件2中的数据,将波长和KS值与浓度分别记为 x 和 y

2 选择一个合适的多项式拟合函数形式

3 将拟合函数带入到拟合问题中,得到一个最小化误差的目标函数

4 使用最小二乘法或其他拟合方法求解该目标函数,得到拟合系数。

综上所述,通过拟合过程,我们可以得到红黄蓝三种着色剂在不同波长下的KS值与浓度的关系,并将关系式和拟合系数填写在表格中(表1)。具体的计算过程需要根据附件2中的数据和所选择的拟合函数进行实施。

这里给大家一个使用Python进行二次多项式拟合的示例代码:

import numpy as np
from scipy.optimize import curve_fit

# 读取附件2中的数据
data = np.loadtxt('附件2.txt', skiprows=1, delimiter='\t')
wavelengths = data[:, 0]  # 波长
concentrations = data[:, 1]  # 浓度
ks_values = data[:, 2:]  # KS值

# 定义二次多项式函数模型
def quadratic_function(x, a, b, c):
    return a + b*x + c*x**2

# 对三种着色剂分别进行拟合
fit_params = []
for ks in ks_values.T:
    params, _ = curve_fit(quadratic_function, wavelengths, ks)
    fit_params.append(params)

# 打印拟合系数
print('拟合系数:')
for i, params in enumerate(fit_params):
    print(f'着色剂 {i+1}: a={params[0]}, b={params[1]}, c={params[2]}')

当然,最好在拟合后将拟合结果绘图,如下是绘图代码:

import numpy as np
import matplotlib.pyplot as plt

# 读取附件2中的数据
data = np.loadtxt('附件2.txt', skiprows=1, delimiter='\t')
wavelengths = data[:, 0]  # 波长
concentrations = data[:, 1]  # 浓度
ks_values = data[:, 2:]  # KS值

# 定义二次多项式函数模型
def quadratic_function(x, a, b, c):
    return a + b*x + c*x**2

# 对三种着色剂分别进行拟合
fit_params = []
for ks in ks_values.T:
    params, _ = curve_fit(quadratic_function, wavelengths, ks)
    fit_params.append(params)

# 绘制拟合结果图
fig, axs = plt.subplots(3, 1, figsize=(10, 15))
colors = ['red', 'yellow', 'blue']
for i, ax in enumerate(axs):
    ax.scatter(wavelengths, ks_values[:, i], color='black', label='实际值')
    ax.plot(wavelengths, quadratic_function(wavelengths, *fit_params[i]), color=colors[i], label='拟合曲线')
    ax.set_xlabel('波长')
    ax.set_ylabel('KS值')
    ax.set_title(f'着色剂 {i+1}')
    ax.legend()

plt.tight_layout()
plt.show()

这道题存在最优解,开放程度低,难度适中。大家选择此题最好在做完后,线上线下对对答案。推荐统计学、数学、物理等专业同学选择。

C题:母亲身心健康对婴儿成长的影响

这道题目是典型的数据分析+建模类题目。需要一定的建模能力,和国赛等其他赛事赛题类型类似,建议大家(各个专业均可)进行选择。

题目需要建立数学模型,大家可以使用评价类算法,比如灰色综合评价法、模糊综合评价法对各个指标建立联系。

第一问前大家需要对数据进行分析和数值化处理,也就是EDA(探索性数据分析)。对于数值型数据,大家用归一化、去除异常值等方式就可以进行数据预处理。而对于非数值型数据进行量化,大家可以使用以下方法:

1标签编码

标签编码是将一组可能的取值转换成整数,从而对非数值型数据进行量化的一种方法。例如,在机器学习领域中,对于一个具有多个类别的变量,我们可以给每个类别赋予一个唯一的整数值,这样就可以将其转换为数值型数据。

2独热编码onehot

独热编码是将多个可能的取值转换成二进制数组的一种方法。在独热编码中,每个可能取值对应一个长度为总共可能取值个数的二进制数组,其中只有一个元素为1,其余元素均为0。例如,对于一个性别变量,可以采用独热编码将“男”和“女”分别转换为[1, 0]和[0, 1]。

3分类计数

分类计数是将非数值型数据转换为数值型数据的一种简单方法。在分类计数中,我们根据某些特定属性(比如学历、职业等)来对数据进行分类,然后统计每个类别的数量或频率。例如,在调查问卷中,我们可以对某个问题的回答按照“是”、“否”和“不确定”三个类别进行分类,并计算每个类别的数量或频率。

4主成分分析

主成分分析是将多维数据转换为低维度表示的一种方法。在主成分分析中,我们通过找到最能解释数据变异的主成分来对原始数据进行降维处理。这样就可以将非数值型数据转换为数值型数据。

而第一问建议大家使用一些可视化方法,可以使用常见的EDA可视化方法:

l 直方图和密度图:展示数值变量的分布情况。

l 散点图:展示两个连续变量之间的关系。

l 箱线图:展示数值变量的分布情况和异常值。

l 条形图和饼图:展示分类变量的分布情况。

l 折线图:展示随时间或顺序变化的趋势。

l 热力图:展示不同变量之间的相关性。

l 散点矩阵图:展示多个变量之间的散点图矩阵。

l 地理图:展示地理位置数据和空间分布信息。

而第一问可以给小白先提示下,后续我们还会更新具体的每问思路。第一问是需要我们做相关性分析,看那几个指标之间的相关系数是否高,如果高则代表影响较大,低代表影响较小。这里可以用热力图进行绘制,从而可视化影响程度。

由于这篇是选题建议,详细思路可以看我的后续文章/视频。就不赘述了。这道题目开放度较高,难度较易,是本次比赛练手和获奖的首选题目。推荐所有专业同学选择。

有关思路、相关代码、讲解视频、参考文献等相关内容可以点击下方群名片哦!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机&#xff0c;不管是企业还是个人&#xff0c;我觉得都是比较合适的&#xff0c;而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装&#xff0c;直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

通过C语言设计的贪吃蛇游戏(控制台终端)

一、项目介绍 当前通过控制台终端实现一个贪吃蛇小游戏&#xff0c;实现游戏的绘制、更新、控制等功能。 二、实现效果 三、完整代码 下面贴出的代码在Windows系统上编译运行&#xff0c;需要使用conio.h头文件中的getch()函数来获取键盘输入&#xff0c;用于控制蛇的移动。…

word转pdf两种方式(免费+收费)

一、免费方式 优点&#xff1a;1、免费&#xff1b;2、在众多免费中挑选出的转换效果相对较好&#xff0c;并且不用像openOffice那样安装服务 缺点&#xff1a;1、对字体支持没有很好&#xff0c;需要安装字体库或者使用宋体&#xff08;对宋体支持很好&#xff09;2、对于使…

如何使用大模型处理生活繁琐的工作

如果每封电子邮件、每个带有订单、发票、投诉、录用请求或工作申请的 PDF 都可以翻译成机器可读的数据&#xff0c;会怎样&#xff1f;然后可以由 ERP / CRM / LMS / TMS 自动处理吗&#xff1f;无需编程特殊接口。 听起来很神奇&#xff1f;它确实有一些魔力。但最近已成为可…

PtahDAO:全球首个DAO治理资产信托计划的金融平台

金融科技是当今世界最具创新力和影响力的领域之一&#xff0c;区块链技术作为金融科技的核心驱动力&#xff0c;正在颠覆传统的金融模式&#xff0c;为全球用户提供更加普惠、便捷、安全的金融服务。在这个变革的浪潮中&#xff0c;PtahDAO&#xff08;普塔道&#xff09;作为全…

系列二、IOC基本概念和底层原理

一、IOC基本概念 控制反转&#xff1a;把对象创建和对象之间的调用过程&#xff0c;交给Spring进行管理&#xff1b;使用IOC的目的&#xff1a;减低耦合度&#xff1b; 二、IOC底层原理 xml解析 工厂模式 反射 2.1、图解IOC底层原理 # 第一步&#xff1a;xml配置文件&am…

K8s的详细介绍

1.编写yaml文件的方式 2.yaml里面的内容介绍 Pod实现机制&#xff1a;&#xff08;1&#xff09;共享网络&#xff08;2&#xff09;共享存储 共享网络:通过Pause容器&#xff0c;把其他业务容器加入到Pause容器里面&#xff0c;让所有业务容器在同一个名称空间中&#xff0c;…

【CHI】(六)独占访问

AMBA5 CHI Architecture Specification IssueF 1. overview 独占访问的原则是&#xff0c;执行独占序列的逻辑处理器&#xff08;LP&#xff09;执行以下操作&#xff1a; 对一个地址执行exclusive load。计算要存储到该位置的新值。对该地址进行exclusive store。 支持对可…

mysql-数据库-创建列表

一.创建列表 1..首先&#xff0c;进入mysql数据库 -->mysql -uroot -p 2. 其次&#xff0c;mysql默认的数据库类型为mydb&#xff0c;这时候&#xff0c;就得查看现在使用的类型 mysql> select database(); 3. 如果创建的类型不同&#xff0c;则使用create database …

Vue如何定义router-link的颜色样式

今天在使用Vue的时候碰到了想改样式却改不了的情况 <ul> <li>xxxxx</li> <li><router-link to"/wisdom" active-class"ative">xxxxx</router-link></li> <li><router-link to"/MyLogin" act…

【宝藏系列】几款好用的 Spring Boot 内置工具类

【宝藏系列】几款好用的 Spring Boot 内置工具类 文章目录 【宝藏系列】几款好用的 Spring Boot 内置工具类断言对象字符串集合文件资源IO 流反射AOP&#x1f349;文末推荐【深入浅出Java虚拟机】 断言 断言是一个逻辑判断&#xff0c;用于检查不应该发生的情况 Assert 关键字…

【深度学习】Transformer,Self-Attention,Multi-Head Attention

必读文章&#xff1a; https://blog.csdn.net/qq_37541097/article/details/117691873 论文名&#xff1a;Attention Is All You Need 文章目录 1、Self-Attention 自注意力机制2、Multi-Head Attention 1、Self-Attention 自注意力机制 Query&#xff08;Q&#xff09;表示当…

SpringBoot3 整合Prometheus + Grafana

通过Prometheus Grafana对线上应用进行观测、监控、预警… 健康状况【组件状态、存活状态】Health运行指标【cpu、内存、垃圾回收、吞吐量、响应成功率…】Metrics… 1. SpringBoot Actuator 1. 基本使用 1. 场景引入 <dependency><groupId>org.springframew…

【LeetCode】剑指 Offer Ⅱ 第2章:数组(8道题) -- Java Version

题库链接&#xff1a;https://leetcode.cn/problem-list/e8X3pBZi/ 题目解决方案剑指 Offer II 006. 排序数组中两个数字之和双指针&#xff08;异向&#xff09; ⭐剑指 Offer II 007. 数组中和为 0 的三个数排序 双指针&#xff08;异向&#xff09; ⭐剑指 Offer II 008. 和…

常见历史漏洞之Thinkphp

常见历史漏洞之Thinkphp 一、介绍二、Thinkphp历史漏洞三、Thinkphp特征发现四、批量漏洞检测五、漏洞总结六、5.0.23版本案例演示 一、介绍 Thinkphp是一种开源框架。是一个由国人开发的支持windows/Unix/Linux等服务器环境的轻量级PHP开发框架。很多cms就是基于thinkphp二次开…

java程序打包成exe在无java环境执行

最近写了个小工具&#xff0c;但是java写的&#xff0c;给朋友用的时候不能直接用&#xff0c;因此学习了一下java打包成exe。 众所周知&#xff0c;java需要jvm环境&#xff0c;所以打包的时候需要把稍微轻一点的jre打包进去。接下来是详细步骤。 java程序打包成jar 这个在…

vue2-vue实例挂载的过程

1、思考 new Vue()这个过程中究竟做了什么&#xff1f;过程中是如何完成数据的绑定&#xff0c;又是如何将数据渲染到视图的等等。 2、分析 首先找到vue的构造函数。 源码位置&#xff1a;/src/core/instance/index.js options是用户传递过来的配置项&#xff0c;如data、meth…

项目实战 — 消息队列(4){消息持久化}

目录 一、消息存储格式设计 &#x1f345; 1、queue_data.txt&#xff1a;保存消息的内容 &#x1f345; 2、queue_stat.txt&#xff1a;保存消息的统计信息 二、消息序列化 三、自定义异常类 四、创建MessageFileManger类 &#x1f345; 1、约定消息文件所在的目录和文件名…

高级web前端开发工程师岗位的具体内容概述(合集)

高级web前端开发工程师岗位的具体内容概述1 职责&#xff1a; 1、负责前端页面开发和维护&#xff0c;并根据需求优化产品性能、用户体验、交互效果及各种主流浏览器以及各类型移动客户端的兼容适配工作; 2、配合产品经理和UI设计师&#xff0c;通过各种前端技术手段&#xf…
最新文章