周朝的天文数字之基点
一
“昔者荣方问于陈子,曰:今者窃闻夫子之道,知日之高大、光之所照、一日所行、远近之数、人所望见、四极之穷、列星之宿、天地之广袤。夫子之道,皆能知之,其信有之乎?
陈子曰:然。
荣方曰:方虽不省,愿夫子幸而说之。今若方者,可教此道邪?
陈子曰:然,此皆算术之所及。子之于算,足以知此矣,若诚累思之。
于是,荣方归而思之。数日不能得,复见陈子,曰:方思之不能得,敢请问之?
陈子曰:思之未熟,此亦望远起高之术而子不能得。子之于数未能通类,是智有所不及而神有所穷。
夫道术言约而用博者,智类之明。问一类而以万事达者,谓之知道。今子所学算数之术是用智矣,而尚有所难,是子之智类单。
夫道术所以难通者,既学矣患其不博,既博矣患其不习,既习矣患其不能知。故同术相学、同事相观,此列士之愚智,贤不肖之所分。是故,能类以合类,此贤者业精习智之质也。
夫学同业而不能入神者,此不肖无智而业不能精习。是故,算不能精习,吾岂以道隐子哉!固复熟思之。
荣方复归思之。数日不能得,复见陈子,曰:方思之以精熟矣。智有所不及而神有所穷,知不能得,愿终请说之。
陈子曰:复坐,吾语汝。
于是,荣方复坐而请陈子说之。曰:夏至南万六千里,冬至南十三万五千里。日中立竿测影,此一者天道之数。”
上文,头-段,点出周朝所关注的、并计算出的几个天文数字。尾一段,给出两个基础数。一个是夏至那天中午测日影求得的,一个是冬至那天中午测日影求得的。同一种操作,有同样结果,即立竿之地到日下的直线距离。
二
怎么测得?陈子接续有话。“周髀长八尺,夏至之日晷一尺六寸。髀者股也,正晷者句也,正南千里句一尺五寸,正北千里句一尺七寸。”
其意:沿着一条南北方向的直线,选三个点,两边点到中间点的距离均一千里,立同样八尺竿,夏至正午的日影,差一千里而差一寸。据此认定:日晷一寸,相当实际距离一千里。
陈子继续说道,“日益表南,晷日益长。候句六尺,即取竹空径一寸、长八尺,捕影而视之,空正掩日而日应空之孔。由此观之,率八十寸而得径一寸。”
其意:过了中午,太阳向竿的南面移动,晷越来越长。准备好一个内径为一寸、长八尺的竹筒。晷到六尺之时,太阳光穿孔落地正好成圆,据此认定:实际一寸径,相当光影径八十寸。
“故以句为首,以髀为股,从髀至日下六万里。而髀无影,从此以上至日则八万里。若求邪至日者,以日下为句,日高为股,句股各自乘,并而开方除之,得邪至日。从髀所旁至日所十万里。以率率之,八十里得径一里,十万里得径千二百五十里。故曰,日晷径千二百五十里。”此段,作图示意:
小直角三角形,为髀晷构成。大直角三角形,求“日之高大”的设计而成。由相似三角形对应边长成比例,有如下“日高”算式:
{(8×10)x1000}÷1000 = 8(万里)
日大,指光影落地所成圆,用“日晷径”表示,有如下算式:
(10×10000)÷80 = 1250(里)
三
接上文,有一张“日高图”。从书的排版来看,并非赵婴绘制。此图不是用于求日高,反倒是借用已知日高八万里,将底衬单元格的边长,固定为九分之四。这样,测算山高等,按实际的髀高、晷长及两髀间距,在“日高图”上,利用矩而画形,即可得出实际高度。可以说,“日高图”乃计算工具示意图。
图中,甲字单元格组成合矩——以为方,乙字单元格组成偃矩——以望高,戊字单元格组成卧矩——以知远。至于两条斜线,与日下垂线、底边成两个直角三角形。基于此,可推导出所隐含的测高公试。见下图形:
两髀同长,为h;前髀的晷长为a,后髀的晷长为b;两髀间距为c。所求高,设为x。由髀构成的两个小三角形,与各自所在的大三角形,为相似三角形,故有等式:
a/h=底边/x
b/h=(底边-a-c+b)/x
等号两边项各自相减,整理后,得到求高公式:
x=hc/(a-b)+h
用文字表述,就是:所求高等于髀长乘两髀间距,除以前晷长减后晷长,再加髀长。