当前位置: 首页 > news >正文

[详细建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级

A 题 “板凳龙” 闹元宵
“板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾相随盘旋,整体呈圆盘状。一般来说,在舞龙队能够自如地盘入和盘出的前提下,盘龙所需要的面积越小、行进速度越快,则观赏性越好。
某板凳龙由 223 节板凳组成,其中第 1 节为龙头,后面 221 节为龙身,最后 1 节为龙尾。龙头的板长为 341 cm,龙身和龙尾的板长均为 220 cm,所有板凳的板宽均为 30 cm。每节板凳上均有两个孔,孔径(孔的直径)为 5.5 cm,孔的中心距离最近的板头 27.5 cm(见图 1 和图 2)。相邻两条板凳通过把手连接(见图 3)。
图 1 龙头的俯视图
图 2 龙身和龙尾的俯视图
图 3 板凳的正视图
请建立数学模型,解决以下问题:

问题一:舞龙队沿螺距为55 cm的等距螺线顺时针盘入的建模分析

1. 问题背景

“板凳龙”是由223节板凳组成的舞龙队,其中:

  • 第1节为龙头,板长为341 cm;
  • 第2节到第221节为龙身,板长为220 cm;
  • 第222节为龙尾,板长为220 cm;
  • 所有板凳的宽度均为30 cm。

板凳之间通过把手连接,初始时刻龙头前把手的行进速度为1 m/s,且位于螺线的第16圈A点,沿着螺旋线进行顺时针的盘入运动。

2. 问题要求

从初始时刻到300秒,要求每秒计算整个舞龙队的各个节点的位置速度,包括:

  • 龙头前把手
  • 龙身第1、51、101、151、201节的前把手
  • 龙尾后把手

此外,还需要在特定时刻(如0 s, 60 s, 120 s等)给出上述节点的位置和速度,并将结果保存到 result1.xlsx 文件中。

3. 螺旋线模型

舞龙队沿着等距螺线行进。等距螺线的极坐标方程为:

[
r(\theta) = a + b\theta
]

其中,螺距 ( p = 55 ) cm,因此螺线的参数 ( b ) 可以表示为:

[
b = \frac{p}{2\pi} = \frac{55}{2\pi} \approx 8.75 , \text{cm}
]

设 ( \theta ) 为极角,则螺线在极坐标系中的坐标为:

[
x(\theta) = r(\theta) \cdot \cos(\theta)
]
[
y(\theta) = r(\theta) \cdot \sin(\theta)
]

龙头前把手的初始位置对应于螺线的第16圈,即初始角度为 ( \theta_0 = 16 \times 2\pi = 32\pi )。

4. 龙头速度与时间关系

由于龙头前把手的速度恒定为1 m/s,因此可以通过如下关系推导出每一时刻的角度变化:

[
v = \frac{ds}{dt} = 1 , \text{m/s}
]

其中,( s ) 为龙头前把手沿螺线的弧长,弧长可以通过积分表示为:

[
s = \int_0^{\theta} \sqrt{r^2(\theta) + \left(\frac{dr}{d\theta}\right)^2} , d\theta
]

每一秒的时间步长对应的角度增量 ( \Delta \theta ) 可以通过数值方法计算,结合螺线方程更新龙头的位置。

5. 龙身及龙尾的运动

龙身和龙尾的每一节板凳均由前节板凳带动。对于每一节板凳的运动,需要考虑以下几何约束:

  • 相邻板凳的距离为220 cm;
  • 每节板凳的把手位于螺线上,保持连接关系。

龙身的运动可以通过相邻板凳的相对位置变化推导出其每一时刻的位置和速度。由于龙头的速度恒定为1 m/s,因此龙身后部的速度会有微小的变化,特别是在螺线盘入时。

6. 数值计算

为了得到每秒的节点位置和速度,我们可以使用数值积分方法(如欧拉法或龙格库塔法)来模拟整个舞龙队的运动。每一个时间步长 ( \Delta t = 1 , \text{s} ),通过以下步骤计算:

  1. 计算龙头的角度增量 ( \Delta \theta );
  2. 更新龙头的极坐标位置 ( (r(\theta), \theta) );
  3. 通过几何约束,依次计算龙身和龙尾的每节板凳的位移和速度;
  4. 将每秒的结果保存至 result1.xlsx 文件中。
7. 特定时刻的位置和速度

根据题目要求,分别在 0 s, 60 s, 120 s, 180 s, 240 s, 300 s 时,给出以下节点的位置信息和速度:

  • 龙头前把手 ( x_{\text{龙头}}(t), y_{\text{龙头}}(t) )
  • 第1节龙身前把手 ( x_{\text{第1节}}(t), y_{\text{第1节}}(t) )
  • 第51节龙身前把手 ( x_{\text{第51节}}(t), y_{\text{第51节}}(t) )
  • 第101节龙身前把手 ( x_{\text{第101节}}(t), y_{\text{第101节}}(t) )
  • 第151节龙身前把手 ( x_{\text{第151节}}(t), y_{\text{第151节}}(t) )
  • 第201节龙身前把手 ( x_{\text{第201节}}(t), y_{\text{第201节}}(t) )
  • 龙尾后把手 ( x_{\text{龙尾}}(t), y_{\text{龙尾}}(t) )

速度的计算采用位移除以时间步长:

[
v = \frac{\Delta s}{\Delta t}
]

每节板凳的速度也需要记录并输出。

8. 总结

本问题的核心在于通过螺旋线的几何模型和舞龙队的运动学模型,推导出每一节板凳

问题二:确定舞龙队盘入的终止时刻,避免板凳之间碰撞

1. 问题描述

舞龙队按照问题一设定的螺旋线盘入。随着时间的推移,龙头不断在螺旋线上前进,后面的龙身和龙尾会逐渐跟随并紧密排列。当螺线的半径变得越来越小,板凳之间的距离可能会缩短到发生碰撞的程度。

问题二要求我们确定舞龙队盘入的终止时刻,即当板凳之间不能继续盘入而发生碰撞时的时刻。并在该时刻输出舞龙队的位置信息和速度。

2. 问题要求
  • 确定板凳之间最小的安全距离,避免相邻板凳发生物理碰撞;
  • 计算舞龙队不能继续盘入的终止时刻
  • 输出此时舞龙队的位置信息和速度,并将结果保存到 result2.xlsx 文件中;
  • 额外要求给出终止时刻龙头、龙身第1、51、101、151、201节龙身前把手及龙尾后把手的位置和速度。
3. 碰撞条件的分析

在舞龙队盘入过程中,相邻板凳保持通过把手相连,但随着螺线半径的逐渐减小,板凳之间的相对距离会变短。我们需要定义一个最小安全距离,以确保舞龙队不会发生碰撞。

假设两个相邻板凳之间的最小安全距离为220 cm,即板凳的长度。具体来说,如果两节相邻板凳在螺线上相距小于这个距离,则认为发生碰撞,不能继续盘入。因此,终止时刻可以通过如下条件来确定:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Ubuntu上安装配置(jdk/tomcat/ufw防火墙/mysql)+mysql卸载
  • 2024国赛数学建模-模拟火算法(MATLAB 实现)
  • 【FreeRTOS】Tickless低功耗模式
  • iOS——方法交换Method Swizzing
  • 安防监控视频打手机检测算法核心技术打手机检测算法源码、模型简介
  • Centos安装配置Gitea(Ubuntu等系统也可参考)
  • 香港一带一路研究院国际事务研究中心副主任陈景才阐述香港在一带一路建设及区块链金融领域的关键作用
  • Mindspore 初学教程 - 3. Tensor 张量
  • NextJs-react开发者的全栈最佳选择(从0-1的react全栈入门指南)
  • ElasticSearch-ELK
  • modelsim 关闭 warning 的方法
  • Linux系统下载并配置vscode(无废话)写C++
  • Spring事务和事务传播机制(下)
  • RK3588 系列之4—入门级完整demo项目
  • 银行创新技术应用系统概览(一)
  • @jsonView过滤属性
  • Android交互
  • Docker入门(二) - Dockerfile
  • echarts花样作死的坑
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • node学习系列之简单文件上传
  • oldjun 检测网站的经验
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue脚手架vue-cli
  • webpack4 一点通
  • Xmanager 远程桌面 CentOS 7
  • 电商搜索引擎的架构设计和性能优化
  • 聊一聊前端的监控
  • 驱动程序原理
  • 数据科学 第 3 章 11 字符串处理
  • 学习JavaScript数据结构与算法 — 树
  • 中文输入法与React文本输入框的问题与解决方案
  • kubernetes资源对象--ingress
  • 阿里云API、SDK和CLI应用实践方案
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​linux启动进程的方式
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​业务双活的数据切换思路设计(下)
  • (160)时序收敛--->(10)时序收敛十
  • (23)Linux的软硬连接
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (二)windows配置JDK环境
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (十八)三元表达式和列表解析
  • (一) storm的集群安装与配置
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • .Net CF下精确的计时器
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .net core使用ef 6
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法