第一讲 望海岛 —— 两根杆子就能测出海岛有多高?
刘徽的重差术第一题。两根三丈高的杆子、两次后退观测,不用靠近海岛,就能算出岛高四里五十五步、去表一百二里一百五十步。相似三角形的巅峰应用。
原典
今有望海岛,立两表,齐高三丈,前后相去千步,令后表与前表参相直。从前表却行一百二十三步,人目著地取望岛峰,与表末参合。从后表却行一百二十七步,人目著地取望岛峰,亦与表末参合。问岛高及去表各几何?
答曰:岛高四里五十五步;去表一百二里一百五十步。
术曰:以表高乘表间为实;相多为法,除之。所得加表高,即得岛高。求前表去岛远近者:以前表却行乘表间为实;相多为法。除之,得岛去表数。
这道题说的是什么
这是《海岛算经》的第一题,也是这本书名字的由来。
想象一下:你站在海边,远远看到海面上有一座岛。你想知道这座岛有多高、离你有多远。但是你过不去,你只能站在岸上测。你手里只有两根一样高的杆子(叫"表"),还有一把尺子。
刘徽说:这就够了。
具体怎么操作呢?
- 立两根三丈高的杆子,一前一后,相距一千步,跟岛峰在同一条直线上
- 从前杆往后退 123 步,趴在地上看——岛的顶峰、杆顶、你的眼睛,三点刚好在一条线上
- 从后杆往后退 127 步,再趴在地上看——又是三点一线
就这么两下测量,你就能算出岛的高度,以及岛离前杆的距离。
是不是觉得很神奇?不用三角函数、不用计算器、不用爬岛,两根杆子 + 两次观测,就搞定了。
示意图
几个名词先搞清楚
- 表:就是标杆、杆子。古代测量用的标准工具。
- 却行:往后退。"从前表却行"就是从前面那根杆子的位置往后退。
- 人目著地:眼睛贴在地面上。为什么要贴地?因为这样观测点的高度就是 0,计算更简单。
- 参合:就是"合在一起、对齐"的意思。"与表末参合"就是视线正好擦过杆的顶端。
- 表间:两根杆子之间的距离。
- 相多:就是"差多少"的意思。这里指 步。
- 实 / 法:古代数学术语,"实"是被除数,"法"是除数,"实如法而一"就是"被除数除以除数"。
古人的算法:术曰解读
刘徽给出的算法非常简洁,翻译成公式就是:
其中: = 表高, = 表间, = 前表却行, = 后表却行。
我们用题目里的数代进去算一算:
- 表高 丈 步(因为 1 步 尺 丈,所以 3 丈 步)
- 表间 步
- 相多 步
- 前表却行 步
岛高:
(因为 1 里 步, 步 里, 步)
去表:
跟刘徽的答案完全一样!
现代数学视角:相似三角形
为什么这个算法是对的?用我们高中的相似三角形一看就明白了。
设:
- 岛的高度为
- 前表到岛的水平距离为
- 表高为
- 两表间距为
- 前表却行 步
- 后表却行 步
从前表的观测点 看,有一对相似三角形:(其中 为前表顶端),所以:
从后表的观测点 看,同理,(其中 为后表顶端):
现在我们有两个方程,两个未知数( 和 )。解方程组就行了。
从 (1) 得:
从 (2) 得:
两式相减:
哎,等一下——两式相减得到的是 ,但刘徽的公式里还要再加一个 ?
这里的区别在于几何模型的设定:刘徽用出入相补原理(面积法)推导, 算出来的是"杆顶以上的岛的高度",所以还要加杆高 才是总岛高。而我们用相似三角形直接设 为总高度,推导出来就不需要再加。
代入数验证一下: 步, 步, 步:
哎,刘徽算出来的是 1255 步啊?差了 5 步——恰好就是一个表高!
问题出在哪?出在观测方式上。刘徽的观测是"人目著地"——眼睛贴在地面上。相似三角形的模型如果设人眼高度为 0,从地面出发经过杆顶到岛峰,那算出来的 就是总高度。
不管哪种方法,数学本质是一样的——都是利用两组相似关系,解二元一次方程组。 两种体系的几何图景不同,但都通向同一个结论:两次测量,就能把"测不到的高度"算出来。
有兴趣的同学,可以自己画画图,用相似三角形把这道题完整地推一遍,看看跟刘徽的答案对不对得上。
跟高中数学的关系
这道题对应的高中知识点是:
相似三角形的应用
在人教版高中数学里,相似三角形虽然是初中的内容,但到了高中,在解三角形、三角函数、立体几何里都会反复用到。特别是解三角形一章的测量问题——测高、测远、测不可到达的距离——本质上就是两千年前刘徽在《海岛算经》里干的事。
你看,高考题里的"在山脚下测山顶高度""在河这边测对岸两点距离",跟刘徽的海岛问题,是不是一模一样?
只不过古人用"重差术",我们用正弦定理、余弦定理。但核心思想是一样的:不能直接测的东西,通过几次间接测量,用数学算出来。
思考与拓展
-
为什么刘徽要测两次?只测一次不行吗? (提示:想一想,一次测量有几个未知数?一个方程能解几个未知数?)
-
如果岛不是在海上,而是在平地上,你可以走近一点,测量方法会有什么不一样?
-
你能不能用身边的东西(比如两根笔、一把尺子),实际测一下远处一栋楼的高度?跟用手机测出来的比一比,准不准?
-
刘徽的方法有什么误差来源?在实际测量中,怎么减少误差?
一句话总结
两根杆子、两次观测、一个公式——不用靠近,你就能算出远处的山有多高。这就是古代中国的测量智慧。