简单讲一下上次给汇子的问题应该怎么解决
从12月26日到我写这篇专栏已经过了七天,可怜又无助的汇子还是没能给出他的答案,也没能成功看到我的代码。

这位互联网造谣界宗师级别的人物,多次在视频中声称它自己和它的研究生同学算过,“直上直下差不多72小时能到月球”“直线是最快的,现实中时间不可能比这个更短”
然而面对几乎一模一样的问题,我只是帮他换了几个数字,这位“MIT的高端人才”就不会算了,只能顾左右而言他扯开话题然后假装什么都没发生。现在可以确定汇子在网上说过的为数不多的一句真话大概就是

即便如此,汇子养的猴儿们还是忠贞不渝地守护着自己的主子,期待着主子把下一条谣言塞进他们那小巧玲珑的脑壳里,如此罕见地主仆之情简直令人感动到落泪。

下面讲点有用的东西,这个问题到底应该如何计算?

这里给出两种方法,供参考
一、最简单最无脑、计算量大且精度不高的方法
把整个运动过程划分成一个个小微元,每隔一个微小的时间进行一组计算。
比如,将速度变化过程视为匀变速过程,每隔一秒,计算在这一秒内的速度增量,进而得到这一秒内前进的路程,将路程增量累加起来直到达到目标点位置。其实本质上这种方式就是在用一个又一个小矩形拟合一个曲边梯形。
但问题在于,实际速度变化并不是匀速的,因此这种计算方式存在误差。当然分割的时间间隔越小误差就越小,但是时间间隔越小计算量就越大,而且误差不容易控制,可以用来对结果做估计但不实用。想依靠人和计算器甚至是笔算显然是不现实的,最好是靠计算机编程。
这种计算方法名师汇在自己的视频里也介绍过,我在以前的专栏里也用过,但是很显然汇子并不具备实现这种计算方法的能力,为了恰流量骗粉丝最后只能胡编一个“72小时勉强够”的逆天结论。甚至它在视频里连轨道高度都没考虑过,直接从地球以10882m/s的速度开始飞,它都不愿意算一下(或者根本就没意识到)这个能量够不够到达地月引力的平衡点,可以说骗猴骗得及其敷衍,不过现在看来猴儿们似乎就爱吃这种口味。

好了回归正题,来看第二种方法
二、让我们仔细分析一下这个模型
因为万有引力定律的表现形式是距离的平方反比,也就是说每一个位置的受力是确定的,力在位移上积分可以得到能量的变化量,这意味着能量的变化量是位移的函数,也就是说速度的平方是位移的函数,在速度没有负值(也就是速度方向变化)的情况下,就可以说这个模型里速度是位移的函数。

现在问题就比较明确了,在已知速度与位移函数关系的情况下,如何求解时间?

用不严谨但更直观的语言解释一下这个式子,我们取一段非常非常小的位移,小到什么程度呢?小到我们可以认为在这一小段位移内速度大小是几乎不变的,用这一小段位移dx除以速度v就得到了一个很小的时间段dt,把整个过程的dt累加起来,就得到了全过程的时间T,而等式右边是一个关于位移的积分式。
现在我们已经得到了时间的计算式,问题转化成了如何求解右边这个定积分。
学过高数的朋友们第一反应肯定是找被积函数的原函数。但是并不是所有函数都能找到原函数,有些原函数用初等函数是表示不出来的。而我们面对的这个被积函数要想找到原函数并不容易。
好在这是一个定积分,我们要的只是最后的计算结果,而不是原函数的表达式。在工程上解决这类问题可以用数值积分。

常见的数值积分方法有Newton-Cotes公式和Guess求积公式,内容比较多,需要一定的高数基础,如果真的感兴趣可以去学一学数值分析的相关课程。
这里给出Newton-Cotes公式的一种实现方法。从复化梯形格式出发,通过变步长、加速外推得到Romberg序列。

matlab数值积分 https://www.aliyundrive.com/s/mGdGqR6SGaW 提取码: 02am 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。