热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

最速曲线及应用

一起来观赏一下数学之骚美。原文:https:tieba.baidu.comp3635683462?red_tag0223460281这事儿和17世纪的一道谜题有关,直到后来

一起来观赏一下数学之骚美。

原文:https://tieba.baidu.com/p/3635683462?red_tag=0223460281

这事儿和17世纪的一道谜题有关,直到后来微积分被建立起来以后才得正解。虽然问题不难,但结果惊艳。
我先来问一个比较「二」的问题: 两点之间最短的路径是什么?

喏,别猜疑我是在逗你们,或拿非欧几何抖机灵,真心希望你们两手一摊就说是一条直线。
铁线上的珠子
现在我们来看一下这次节目我们要探讨的问题: 如果AB两点是在空间中垂直放置的,那么这两点之间的最快路径是什么?
举几个图,如果我们将两点之间用铁线连接,上面穿一颗圆润的珠子,那么以下哪种姿势的路径可以让珠子以最快的速度从A点滑降到B点?

注意,此问题中要加上重力加速度(但是不考虑摩擦力和空气阻力)的情况下,考察那条铁线上的珠子最快降落到B点,给你两分钟时间……
会不会是第一种直线的方式呢?无论如何,我们都知道这是两点之间最短的路径。所以珠子需要移动的距离是最短的,而且珠子不需要改变运行方向跑偏,严格按照起始的方向埋头滑到底。
会不会是第二种抛物线形式的路径最快?抛物线是种水平位移与垂直运动成平方关系的运动路径,更符合物体在自然界重力作用下的坠落轨迹(事实上,那些讹你钱让你吐一地的「失重体验」飞行,飞的就是这种路径。)
还有第三种跳台滑雪式的路径,它会是最快的一个么?走这种路径有个优势,就是在一开始会获得较高的加速度,当加速度达到最大的时候,把这种优势转化为较短的时间滑过后半程的水平位移上。
是不是还有种可能,实际上对于下坠来说,其实路径根本就无所谓?你看,反正是能量守恒的事情,同等高度的情况下,珠子具有的势能也是一样的,那么最后获得的动能也是一样的,那么我们能不能说其实路径的选择对速度是没有影响的?
最后,会不会这些路径都不是最快的?其实还有其他的可能?比如一个完美的圆弧?
诶?听上去貌似都有点道理!您觉得呢?鼠标别撒手,跟我继续看下去……
牛顿、贝努里、惠更斯、莱布尼茨、钦豪申、罗比达(反正都是些远古学霸)
在17世纪末,扎堆出现了一大批杰出的数学家:牛顿、贝努里、惠更斯、莱布尼茨、钦豪申、罗比达……他们都在做这道题,出题的人是雅各布·伯努利他弟,约翰·伯努利:
“我,约翰·伯努利,想找到世界上最棒的数学家。没有比出道难题更为难人,更能公平公正地爽到我了,能解决这个问题的人必能扬名立万,千古流芳。成为能与帕斯卡,费马等牛人齐名的大V。请允许我代表整个数学界提出这个尤其能在今天考验大家的数学技巧和思维耐力的问题。如果有人能把答案递交与我,我会将其公开,并授予其应得的奖赏。”
这个约翰·伯努利是谁?好像口气很吊的样子,反正你们就当他是知乎的黄继新就行了,要不是他,牛顿的万有引力还能早些获得承认,他们一家人都是大学霸,兄弟,父子之间还互相瞧不上眼。
史载是牛顿第一个找到了正确解法和答案。伽利略几十年前已经给出了自己的结论,但由于手里没有微积分,得出了错误的答案,所以咱也别自惭愧,不知道也很正常。

最速曲线 (Brachistochrone Curve)
这个问题存在一个最优解,这条曲线有一个拗口的名字,叫 Brachistonchrone 曲线(词源来自希腊语,brachistos是最短的意思,chronos 意思是时间)。这的确念起来累舌头,但先别皱眉,莱布尼茨还想更佶屈聱牙地叫它 Tachystopote ……

