走得有快有慢,扫过的面积却一样
第二定律好懂,可它带来一个方程——那个方程解不出来。
行星离太阳近时走得快,远时走得慢。开普勒发现的规律干净利落:连太阳与行星的那条线,在相等的时间里扫过相等的面积。演示里把一圈分成十二等份,每一份的面积都现算,扇形有胖有瘦,数值却一样到小数点后好几位。麻烦藏在下一步。天文学家要的是「给定时刻,行星在哪儿」,而面积定律给的是「给定位置,过了多久」,要反过来用。把它写出来就是开普勒方程:M = E − e·sin E。M 是均匀流逝的时间(平近点角),E 是位置(偏近点角)。已知 E 求 M 是一行算术;已知 M 求 E——这个方程解不出来。它不是难解,是没有初等解:三角函数和多项式混在一起,没有有限的式子能把 E 表示成 M 的函数。开普勒自己的办法是猜一个再改一个,一轮轮逼近;今天的做法是牛顿迭代,演示里把每一轮的值都印出来,火星那样的偏心率四五轮就收敛到双精度。这是人类第一次在实用问题上撞见「写不出来只能算出来」,此后它成了常态:轨道、潮汐、导航,凡是要从时间反推位置的地方,跑的都是这个循环。今天每一颗卫星的星历计算里,这个方程每秒钟要被解上千次。
拖时间看扇形有胖有瘦、面积却一样;右边是开普勒方程一轮轮收敛的过程
行星离太阳近时走得快,远时走得慢,可连线在相等时间里扫过的面积一样大。 画面上十二块扇形有胖有瘦,面积却相等——那十二个数是沿轨道把每块切成两百多个 三角形累加出来的,不是套公式写上去的。麻烦在下一步:天文学家要的是 「给定时刻,行星在哪儿」,而面积定律给的是反过来的对应。写出来就是开普勒方程 M = E − e·sin E——它没有初等解,三角函数与多项式混在一起, 没有有限的式子能把 E 写成 M 的函数。开普勒自己靠一轮轮试算,今天用牛顿迭代, 火星那样的偏心率四轮就到双精度。这是人类第一次在实用问题上撞见 「写不出来,只能算出来」;今天每一颗卫星的星历、每一次变轨,跑的还是这个循环。
