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

【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)

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

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 纳米材料咋设计?蛋白质模块咋用?看这里就知道啦!
  • 数学建模_缺失值处理_拉格朗日、牛顿插值(全)
  • Android流式接口请求实践
  • 设计模式学习-责任链模式
  • JVM系列(十) -垃圾收集器介绍
  • 【阿里云】个人认证与公司认证
  • 目标检测-YOLOv10
  • VMEMMAP分析
  • [阅读笔记]《解读基金—我的投资观与实践》— 季凯帆
  • windows下安装elasticSearch和kibana
  • C++——list的实现
  • 部署若依Spring boot项目
  • 【鸿蒙HarmonyOS NEXT】调用后台接口及List组件渲染
  • 一台笔记本电脑的硬件都有哪些以及对应的功能
  • WPF在MVVM架构下使用DataGrid并实现行删除
  • [Vue CLI 3] 配置解析之 css.extract
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【剑指offer】让抽象问题具体化
  • css系列之关于字体的事
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • jdbc就是这么简单
  • js对象的深浅拷贝
  • Mysql优化
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Selenium实战教程系列(二)---元素定位
  • webgl (原生)基础入门指南【一】
  • Yeoman_Bower_Grunt
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 分布式任务队列Celery
  • 基于axios的vue插件,让http请求更简单
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 利用jquery编写加法运算验证码
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 十年未变!安全,谁之责?(下)
  • 实现菜单下拉伸展折叠效果demo
  • 微信开放平台全网发布【失败】的几点排查方法
  • 微信支付JSAPI,实测!终极方案
  • 移动端 h5开发相关内容总结(三)
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1)SpringCloud 整合Python
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转) 深度模型优化性能 调参
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (自用)网络编程