最速曲线的形状接近那个「跳台滑雪」(上图第三个),起始近乎的垂直加速让珠子获得了快速通过后半程水平位移的能力,平均速度最快。上图的动画里,红色的就是那条「最速曲线」。(伽利略的结论错在认为完美的圆弧才是最快的路径。)
关于变量的计算
在这里要得到的最优解的计算,不是要将一个函数里的某个变量最小化,而是需要一个函数来把其他变量最小化。这就是「变分法」。关于变分法的介绍很多,所以我在这里就快速展示一下这个过程,反正 @sein也不按字数发粮票……

计算的基本思路是「能量守恒」。坠落的珠子把势能变成动能。如果我们把这条弯曲的路径长度记做s,每一段无线小的路径记做ds,得:


不同的路径都会有不同的函数,在这里,我们的目标是找到那个最小的y的函数表达式。

我们知道路径是连续的(没有坑洼和突然的起伏),而且我们知道只有一个变量就是加速度,所以得到一个二阶导数 d2y/dx2,而且我们知道起点和终点的值。
抄个近道直接给你们答案吧,下面是关于夹角θ切线的参数方程

等式中K是一个保证曲线经过终点(xB,yB)的系数。
摆线(Cycloid)
上式所得到的图像,就是下图我们所看到的「摆线」,美不胜收……

所谓摆线,描述的是某个圆上的一点,在圆沿直线运动时候的滑过的轨迹。
想象你的车跑在这样形状的一个坡上,轱辘就是那个黑点,那它运动速度最快的区间就是在这条摆线的 0≤θ≤π 的范围里,从垂直下降到回归水平位置的这段路径上(见下图)。

这到底有毛用?

最速曲线对于建造过山车有巨大的指导意义,那些造过山车的工程师总要绞尽脑汁在有限的垂降距离里,尽快达到最高速爽到你。如我们刚才所证的,「最速曲线(Brachistochrone Curve)」是两点之间最快的路径。
这在竞技体育上也大有用处。如果你是一个滑雪运动员,目标是最短时间冲线,你根本就不在乎两点间的最短路径,而是最快路径。如果你沿着最速曲线的路径下滑,你会获得更多的加速度优势。
能看到这里的都是好同学
这事儿还能更带劲。
在均一力场的框架下,「最速曲线(Brachistochrone Curve)」有时候也被称之为「等时曲线(tautochrone)」(依旧感谢希腊人,taut的意思是「相等」)。
你可以把物体放在「等时曲线」的任何位置上,它们都将以 相同的时间 滑落到同一个位置。

位置越高的物体,将以更快的速度,和位置较低的物体一起通过最低点。(具体时长是π乘以圆弧的半径除以g的平方根)。
你可以在威武的Wolfram 上玩到更精彩的例子
我们回忆一下高中的物理知识,老师讲过钟摆的运动周期取决于摆臂的长度,但这个说法只是理想状态下的近似结果。当钟摆真甩起来的时候,其实摆臂的长度是有细微微的变化的:

当摆臂很长,而摆幅很小的时候,这个误差也很小,但这个误差是躲不掉的。最早发现这个问题的是数学家惠更斯,他用一个叫做「翻转摆线的渐开线( involute of an inverted cycloid)」的特别方法纠正了这个误差(后面讲到),制造出了完美的钟摆(惠更斯钟摆),他是历史上第一个研究钟摆在摆线顶端出现误差的人。
如果摆臂的长度是摆线周长的一半,那么钟锤运行的轨迹是沿着一条摆线以固定的时长运动,且时长与摆动的高点位置无关。渐开线指的是一条描述摆臂上一动点沿着曲线运动,与所选切线上的交点的轨迹。(如果每个字都认识,这真不是我的错……,下图蓝色那段就是所谓「渐开线」)。

下图就是惠更斯设计的钟摆,钟摆顶部有两片金属簧片,现在被称之为 Huygen's Chops。

当钟摆摆动时,吊绳就贴上了簧片,簧片的形状就是摆线的渐开线,钟摆因此就沿着完美的摆线运行了。

摆线,最速曲线和等时曲线
摆线的特性在名著《白鲸记》中也有描述:

「炼鲸油锅」也包含着数学的光辉。Pequod号捕鲸船的左舷的锅子里,当我用滑石打磨锅壁的时候,注意到了这个神奇的现象,所有的东西都按照摆线的规则,无论从哪儿开始,都以同样的时间滑落到锅底。
如果你还在玩四驱模型车,那么你可以告诉孩子们,如果是在一个最速曲线形状的滑道上比赛,无论赛车从哪儿起跑,比赛都是公平的。

