【2024高教社杯国赛A题】数学建模国赛建模过程+完整代码论文全解全析

本文主要是介绍【2024高教社杯国赛A题】数学建模国赛建模过程+完整代码论文全解全析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你是否在寻找数学建模比赛的突破点?数学建模进阶思路!

作为经验丰富的数学建模团队,我们将为你带来2024国赛数学建模竞赛(A题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。

完整内容在文章末尾阅读全文获取!

【2024国赛A题】高教杯全国大学生数学建模国赛建模过程+完整代码论文全解全析已经完成

问题 1是给定舞龙队初始时刻和位置,在规定时间内计算舞龙队各把手的位置和速度,以及指定时间点各部分把手的位置和速度。

问题 1重述: 根据给定的舞龙队初始时刻和位置,计算舞龙队在规定时间内每秒的位置和速度,以及指定时间点各部分把手的位置和速度。

建模思路:

  1. 确定舞龙队模型:舞龙队由龙头、龙身和龙尾组成,每节板凳上均有两个孔,相邻两条板凳通过把手连接。将舞龙队抽象为一条线段,每个把手为线段上的一个点,通过把手连接线段,即可构成舞龙队模型。

  2. 确定参数:给定舞龙队的板长、板宽、孔径、孔的中心距离以及龙头前把手的行进速度,确定舞龙队的初始时刻和位置。

  3. 建立数学模型:根据舞龙队模型和给定的参数,建立运动方程,计算每秒舞龙队各把手的位置和速度。

  4. 利用求解器计算各把手在指定时间点的位置和速度。

  5. 将结果保存到文件中。

建模假设:

  1. 假设舞龙队的把手连接线段均为直线,忽略把手的形状和长度对模型的影响。

  2. 假设舞龙队运动过程中不发生变形,即每节板凳的位置不发生变化。

  3. 忽略重力和风阻对舞龙队的影响。

数学模型:

  1. 假设龙头前把手的初始位置为坐标原点,建立直角坐标系。

  2. 以龙头前把手为起点,确定舞龙队的运动方程。考虑到舞龙队每个把手的运动路径均为螺旋线,设龙头前把手的运动路径为:

#导入所需库
import math
import numpy as np
import pandas as pd#定义常量
N = 223 #板凳总数
L_head = 341 #龙头板长
L_body = 220 #龙身板长
W = 30 #板宽
d = 5.5 #孔径
l = 27.5 #孔中心距板头
S = 55 #螺距
v_head = 1 #龙头前把手速度
r = 16 #初始位置所在圈数
theta = 0 #初始位置所在角度
t = 300 #计算的总时间
dt = 1 #时间步长#定义函数,计算每个板凳的位置
def position(N,L_head,L_body,W,d,l,S,r,theta):#计算每个板凳的位置pos = np.zeros((N,2)) #存放每个板凳的位置,第一列为x坐标,第二列为y坐标pos[0,:] = [0,0] #龙头位置for i in range(1,N):pos[i,:] = [pos[i-1,0] - 2*math.pi*r*S*math.sin(theta)/360, pos[i-1,1] + 2*math.pi*r*S*math.cos(theta)/360] #计算每个板凳的位置theta += 360/N #计算每个板凳的角度return pos#计算龙头前把手的位置和速度
pos = position(N,L_head,L_body,W,d,l,S,r,theta)
v_head_pos = np.zeros((t,2)) #存放龙头前把手的位置,第一列为x坐标,第二列为y坐标
v_head_vel = np.zeros((t,2)) #存放龙头前把手的速度,第一列为x方向速度,第二列为y方向速度
v_head_pos[0,:] = pos[0,:] #初始位置为龙头位置
v_head_vel[0,:] = [0,v_head] #初始速度为1m/s向y方向
for i in range(1,t):v_head_pos[i,:] = [v_head_pos[i-1,0] + v_head_vel[i-1,0]*dt, v_head_pos[i-1,1] + v_head_vel[i-1,1]*dt] #计算龙头前把手的位置v_head_vel[i,:] = [pos[0,0] - v_head_pos[i,0], pos[0,1] - v_head_pos[i,1]] #计算龙头前把手的速度#计算龙头后面第1、51、101、151、201节龙身前把手和龙尾后把手的位置和速度
body_pos = np.zeros((t,10)) #存放龙身和龙尾前把手和后把手的位置,每一列分别为x坐标和y坐标
body_vel = np.zeros((t,10)) #存放龙身和龙尾前把手和后把手的速度,每一列分别为x方向速度和y方向速度
body_pos[0,:] = pos[1:6,:].reshape(10) #初始位置为龙身和龙尾前把手和后把手的位置
body_vel[0,:] = [0,0,0,0,0,0,0,0,0,0] #初始速度为0
for i in range(1,t):body_pos[i,:] = pos[(i+1):(i+6),:].reshape(10) #计算龙身和龙尾前把手和后把手的位置body_vel[i,:] = [body_pos[i-1,0] - body_pos[i,0], body_pos[i-1,1] - body_pos[i,1], body_pos[i-1,2] - body_pos[i,2], body_pos[i-1,3] - body_pos[i,3], body_pos[i-1,4] - body_pos[i,4], body_pos[i-1,5] - body_pos[i,5], body_pos[i-1,6] - body_pos[i,6], body_pos[i-1,7] - body_pos[i,7], body_pos[i-1,8] - body_pos[i,8], body_pos[i-1,9] - body_pos[i,9]] #计算龙身和龙尾前把手和后把手的速度#保存结果到result1.xlsx
data = pd.DataFrame(np.hstack((np.array(range(t)).reshape(t,1),v_head_pos,v_head_vel,body_pos,body_vel)), columns=['time','v_head_x','v_head_y','v_head_vel_x','v_head_vel_y','body1_x','body1_y','body2_x','body2_y','body3_x','body3_y','body4_x','body4_y','body5_x','body5_y','body6_x','body6_y','body7_x','body7_y','body8_x','body8_y','body9_x','body9_y','body10_x','body10_y','body1_vel_x','body1_vel_y','body2_vel_x','body2_vel_y','body3_vel_x','body3_vel_y','body4_vel_x','body4_vel_y','body5_vel_x','body5_vel_y','body6_vel_x','body6_vel_y','body7_vel_x','body7_vel_y','body8_vel_x','body8_vel_y','body9_vel_x','body9_vel_y','body10_vel_x','body10_vel_y']))
data.to_excel('result1.xlsx', index=False)

内容具体可以看看我的主页!
和 《小天数模》 团队,同名公众号 一起拿奖!里面包含本次竞赛全部思路与分析!

包含本次比赛全部题目和单题思路与代码,代码和文章会不断更新

关注小天数模,你们的支持是我更新的动力!

这篇关于【2024高教社杯国赛A题】数学建模国赛建模过程+完整代码论文全解全析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145330

相关文章

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P