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

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛

A题 自由泳

原题再现:

  在所有常见的游泳泳姿中,哪一种最快?哪个冲程推力最大?在自由泳项目中,游泳者可以选择他们的泳姿,他们通常选择前面的爬行。然而,游泳运动员是否有可能进一步提高他们的划水速度?请用一个数学模型来分析中风和指导运动员的训练。

整体求解过程概述(摘要)

  游泳是生活中常见的一种运动形式,那么,在各种泳姿中,哪种泳姿能获得最大的速度或最大的推进力呢?是否有可能在爬行的基础上进行改进,进一步提高游泳速度?本文结合水动力公式对上述问题进行了讨论。
  对于问题一,我们首先从几何上抽象出人体的形状,将手臂视为一个统一的圆柱体,将腿部视为两个圆柱体的组合。然后对四种泳姿的动作进行分析。根据流体力学中的阻力公式,将动阻力和静阻力分别表示,其中动阻力假定为全部推进力,腿的推进力作为补偿项。然后,根据牛顿第二定律的公式,建立了行驶速度随运动频率和时间变化的偏微分方程。在求解方程时,以运动频率为常数,将偏微分方程转化为常微分方程。然后利用四阶Runge-Kutta方法求解该方程,得到旅行速度与时间的定量关系。经过比较,我们发现自由泳是四种游泳方式中速度最快的。在30s内向前距离可达53.852m,比最慢蛙泳远14m左右。在推进力比较中,蝶泳在稳态下最大推进力可达150N左右,比最小仰泳大95N左右。
  对于问题二,首先,在人类几何的抽象中,我们将手臂细化为上臂、前臂和手。以运动频率为常数,以上臂与肩线夹角、前臂与水平面夹角为变量,建立了运动速度与时间的偏微分方程。为了便于求解,我们假设两个角度在一次游泳中保持不变。然后将偏微分方程转化为常微分方程,采用固定步长搜索法遍历各角度求解,得到当两个角度均为0.5∏时的最大旅行速度,即当手臂伸直且手臂运动平面垂直于水平面时,可以得到最大旅行速度。最后,我们发现人体可以在27秒内以最大速度前进58.25米。为了保证模型的准确性,我们还进行了敏感性分析,证明了直臂划水是不同身体特征运动员的最佳划水。此外,我们还考虑了手指夹角对移动速度的影响,确定了当双手合拢时可以获得最大速度。
  最后,我们将我们的结果汇编成一份提案,尽我们所能帮助运动员,我们期待着他们继续取得成功!

模型假设:

  为了简化给定的问题,我们对我们的模型做出以下假设:
  1、假设人体部分的某种几何近似对模型结果的影响可以忽略不计。
  2、假设游泳时惯性阻力和空气阻力可以忽略不计。
  3、假设动态阻力在游泳过程中提供完全推进力。
  4、假设在游泳过程中身体各部分之间的角度保持不变,并且在一次游泳过程中人体运动的频率不变。
  5、仰泳腿的动作可视为与自由泳相同,由于人体关节的限制,手不能达到与自由泳相同的运动幅度。因此,我们参考文献,并考虑由半臂冲程提供的身体前半部分的推进力。

问题重述:

  问题背景
  游泳是众所周知的一项竞技运动。在游泳项目中,运动员经常被要求使用特定的游泳方式进行比赛,在一定距离内能花最短时间的运动员将获胜。在游泳比赛中,目前常见的游泳方式有四种:爬泳、蛙泳、蝶泳和仰泳,它们都要求不同的动作和标准。在奥运会上,这四种风格都是合理的游泳方式,具有不同的竞技要求。
  现在,有必要弄清楚四种方法中哪种最快,哪种游泳方法可以获得最大的推进力。此外,在自由泳项目中,由于没有规定的游泳泳姿,运动员往往选择爬行。那么,在自由泳中,是否有可能进一步提高泳姿,从而达到更快的旅行速度?这是本文要解决的问题。
  此外,我们还有光荣的使命。通过数学模型对问题进行分析,提出改进游泳风格的方案,并提出建议,供运动员训练时参考,以达到更好的效果!

  我们的工作
  通过我们的游泳知识和流体动力学分析,我们开发了几个数学模型,可以说明该主题所需的问题。具体如下:
  •通过对人体在四种泳姿中不同运动的几何近似,将手臂和手视为一个统一的圆柱体,腿和脚视为圆柱体,根据流体力学中的流体阻力公式计算四种泳姿的推进力,并根据推进力和阻力公式结合牛顿第二定律求解偏微分方程,得到各泳姿速度与行程时间的关系。这将导致最推进和最快的冲程。
  •在上述结论的基础上,我们对爬行动作进行了较为详细的分解,将手臂分别视为上臂、前臂和手掌分别视为两个圆柱体和一个椭圆形圆柱体,设置游泳过程中手臂之间的夹角,并求出解出的方程的极值,得到能使速度最大化的身体角度。
  •此外,我们推测手掌的手指张开度也会对有效速度产生影响,为此,我们模拟了与手指张开角度相关的推进力。根据该模型,我们可以得到最合适的角度。
  •最后,我们将我们的研究成果汇编成一份详细的方案,供运动员在训练期间参考,希望该方案能帮助他们取得更好的效果。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

