【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实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添