当前位置: 首页 > 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;小…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

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

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

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...