(当然机灵的小家伙们会告诉你,红色的车子会跑的最快)。



一个符合数学要求的滑板溜碗赛场,应该两边是符合「等时曲线」的形状。如果你在这种赛场和人较劲,那么你可以放心,无论他们踩着什么器材,大家在坡底的耗时都是一样的。如果形状不如意,那么你最好别沿着坡度直接下去,最好滑出一道最速曲线的轨迹来。
再说一次渐开线
我觉得最后值得说一说渐开线,它和摆线一样有趣,而且在工作中更能发挥实际作用。比如齿轮。早期的齿轮都是按照摆线的轮廓制作的。

这种齿轮一般具有更宽的齿牙截面,因此也更强更有力,但在现代工业制造中已经很少见了。如上图所示,摆线齿轮是由两条摆线为轮廓构成的,这个样子的齿轮现在在自行车上比较常见。在动画最后,你会看到齿牙根部又被切掉了一块,这是在钟表齿轮上常见的做法(为了减少重量,更重要的是减少碰撞和摩擦。)

而如今,更常见的齿轮是以渐开线为轮廓的(想象成好多Huygen's Chops组成的齿轮就是了)。
当这种齿轮咬合的时候,两齿之间的接触点稳定,摩擦更少,运转更平稳。没有其他形状的齿轮会发生的抖动和噪音。而且这种齿轮还有一个优点就是两个齿轮之间的圆心距离可以随意改变,而不需要改变轮子的传动比(而摆线齿轮必须固定两个齿轮之间的圆心距离)。
最后,渐开线齿轮顶部和底部是平的,只有弧度的两侧,所以比较易于加工。
摆线齿轮现常见于自行车、手表、钟表上,除此以外,基本上都是渐开线齿轮的天下了。
滚石
下次,如果你再看到山坡上寂寞翻滚的大石,请记起17世纪的那些大学霸们!

推荐阅读
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • 本文介绍了在解决Hive表中复杂数据结构平铺化问题后,如何通过创建视图来准确计算广告日志的曝光PV,特别是针对用户对应多个标签的情况。同时,详细探讨了UDF的使用方法及其在实际项目中的应用。 ... [详细]
  • 解决 fbterm 键盘映射问题
    本文介绍了在首次运行 fbterm 时遇到键盘输入法无法启动的问题,并提供了两种解决方案,包括使用 setuid 和 setcap 方法。 ... [详细]
  • Backup Exec 11d 初学者使用心得与技巧
    随着企业应用程序的不断扩展,数据备份的需求日益增加。本文通过介绍Symantec Backup Exec 11d的实际应用体验,旨在为初学者提供一些实用的操作指南和建议。 ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • 本文基于《Core Java Volume 2》的内容,深入探讨了网络编程中通过POST方法提交表单数据的技术细节,包括GET与POST方法的区别、POST提交的具体步骤及常见问题处理。 ... [详细]
  • ZOJ 2760 - 最大流问题
    题目链接:How Many Shortest Paths。题目描述:给定一个包含n个节点的有向图,通过一个n*n的矩阵来表示。矩阵中的a[i][j]值为-1表示从节点i到节点j无直接路径;否则,该值表示从i到j的路径长度。输入起点vs和终点vt,计算从vs到vt的所有不共享任何边的最短路径数量。如果起点和终点相同,则输出无穷大。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 行为设计模式:命令模式详解
    命令模式是一种行为设计模式,它通过将请求封装为对象,使得可以使用不同的请求来参数化客户端,支持请求的排队、日志记录以及提供命令的撤销和恢复功能。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 本章探讨了数据类型及其操作的基本概念,深入讲解了数据抽象和抽象数据类型的重要性,以及它们如何支持面向对象的编程方式。通过实例展示了字符串复制的不同方法,并讨论了类定义对系统资源的影响。 ... [详细]
  • 本文介绍如何使用 Arcade 库在 Python 中绘制太阳,包括环境配置、基础图形绘制方法及具体代码示例。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
author-avatar
cherry
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有