function dVb=he(t,Vb,gama,beita)
D1=0.083;
La1=0.34;
D2=0.054;
La2=0.3;
Ah=0.019;
Lh=0.19;
Ka=400;
Kb=31.487;
Kh=900;
f=1.11;
xita=mod(2*pi*f*t,pi);
dVb=((Ka*D1*(4/3*pi^2*f^2*La1^3*sin(gama)^2-2*pi*f*La1^2*Vb*sin(xita)*sin(gama)+
La1*Vb^2*sin(xita)^2)+Ka*D2*(4/3*pi^2*f^2*La2^3*sin(beita)^2+4*pi^2*f^2*La2^2*La1*
sin(beita)*sin(gama)+4*pi^2*f^2*La1^2*La2*sin(gama)^2-2*pi*f*La2^2*Vb*sin(beita)
*sin(xita)-4*pi*f*La1*La2*Vb*sin(gama)*sin(xita)+La2*Vb^2*sin(xita)^2)+Kh*Ah*
(4*pi^2*f^2*(La1*sin(gama)+La2*sin(beita)+Lh*sin(beita)/2)^2-4*pi*f*
(La1*sin(gama)+La2*sin(beita)+Lh*sin(beita)/2)*Vb*sin(xita)+Vb^2*sin(xita)^2 ))
*sin(xita)-sign(Vb)*Kb*Vb^2)/60;
end
S1=zeros(numel(0:pi/2/90:pi),numel(0:pi/2/90:pi));
max_S=0;
max_gama=0;
max_beita=0;
for gama=0:pi/2/90:pi
for beita=0:pi/2/90:pi
[t11,y11]=ode45(@(t,Vb)he(t,Vb,gama,beita),[0,27],0);
plot(t11,y11);
X1=[t11 y11];
S1(round(gama/(pi/2/90)+1),round(beita/(pi/2/90)+1))
=(numel(0:27)-1)/numel(X1(:,1))*sum(X1(:,2));
if(S1>=max_S)
max_S=S1;
max_gama=gama;
max_beita=beita;
end
end
end
max_gama=max_beita/pi*180;
max_beita=max_beita;
gama1=0:pi/2/90:pi;
beita1=0:pi/2/90:pi;
gama1=gama1/pi*180;
beita1=beita1/pi*180;
[gama2,beita2]=meshgrid(0:0.2:180,0:0.2:180);
S11=griddata(gama1,beita1,S1,gama2,beita2)
shading interp
mesh(gama2,beita2,S11)
clc
clear
T_t=10;
%f=1.667
%T=0.6s
T=0.9;
f=1.11;
A1=50.735;
A2=31.487;
A3=25.735;
L1=(533+90)/1000;%
%sign(2*pi*f*L1-y*sin(2*pi*f*t))*
L2=878/1000;
%%
% T_xs0=0;A_xs0=0;
% T_xs1=-0.1;A_xs1=0;
% T_xs2=-0.05;A_xs2=0;
% T_xs3=0.05;A_xs3=0;
% T_xs4=0.1;A_xs4=0;
%%
T_xs0=0;A_xs0=0;
T_xs1=0;A_xs1=0.2;
T_xs2=0;A_xs2=0.1;
T_xs3=0;A_xs3=-0.1;
T_xs4=0;A_xs4=-0.2;
[t0,y0]=ode45(@(t,y)free_Fenxi_fucntion(t,y,T_xs0,A_xs0),[0,T_t],0);
[t1,y1]=ode45(@(t,y)free_Fenxi_fucntion(t,y,T_xs1,A_xs1),[0,T_t],0);
[t2,y2]=ode45(@(t,y)free_Fenxi_fucntion(t,y,T_xs2,A_xs2),[0,T_t],0);
[t3,y3]=ode45(@(t,y)free_Fenxi_fucntion(t,y,T_xs3,A_xs3),[0,T_t],0);
[t4,y4]=ode45(@(t,y)free_Fenxi_fucntion(t,y,T_xs4,A_xs4),[0,T_t],0);
%%
X1=[t0 y0];
S0=(numel(0:T_t)-1)/numel(X1(:,1))*sum(X1(:,2));
S00=zeros(1,numel(t0));
S00(1)=y0(1);
for i0=2:numel(t0)
S00(i0)=S00(i0-1)+(numel(0:T_t)-1)/numel(X1(:,1))*y0(i0);
end
%%
X1=[t1 y1];
S1=(numel(0:T_t)-1)/numel(X1(:,1))*sum(X1(:,2));
S11=zeros(1,numel(t1));
S11(1)=y1(1);
for i11=2:numel(t1)
S11(i11)=S11(i11-1)+(numel(0:T_t)-1)/numel(X1(:,1))*y1(i11);
end
%%
X2=[t2 y2];
S2=(numel(0:T_t)-1)/numel(X2(:,1))*sum(X2(:,2));
S22=zeros(1,numel(t2));
S22(1)=y2(1);
for i22=2:numel(t2)
S22(i22)=S22(i22-1)+(numel(0:T_t)-1)/numel(X2(:,1))*y2(i22);
end
%%
X3=[t3 y3];
S3=(numel(0:T_t)-1)/numel(X3(:,1))*sum(X3(:,2));
S33=zeros(1,numel(t3));
S33(1)=y3(1);
for i33=2:numel(t3)
S33(i33)=S33(i33-1)+(numel(0:T_t)-1)/numel(X3(:,1))*y3(i33);
end
%%
X4=[t4 y4];
S4=(numel(0:T_t)-1)/numel(X4(:,1))*sum(X4(:,2));
S44=zeros(1,numel(t4));
S44(1)=y4(1);
for i44=2:numel(t4)
S44(i44)=S44(i44-1)+(numel(0:T_t)-1)/numel(X4(:,1))*y4(i44);
end
D_fenxi_picture(t0, S00, t1, S11, t2, S22, t3, S33, t4, S44, y0,y1,y2,y3,y4)
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 A题 自由泳 原题再现: 在所有常见的游泳泳姿中,哪一种最快?哪个冲程推力最大?在自由泳项目中,游泳者可以选择他们的泳姿,他们通常选择前面的爬行。然而,游泳…...

