数学之美:两点之间最快的路径



掉节操的星期一又来了,所以呢一起来观赏一下数学之骚美。

这事儿和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号捕鲸船的左舷的锅子里,当我用滑石打磨锅壁的时候,注意到了这个神奇的现象,所有的东西都按照摆线的规则,无论从哪儿开始,都以同样的时间滑落到锅底。

如果你还在玩四驱模型车,那么你可以告诉孩子们,如果是在一个最速曲线形状的滑道上比赛,无论赛车从哪儿起跑,比赛都是公平的。

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

一个符合数学要求的滑板溜碗赛场,应该两边是符合「等时曲线」的形状。如果你在这种赛场和人较劲,那么你可以放心,无论他们踩着什么器材,大家在坡底的耗时都是一样的。如果形状不如意,那么你最好别沿着坡度直接下去,最好滑出一道最速曲线的轨迹来。

◆ ◆ ◆

再说一次渐开线

我觉得最后值得说一说渐开线,它和摆线一样有趣,而且在工作中更能发挥实际作用。比如齿轮。早期的齿轮都是按照摆线的轮廓制作的。

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

原文发布时间为:2016-11-05

时间: 2024-10-30 08:01:32

数学之美:两点之间最快的路径的相关文章

数学之美:平凡又神奇的贝叶斯方法

◆ ◆ ◆ 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子.更严格的公式和计算我会在相应的地方注明参考资料.贝叶斯方法被证明是非常 general 且强大的推理框架,文中你会看到很多有趣的应用. ◆ ◆ ◆ 1.历史 托马斯·贝叶斯(Thomas Bayes)同学的详细生平在这里.以下摘一段 wikipedia 上的简介: 所谓的贝叶斯方法源于他生前为解决一个"逆概"问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的.在贝叶斯写这

js实现两点之间画线的方法

  本文实例讲述了js实现两点之间画线的方法.分享给大家供大家参考.具体分析如下: 最近有点无聊,琢磨了很久,想到了一消磨时间的点子,也就是做js版的连连看. 两点之间画线也只是连连看最基本功能的一部分,所以我画的线也仅是折线,而且还只能向左折,后面将根据连连看中图片位置点来确定折线的方向. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

java 根据经纬度 坐标 计算两点之间的距离

根据经纬度,坐标,计算两点之间的距离: 参数格式如下:每一个param的两个值之间用分号分割 @param1  positionOne =aa.bbbb;cc.dddd @param2  positionOne =ee.bbbb;gg.dddd public static double getDistance(String positionOne, String positionTwo) {double long1;double lat1;double long2;double lat2;dou

地图api-asp利用百度地图 判断两点之间的距离多少米

问题描述 asp利用百度地图 判断两点之间的距离多少米 asp利用百度地图 判断两点之间的距离多少米 我用asp做的手机网站,希望通过得到用户当前的坐标,然后判断离他最近的商户的位置.如何实现,救大神解! 解决方案 通过2点的经纬度来计算 http://wenku.baidu.com/link?url=A8bPgL_oKmBQ6CU7KDi154dV5s5Lf53V5MXEs0i251cFGNgbCRZ3NWLgajznzKdHq6-pFZI0eyxCxDUCwodN8_XYsOEWYcT1HB

我读经典(1):读《数学之美》有感

        一提到"数学",很多人也许就会感到头痛.确实,在大学的所有课程中,凡是与"数学"有关的课一般逃课率都比较高,当然挂科率也比较的高.可见,大家对"数学"是多么的"厌恶".         但是,我们每天的生活又离不"数学".你到农贸市场去做买卖,需要算账,这是最简单的"数学".作为软件开发人员的我们,需要设计算法,那就更离不开"数学"了."数学

c++ 课设 c++编程问题-C++编程题 用类做两个坐标,求两点之间的距离

问题描述 C++编程题 用类做两个坐标,求两点之间的距离 用类做两个坐标,求两点之间距离 C++编程题明天上课就要交了,不交就得挂科,求尽快给以正解,在下感激不进 解决方案 http://codepad.org/zqnz4GTt #include <math.h> #include <iostream.h> using namespace std; class Point { public: int x; public: int y; public: double distance

根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为: 复制代码 代码如下: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(

请教大虾们,google地图两点之间有连线,移动点的时候,线如何随着改变?在线等……

问题描述 如题,最近在google地图上呈现一些数据和数据之前的连线关系,即根据两点之间的关系和坐标,在地图上出现连线,现在需要改变一个点的坐标,想使线也跟着点的移动而改变,请教大侠们,如何做到这点?恳请指点,不胜感激!

两点之间最短的距离不是直线而是一条障碍最小的曲线

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天早上上班晚了,因为公交卡忘带了,回去拿这么一来一回,坐上车时已经8点多了,公司是9点上班,我家又离公司好远,估算了下,不迟到的几率非常渺茫,心痛啊,这个月又没有全勤.虽然这么想,可是心里还是抱有一丝侥幸和期待,一路过来顺利的没怎么堵车,下车时离上班还有15分钟,可是从车站到公司平时我最快走也要20分钟,这时候脑中就一个想法,拼了,因为迟到