2024年高教社杯全国大学生数学建模竞赛A题 “板凳龙” 闹元宵——第二问详细步骤思路

在A题第二问中,问题要求确定舞龙队盘入的终止时刻,即当龙身和龙尾之间的板凳发生碰撞时。我们需要通过数学建模,模拟舞龙队的盘入过程,并找到当板凳之间的距离不足以继续盘入时的时间点。以下是该问题的详细解题步骤和思路。

问题分析:

舞龙队的盘入过程沿着螺旋线前进,随着时间推移,螺旋线圈数增加,螺旋的半径越来越小,龙身板凳之间的距离逐渐缩短。当某两节相邻或非相邻板凳的距离小于220 cm(板凳长度)时,说明发生碰撞,无法继续盘入。

1. 确定螺旋线方程

和第一问类似,舞龙队的运动轨迹沿螺旋线进行。螺旋线的参数方程为:

r ( θ ) = r 0 + p 2 π θ r(\theta) = r_0 + \frac{p}{2\pi} \theta r(θ)=r0+2πpθ

其中:

  • ( r(\theta) ) 是当前时刻的半径;
  • ( r_0 ) 是初始半径;
  • ( p = 55 , \text{cm} = 0.55 , \text{m} ) 是螺距;
  • ( \theta ) 是极角。

平面直角坐标为:

x ( θ ) = r ( θ ) ⋅ cos ⁡ ( θ ) x(\theta) = r(\theta) \cdot \cos(\theta) x(θ)=r(θ)cos(θ)

y ( θ ) = r ( θ ) ⋅ sin ⁡ ( θ ) y(\theta) = r(\theta) \cdot \sin(\theta) y(θ)=r(θ)sin(θ)

2. 初始条件设定

龙头从螺旋线的第16圈开始盘入,初始半径 ( r_0 = 16 \cdot 0.55 , \text{m} = 8.8 , \text{m} )。因此,龙头在初始时刻的位置为:

( x ( 0 ) , y ( 0 ) ) = ( 8.8 , 0 ) (x(0), y(0)) = (8.8, 0) (x(0),y(0))=(8.8,0)

龙头的速度为1 m/s,随着时间 ( t ) 的变化,龙头的位置可以通过螺旋线方程确定。

3. 模拟舞龙队的盘入过程

3.1 计算龙头的位置

龙头的行进距离随时间 ( t ) 以1 m/s的速度变化:

s ( t ) = v ⋅ t = 1 ⋅ t   m s(t) = v \cdot t = 1 \cdot t \, \text{m} s(t)=vt=1tm

螺旋角度随行进距离 ( s(t) ) 变化:

θ ( t ) = 2 π s ( t ) p = 2 π t 0.55 \theta(t) = \frac{2\pi s(t)}{p} = \frac{2\pi t}{0.55} θ(t)=p2πs(t)=0.552πt

计算每秒钟龙头的极角 ( \theta(t) ) 和半径 ( r(t) ):

r ( t ) = r 0 + p 2 π θ ( t ) r(t) = r_0 + \frac{p}{2\pi} \theta(t) r(t)=r0+2πpθ(t)

带入螺旋线方程,得到龙头的平面坐标 ( (x(t), y(t)) ):

x ( t ) = r ( t ) ⋅ cos ⁡ ( θ ( t ) ) x(t) = r(t) \cdot \cos(\theta(t)) x(t)=r(t)cos(θ(t))

y ( t ) = r ( t ) ⋅ sin ⁡ ( θ ( t ) ) y(t) = r(t) \cdot \sin(\theta(t)) y(t)=r(t)sin(θ(t))

3.2 计算龙身和龙尾的板凳位置

每节龙身板凳的前把手和后把手的位置根据龙头的位置通过推导得到。

假设第 ( n ) 节板凳距离龙头 ( n \cdot 2.2 , \text{m} ),其极角 ( \theta_n(t) ) 和半径 ( r_n(t) ) 为:

r n ( t ) = r ( t ) − n ⋅ 2.2 r_n(t) = r(t) - n \cdot 2.2 rn(t)=r(t)n2.2

θ n ( t ) = θ ( t ) − n ⋅ Δ θ \theta_n(t) = \theta(t) - n \cdot \Delta \theta θn(t)=θ(t)nΔθ

每节板凳的前把手位置可以通过极坐标转换为平面坐标:

x n ( t ) = r n ( t ) ⋅ cos ⁡ ( θ n ( t ) ) x_n(t) = r_n(t) \cdot \cos(\theta_n(t)) xn(t)=rn(t)cos(θn(t))

y n ( t ) = r n ( t ) ⋅ sin ⁡ ( θ n ( t ) ) y_n(t) = r_n(t) \cdot \sin(\theta_n(t)) yn(t)=rn(t)sin(θn(t))

4. 碰撞检测

碰撞发生的条件是:某两节相邻或非相邻的板凳之间的距离小于220 cm(板凳的长度)。

4.1 计算板凳之间的距离

假设第 ( n ) 节板凳与第 ( m ) 节板凳的坐标分别为 ( (x_n(t), y_n(t)) ) 和 ( (x_m(t), y_m(t)) ),则这两节板凳的欧几里得距离 ( d_{nm}(t) ) 为:

d n m ( t ) = ( x n ( t ) − x m ( t ) ) 2 + ( y n ( t ) − y m ( t ) ) 2 d_{nm}(t) = \sqrt{(x_n(t) - x_m(t))^2 + (y_n(t) - y_m(t))^2} dnm(t)=(xn(t)xm(t))2+(yn(t)ym(t))2

当 ( d_{nm}(t) < 2.2 , \text{m} ) 时,说明这两节板凳发生了碰撞。

4.2 找到碰撞的时刻

通过对每一时刻 ( t ) 的板凳位置进行更新,逐步计算每对板凳之间的距离 ( d_{nm}(t) )。当检测到 ( d_{nm}(t) < 2.2 , \text{m} ) 时,记录此时刻 ( t ),即为盘入的终止时刻。

5. 输出结果

  1. 终止时刻:确定无法继续盘入的时间,即发生碰撞的时刻 ( t )。
  2. 终止时刻的位置信息:记录在碰撞发生时,龙头前把手、龙身部分板凳和龙尾后把手的位置及速度。

这些结果可以保存在 result2.xlsx 文件中,格式与题目要求一致。同时,在论文中给出龙头和龙身部分板凳的位置信息。

总结:

  • 步骤1:建立螺旋线的运动方程,确定龙头和龙身的运动轨迹。
  • 步骤2:每秒更新龙头和龙身各节板凳的位置。
  • 步骤3:通过几何关系计算各节板凳之间的距离,判断是否发生碰撞。
  • 步骤4:找到发生碰撞的时刻并记录相关数据,得出无法继续盘入的终止时刻。

如果你需要进一步的编程实现或公式解释,可以随时告诉我!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值