双端队列和优先级队列

文章目录 前言dequedeque底层设计迭代器设计 priority仿函数数组中的第k个最大元素优先级队列模拟实现pushpop调整仿函数存储自定义类型 前言 今天要介绍比较特殊的结构,双端队列。 还有一个适配器,优先级队列。 deque 栈的默认容器用了一个deque的东西…...

c#读取CSV文件跟Excel导入成DataTble

1.读取CSV文件 /// <summary>/// 读取CSV文件/// </summary>/// <param name"fileName">文件路径</param>public static DataTable ReadCSV(string fileName){DataTable dt new DataTable();FileStream fs new FileStream(fileName, FileM…...

Python编程技巧 – 单字符函数

Python编程技巧 – 单字符函数 Python Programming Skills – Single Character Function By JacksonML 0. 前言 Python有其内建(built-in)的一系列函数&#xff0c;其中&#xff0c;有两个函数为长度为一的字符设计。这样的函数是单字符函数&#xff0c;尽管它们操作的对象…...

xcode-文件

IOSDeviceSupoprt 共享缓存库 当你使用新的 iOS 设备连接到 Xcode 时&#xff0c;Xcode 会自动下载并存储相应版本的设备支持文件。 每个 iOS 版本都有一个对应的设备支持文件集&#xff0c;这些文件包含有关设备架构和操作系统的信息&#xff0c;以便 Xcode 能够正确地调试和…...

云原生之深入解析网络服务Istio、eBPF和RSocket Broker

一、服务治理 ① “服务治理”简介 在微服务时代&#xff0c;一个复杂的应用程序被分解为多个组件化、协作和连接的单元&#xff0c;服务往往会承担越来越多的业务责任&#xff0c;这使得服务治理的难度前所未有&#xff0c;仅仅依靠微服务框架级的治理是不够的&#xff0c;构…...

文件系统和磁盘调度

文件系统 概述 文件系统&#xff1a;一种用于持久性存储的系统抽象 在存储器上&#xff1a;组织、控制、导航、访问和检索数据大多数计算机包含文件系统 文件&#xff1a;文件系统中一个单元的相关数据在操作系统中的抽象 文件系统功能 分配文件磁盘空间 管理文件块管理空…...

C++ stringOJ练习题

