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

news2025/1/11 12:41:48

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

作为经验丰富的数学建模团队,我们将为你带来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)

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebAPI(二)、DOM事件监听、事件对象event、事件流、事件委托、页面加载与滚动事件、页面尺寸事件

文章目录 一、 DOM事件1. 事件监听2. 事件类型(1)、鼠标事件(2)、焦点事件(3)、键盘事件(4)、文本事件 3. 事件对象(1)、获取事件对象(2)、事件对象常用属性 4. 环境对象 this5. 回调函数 二、 DOM事件进阶1. 事件流(1)、 捕获阶段(2)、 冒泡阶段(3)、 阻止冒泡(4) 、阻止元素默…

Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著

Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑: 10,000 GitHub星标每月300万 下载量16,00…

静心是良性循环

我发现一个挺有意思的事: 花时间修炼自己的心,让自己静心,就愿意多花时间修炼,会更加静心,这样就良性循环了。难的是刚开始,心不静,没时间修炼,心静不下来,更没时间修炼&…

分类中的语义一致性约束:助力模型优化

前言 这里介绍一篇笔者在去年ACL上发表的一篇文章,使用了空间语义约束来提高多模态分类的效果,类似的思路笔者也在视频描述等方向进行了尝试,也都取得了不错的效果。这种建模时对特征进行有意义的划分和约束对模型还是很有帮助的,…

基于人工智能的文本摘要生成系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 文本摘要生成是自然语言处理(NLP)中的一个重要任务,它旨在从长文本中提取出核心内容,生…

【学习笔记】SSL证书安全机制之证书验证

前言:每当Client从Server收到一张证书,有2件事Client需要去验证: 证书是否有效? 证书只是文件中的文本Client如何知道内容能够信任?Server是否是证书真正的拥有者? 证书可以公开获取Client如何知道Server是…

OM5光纤:优化您的数据中心性能

随着数据中心需求的持续增长,传统OM3和OM4光纤在传输距离和带宽方面的局限性日益显现。为应对这些挑战,OM5光纤应运而生。OM5光纤又称为宽带多模光纤(WBMMF),通过支持单根光纤上的多波长传输,显著提高了数据…

ubuntu linux搭建lvgl v9

记录一下ubuntu linux搭建 lvgl的过程 本地环境:ubuntu 16.04 ubuntu lvgl sdl2 1 获取源码 git clone https://github.com/lvgl/lv_port_linux.git cd lv_port_linux/ git submodule update --init --recursive查看分支: git branch -a 我选择的是9.2(master分支一直在变动…

无人机执照拿到后怎么就业?方向有哪些?就业率如何?

无人机执照拿到后,就业方向广泛且多样,就业率也呈现出逐年上升的趋势。这主要得益于无人机技术的广泛应用和无人机市场的不断扩大。以下是对无人机执照持有者就业情况的详细分析: 就业方向 1. 无人机飞行操作: 无人机飞手可以从…

34465A-61/2 数字万用表(六位半)

34465A-61/2 数字万用表(六位半) 文章目录 34465A-61/2 数字万用表(六位半)前言一、测DC/AC电压二、测DC/AC电流四、测电阻五、测电容六、测二极管七、保存截图流程前言 1、6位半数字万用表通常具有200,000个计数器,可以显示最大为199999的数值。相比普通数字万用表,6位半…

经典文献阅读之--Representing 3D sparse map points....(用于相机重定位的3D点线稀疏地图)

0.简介 最近在视觉定位和地图制图方面取得了显著的进展,成功地将点特征和线特征进行了整合。然而,将定位框架扩展到包括额外的地图组件往往会导致对匹配任务的内存和计算资源需求增加。《Representing 3D sparse map points and lines for camera reloc…

尝试用java spring boot+VUE3实现前后端分离部署(8/31)

前言 这几天开学了,公司这边几个和学校对接的项目都挺忙的,然后我又开始有点闲的情况了。问大佬能不能继续看看若依的项目,大佬让我自己去学了。在看若依的项目的时候在想,python的FLASK后端实现和JAVA spring boot的实现差别大不…

通过指令微调提升语言模型性能

人工智能咨询培训老师叶梓 转载标明出处 如何让机器更好地理解和执行人类的指令一直是一个重要课题。Google的研究团队中提出了一种新的方法,通过指令微调(instruction finetuning)来提升语言模型的性能和泛化能力。 他们主要研究了如何通过…

美食|基于SpringBoot+vue的美食网站(源码+数据库+文档)

美食网站 基于SSMvue的美食网站 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 用户模块实现 餐厅模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&…

JavaScript拷贝的艺术:玩转深拷贝和浅拷贝

前言 在实际的项目开发中,我们时刻都在使用数据拷贝功能,赋值、深拷贝和浅拷贝是前端开发中常见的概念,用于复制简单数据类型(字符串、数值、布尔值)和引用类型(对象、数组)。它们的主要区别在…

第十六篇:走入计算机网络的传输层--传输层概述

1. 传输层的功能 ① 分割与重组数据 一次数据传输有大小限制,传输层需要做数据分割,所以在数据送达后必然也需要做数据重组。 ② 按端口号寻址 IP只能定位数据哪台主机,无法判断数据报文应该交给哪个应用,传输层给每个应用都设…

中小型局域网组网规划与实施

一、绪论 1.1 背景 本课题以中小型企业网络搭建为背景,实现网络规划与设计和模拟。该企业网有四个部门,人力部、研发部、市场部和财务部,不同部门分别划分VLAN,不同VLAN之间分配不同的IP地址段。内外网之间要互通。 1.2 发展趋势…

关于前端分辨率兼容和显示器缩放兼容的处理

如下图所示,我们的电脑屏幕可以进行缩放,和分辨率的切换。 我们在项目开发中,时常需要适配不同的分辨率。 一般来说,开发人员电脑分辨率显示正常的页面,只会在更小的分辨率尺寸中出现问题。 所以当测试人员给我们提分…

QT项目实战之音乐播放器2.0版本

该版本相较于1.0版本最主要的不同在于连接数据库实现类似于歌曲收藏和取消收藏的功能。 详细情况看我的这篇文章http://t.csdnimg.cn/WS5s8。 效果展示 VSMyMusicShow2.0 define.h UseMySQL.h musicInfo.h VSMyMusicPlayer.h

出现 /www/server/mysql/bin/mysqld: Shutdown complete 的解决方法

目录 1. 基本知识1.1 查找my.cnf目录1.2 配置错误日志2. 问题所示3. 原理分析4. 解决方法1. 基本知识 主要补充一些基本知识的拓展 1.1 查找my.cnf目录 查看mysql默认读取my.cnf的目录: mysql --help|grep my.cnf 截图如下:(为了方便查看具体使用的配置文件在哪个路径)…