当前位置: 首页 > 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,即板凳的长度。具体来说,如果两节相邻板凳在螺线上相距小于这个距离,则认为发生碰撞,不能继续盘入。因此,终止时刻可以通过如下条件来确定:

相关文章:

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

A 题 “板凳龙” 闹元宵 “板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾相随盘旋&#x…...

网络编程(TCP+网络模型)

【1】TCP 初版服务器 #include <stdio.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <unistd.h> #include <arpa/inet.h> #include <string.h…...

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件&#xff0c; 这个文件包含了文件系统、 源码、库文件…...

如何在IntelliJ IDEA中将Tab设置为4个空格

前言 IntelliJ IDEA是一个强大的开发工具&#xff0c;支持多种编程语言。为了保持代码整洁一致&#xff0c;开发者经常需要调整编辑器中的Tab和缩进设置。 步骤1: 打开设置 首先&#xff0c;启动IntelliJ IDEA。在主界面上方的菜单栏中找到 File&#xff08;文件&#xff09…...

ASP.NET Core 入门教学十五 异步编程

在ASP.NET Core中&#xff0c;异步编程是一种非常重要的技术&#xff0c;它可以提高应用程序的性能和响应能力。本教程将介绍如何在ASP.NET Core中使用异步编程。 1. 异步编程基础 异步编程允许程序在等待某些操作&#xff08;如I/O操作&#xff09;完成时继续执行其他任务&a…...

pycharm 2024.1下载、安装

下载 下载官网&#xff1a; Other Versions - PyCharm 选择需要的版本下载&#xff0c;这里以 2024.1 的版本为例 安装 双击下载好的安装程序&#xff0c;点击下一步 选择安装路径&#xff0c;最好是英文路径&#xff1b;然后下一步 点击完成 激活 网址&#xff1a; Some…...

实变函数精解【18】

文章目录 有限测度有限测度概率测度有限测度与概率测度的关系 σ \sigma σ-有限测度计数测度完备概率测度 参考文献 有限测度 首先&#xff0c;我们来明确“测度”的概念。在数学中&#xff0c;测度是一个将集合映射到非负实数&#xff08;通常是实数的扩展&#xff0c;包括正…...

【深入解析】AI工作流中的HTTP组件:客户端与服务端执行的区别

在当今快速发展的技术环境中&#xff0c;AI工作流的设计和实现变得愈发重要。尤其是在处理HTTP组件时&#xff0c;前端执行与后端执行之间的区别&#xff0c;往往会对系统的安全性和数据的准确性产生深远的影响。今天&#xff0c;我们就来深入探讨这一话题&#xff0c;揭示前端…...

用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(上篇)

简介&#xff1a; 今天小李哥将介绍亚马逊推出的云平台4代高性能计算处理器Gravition&#xff0c;并利用该处理器构建生成式AI向量数据库。利用向量数据库&#xff0c;我们可以开发和构建多样化的生成式AI应用&#xff0c;如RAG知识库&#xff0c;特定领域知识的聊天机器人等。…...

调用火山云的语音生成TTS和语音识别STT

首先需要去火山云的控制台开通TTS和STT服务语音技术 (volcengine.com) 火山这里都提供了免费的额度可以使用 我这里是使用了java来调用API 目前我还了解到阿里的开源项目SenseVoice&#xff08;STT&#xff09;和CosyVoice(TTS)非常的不错&#xff0c;但是都是使用Python开发…...

中间件解析漏洞

一&#xff1a;IIS less-1 IIS6.X 步骤一&#xff1a;在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件 步骤二&#xff1a;在x.asp中新建⼀个.txt⽂件,内容为<%now()%> asp代码,更改后缀为jpg 步骤三&#xff1a;在外部浏览器进行访问Window2003的ip/x.asp/1.jpg&#xff0…...

如何在Mac电脑上本地部署Stable Diffusion:详细教程(webUI)

Stable Diffusion是一款强大的AI生成图像模型&#xff0c;它可以基于文本描述生成高质量的图像。对于想要在本地运行此模型的用户来说&#xff0c;使用Mac电脑部署Stable Diffusion是一个非常吸引人的选择&#xff0c;特别是对于M1或M2芯片的用户。本文将详细介绍如何在Mac上本…...

FPGA随记——移位寄存器

数电知识——移位寄存器&#xff1a;移位寄存器——数电第六章学习-CSDN博客 移位寄存器在FPGA中&#xff1a;FPGA原理与结构&#xff08;5&#xff09;——移位寄存器&#xff08;Shift Registers&#xff09;-CSDN博客...

Java | Leetcode Java题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution {public int lastRemaining(int n) {int a1 1;int k 0, cnt n, step 1;while (cnt > 1) {if (k % 2 0) { // 正向a1 a1 step;} else { // 反向a1 (cnt % 2 0) ? a1 : a1 step;}k;cnt cnt >> 1;step s…...

新型PyPI攻击技术可能导致超2.2万软件包被劫持

一种针对 Python 软件包索引&#xff08;PyPI&#xff09;注册表的新型供应链攻击技术已在野外被利用&#xff0c;并且目前正试图渗透到下游组织中。 软件供应链安全公司 JFrog 将其代号定为Revival Hijack&#xff0c;并称这种攻击方法可用于劫持 2.2万个现有 PyPI 软件包&am…...

spring cloud gateway 之删除请求头

在使用spring gateway作为网关时&#xff0c;我们经常需要在将请求转发到下游服务时&#xff0c;过滤掉某些请求头&#xff0c;以避免不必要的信息泄露&#xff0c;而spring gateway提供了RemoveRequestHeader内置的过滤器帮我们实现该功能&#xff0c;此外&#xff0c;我们也可…...

Flutter自动打包ios ipa并且上传

该脚本会自动打包iios ipa 并自动上传&#xff0c;中间自动flutter clean ,自动 pod install 里面需要填写自己应用的 apiKey和apiIssuer 如我的例子中apiKey 为 1234 apiIssuer 为5678&#xff0c; 首先flutter 工程目录 新建 shell目录&#xff0c;目录下新建ipa.sh文件&…...

深入理解synchronized的原理是什么

对象头锁机制原则 Synchronized 的原理是什么 Synchronized 是由JVM实现的一种实现互斥同步的实现方式。如果查看synchronized关键字修饰的字节码&#xff0c;会发现在编译器生成了monitorenter和monitorexit两个字节码指令。   这两个指令的意思就是在虚拟机执行到monitore…...

Electron32-Vue3OS桌面管理os模板|vite5+electron32+arco后台os系统

原创新作electron32.xvue3arco.design仿ipad/windows桌面os系统。 基于最新跨平台技术Electron32、Vite5、Vue3 setup、Pinia2、Arco-Design、Echarts、Sortablejs实战开发桌面版osx管理系统。内置ipad/windows两种桌面风格模板、动态json配置桌面图标、自研栅格拖拽布局模板。…...

c++ 定义函数

在C中&#xff0c;定义函数是一个基本的编程概念。函数是执行特定任务的一段代码&#xff0c;可以接受参数并返回值。下面是关于如何定义和使用函数的详细介绍。 1. 函数的基本结构 函数的基本结构包括以下几个部分&#xff1a; 返回类型&#xff1a;表示函数返回值的类型。…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...