目录 把字符串转换成整数 反转字符串 字符串中的第一个唯一字符 字符串最后一个单词的长度 找出字符串中第一个只出现一次的字符 字符串相加 字符串最后一个单词长度 字符串相乘 反转字符串3 反转字符串2 验证回文串 把字符串转换成整数 通过遍历字符串并逐位转换…...

解决问题:ImportError: cannot import name ‘_update_worker_pids‘

在复现一些较早年份文献时&#xff0c;网络架构是较早的Pytorch模型&#xff0c;现阶段的高版本不兼容&#xff0c;所以就得安装比如低版本的torch0.4.0以解决问题。 目录 一、问题1.1 问题分析 二、解决办法2.1 Pytorch安装2.2 torchvision安装2.3 测试是否安装成功 三、总结…...

【面试总结】Java面试题目总结(一)

&#xff08;以下仅为个人见解&#xff0c;如果有误&#xff0c;欢迎大家批评并指出错误&#xff0c;谢谢大家&#xff09; 1.项目中的验证码功能是如何实现的&#xff1f; 第一步&#xff1a;在项目的pom.xml文件中导入 EasyCaptcha 的依赖&#xff1b; <dependency>…...

大白话数据中台,何为数据中台

文章目录 一、数据中台二、本质三、构建数据中台的几个方面四、总结 最近一直在研发Ai平台&#xff0c;忙碌非凡。 在之余&#xff0c;有小伙伴质疑数据中台其实就是一个web系统&#xff0c;无法就是添加一些业务逻辑的增删改查。 答曰&#xff1a; 回去好好把科普下什么是数…...

escapeshellarg参数绕过和注入的问题

escapeshellcmd escapeshellcmd(string $command): string command--要转义的命令。 escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数&#xff0c;或者 执行操作符 之前进行转义。 …...

CSS——标准流、浮动、Flex布局

1、标准流 标准流也叫文档流&#xff0c;指的是标签在页面中默认的排布规则&#xff0c;例如&#xff1a;块元素独占一行&#xff0c;行内元素可以一行显示多个。 2、浮动 作用&#xff1a;让块元素水平排列 属性名&#xff1a;float 属性值&#xff1a; left&#xff1a;…...

P21 类神经网络训练不起来怎么办- 自动调整学习率 Adapative learning rate

梯度大&#xff0c;学习率减小梯度小&#xff0c;学习率变大adam随时间变化 &#xff0c; decay / warm up 调整学习率方法一 adagrad 学习率除以 梯度的方差 方法二 RMSProp 目前最常用的&#xff1a; Adam: RMSProp Moment Learning rate schedule : decay/ warm up l…...

[Linformer]论文实现:Linformer: Self-Attention with Linear Complexity

文章目录 一、完整代码二、论文解读2.1 介绍2.2 Self-Attention is Low Rank2.3 模型架构2.4 结果 三、整体总结 论文&#xff1a;Linformer: Self-Attention with Linear Complexity 作者&#xff1a;Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, Hao Ma 时间&#…...

【Jeecg Boot 3 - 第二天】1.1、后端 docker-compose 部署 JEECGBOOT3

一、场景 二、实战 ▶ 2.1 修改配置文件 &#xff1e; 目的一&#xff1a;将 dev 变更为生产环境 prod &#xff1e; 目的二&#xff1a;方便spring项目调用docker同个network下的redis和mysql ▶ 2.2 编写dockerfile ▶ 2.3 编写docker-compose.yaml ▶ 2.4 打…...

Centos单用户模式修改root密码

在CentOS 7的单用户模式下&#xff0c;你可以按照以下步骤修改root用户密码&#xff1a; 启动CentOS 7并进入GRUB菜单。在启动时按下任意键进入GRUB菜单。 在GRUB菜单中&#xff0c;选择要启动的CentOS 7内核版本&#xff0c;并按下e键进行编辑。 找到以 ro 开头的行&#xf…...

[Unity]关于Unity接入Appsflyer并且打点支付

首先需要去官方下载Appsflyer的UnityPackage 链接在这afPackage 然后导入 导入完成 引入此段代码 using AppsFlyerSDK; using System.Collections; using System.Collections.Generic; using UnityEngine;public class AppflysManager : MonoBehaviour {public static App…...

AICore 带来了 Android 专属的 AI 能力,它要解决什么?采用什么架构思路?

前言 Google 最近发布的 Gemini 模型在全球引起了巨大反响&#xff0c;其在多模态领域的 Video demo 无比震撼。对于 Android 开发者而言&#xff0c;其中最振奋人心的消息莫过于 Gemini Nano 模型将内置到 Android 系统当中&#xff0c;并开放给开发者使用。 事实上&#xf…...

python学习1

大家好&#xff0c;这里是七七&#xff0c;今天开始又新开一个专栏&#xff0c;Python学习。这次思考了些许&#xff0c;准备用例子来学习&#xff0c;而不是只通过一大堆道理和书本来学习了。啊对&#xff0c;这次是从0开始学习&#xff0c;因此大佬不用看本文了&#xff0c;小…...

从WHL文件到集成开发:Windows系统下PySide2的完整部署指南

1. 为什么选择PySide2开发Windows GUI应用 用Python开发图形界面程序有很多选择&#xff0c;但PySide2绝对是Windows平台下最值得推荐的工具之一。作为Qt官方绑定的Python库&#xff0c;PySide2不仅功能强大&#xff0c;还能免费商用。我最早接触PySide2是在一个工业控制项目里…...

Windows下OpenClaw安装指南:一键对接nanobot超轻量镜像

Windows下OpenClaw安装指南&#xff1a;一键对接nanobot超轻量镜像 1. 为什么选择OpenClaw nanobot组合 作为一个长期在Windows环境下折腾自动化工具的技术爱好者&#xff0c;我一直在寻找一个既轻量又强大的本地AI助手方案。直到遇到OpenClaw和nanobot的组合&#xff0c;才…...

Kubernetes集群的搭建与DevOps实践(下)- 部署实践篇

需求清单&#xff1a; 100张数据表要迁移&#xff08;还要支持后续动态新增&#xff09; 双链路同步&#xff1a;MySQL到MySQL、MongoDB到PostgreSQL 不能写死配置&#xff0c;要能灵活扩展 工期不到1个月 技术约束&#xff1a; 源环境&#xff08;塔外&#xff09;和目标环境&…...

西门子触摸屏报警处理:除了弹窗,用这个‘非中断式’方法让产线更丝滑

西门子HMI非中断报警系统设计&#xff1a;让产线效率提升30%的实战方案 在快节奏的工业现场&#xff0c;每一次操作中断都意味着产能的隐形流失。传统HMI报警弹窗就像突然按下的暂停键——操作员必须停下手中任务去点击确认&#xff0c;而流水线上的产品仍在流动。这种矛盾在汽…...

杰理芯片不用代码 给别人下载升级方法

先打开sdk 打开cpu找到cpu里的tools 然后把tools整个压缩成压缩包发给要下载升级的人就好下载升级方式&#xff1a;先连接好升级工具 然后打开tools 之后双击download.bat一般出现数字 例如 3.7.25.67 就是一系列数字就是升级成功了...

AnimateDiff部署指南:SD1.5+Motion Adapter显存优化版保姆级教程

AnimateDiff部署指南&#xff1a;SD1.5Motion Adapter显存优化版保姆级教程 1. 项目简介 想用几句话就让AI帮你生成一段流畅的视频吗&#xff1f;AnimateDiff就是这样一个神奇的工具。与那些需要你先提供一张图片才能生成视频的模型不同&#xff0c;AnimateDiff可以直接根据你…...

零基础快速入门前端CSS Transform 与动画核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)

CSS 中的 transform&#xff08;变换&#xff09;和 animation&#xff08;动画&#xff09;是实现网页动态效果的核心工具&#xff0c;也是蓝桥杯 Web 应用开发赛道的高频考点一、CSS 2D 变换&#xff08;transform&#xff09;transform 用于对元素进行平移、旋转、缩放、倾斜…...

当柔性车间遇上强化学习:从传统规则到DRL的调度进化史

柔性车间调度的智能革命&#xff1a;深度强化学习如何重塑制造业决策 在当今快节奏、定制化需求激增的制造业环境中&#xff0c;传统的生产调度方法正面临前所未有的挑战。想象一下&#xff0c;一个典型的电子设备制造车间&#xff1a;数百种不同规格的订单不断涌入&#xff0c…...

AI专著写作指南:深度剖析热门工具,助你专著创作一步到位

撰写学术专著的挑战与AI解决方案 撰写学术专著是一项严峻的挑战&#xff0c;它不仅考验着研究者的学术能力&#xff0c;还对心理承受能力提出了很高的要求。与论文写作常常可以依赖团队的支持不同&#xff0c;专著的创作更多的是独立作战。从选题到框架设计&#xff0c;再到细…...

Video2X:让你的老旧视频焕发新生的AI魔法工具

Video2X&#xff1a;让你的老旧视频焕发新生的AI魔法工具 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video…...