博客日记

一次方程式解法

目前在中学数学课程的一次方程式单元,都涉及数学应用到现实世界的问题。因此,当我们发现历史上,几乎学习过数学的每一个人,从埃及的书记到中国的官吏都曾经发展出这类问题的求解技巧时,就没什幺好惊讶的!

这些求解实质上都採用算术进路(arithmetic approach),也就是,他们都运用了算术的想法,解决实质上是代数的方程式问题。不约而同地,古埃及和古中国数学家都利用了所谓的「虚位法」(method of false position),有所不同地,是古埃及使用「单设法」(method of single false position),而古中国则使用「双设法」(method of double false position)。

古埃及的单设法记载在《莱因德纸草书》(Rhind Papyrus),这份珍贵文本可能是古埃及时用来训练年轻书记的数学问题集,其中就包含了几个这类型的问题。其中,有一个简单的例子引述如下:「有一个量,它的一半和它的三分之一与它加在一起后变成10。」如果运用我们现在的符号来表示的话,它就成了如下的方程式:

$$x+{\frac{1}{2}}x+{\frac{1}{3}}x=10$$

然而,这样的符号法则直到十七世纪才出现。这个书记被教导该如何解这个问题,就如同我们现在所作的:将 $$10$$ 除以 $$1+\frac{1}{2}+\frac{1}{3}$$。

不过,这类问题在《莱因德纸草书》中,却以一种相当不同的方法来解决,例如针对「一个量,它的四分之一加上它后等于 $$15$$」书记显然运用下面的步骤,来取代 $$15$$ 除以 $${1}\frac{1}{4}$$:他假设这个量是 $$4$$,(为何是 $$4$$?因为很容易计算 $$4$$ 的四分之一。)如果你将 $$4$$ 和它的四分之一加在一起,你会得到 $$4+1=5$$,所以,我们要的是 $$15$$,但却得到 $$5$$;我们必将得到的数(也就是 $$5$$)乘以 $$3$$,才能得到我们要的数(也就是 $$15$$)。接着,将我们猜测的数字乘上 $$3$$。由于我们猜测的数字是 $$4$$,所以,答案是 $$3\times 4=12$$。

上述这种样方法,就是前述的单设法。在斐波那契(Fibonacci)的《计算书》(Liber abaci)中,我们可以看到有关此一方法相当详尽的举例说明。这个方法的一般原则如下:我们假定一个答案,并不真的期望它就是正确解答,但是,它可以使得计算容易一点。然后,利用这个猜测所得的不正确结果去找出一个倍数,使得我们猜测的数乘上它以后,会获得正确的答案。

至于前述的双设法,就是将单设法延拓,它还是用以求解一次方程式,但是,仍然而没有代数符号的操作。在解决线性方程式的问题上,这是一个相当有效率的方法,以致于在代数符号法则出现之后的一段很长时间内,仍然被广泛持续使用。

事实上,由于它不要求任何代数技巧,一直到19世纪,欧美算术教科书还一直教导这个方法,譬如美国出版的《校长的好帮手》(Daboll’s Schoolmaster’s Assistant, 1837)就有如下例题:「将一钱袋中的 $$100$$ 美元分给 $$A$$、$$B$$、$$C$$ 和 $$D$$ 四个人,如果 $$B$$ 要比 $$A$$ 多 $$4$$ 元,$$C$$ 比 $$B$$ 多 $$8$$ 元,而 $$D$$ 所得是 $$C$$ 的两倍,那幺每一个人可以分得多少钱?」

应用现代方法来解此一问题,假设 $$A$$ 所得的量为 $$x$$,那幺  $$B$$ 得  $$x+4$$,$$C$$ 得 $$(x+4)+8=x+12$$,$$D$$ 得 $$2(x+ 12)$$。由于总钱数为 $$100$$ 元,可得方程式:$$x + (x + 4) + (x + 12)+2(x + 12) = 100$$。接着,可用一般方法来解决这个问题。

然而,在《校长的好帮手》中,则是推荐如下方法:先随便猜测一个数字,例如 $$A$$ 得到 $$6$$ 元,那幺 $$B$$ 得到 $$10$$ 元,$$C$$ 得到 $$18$$ 元,$$D$$ 得到 $$36$$ 元。将这些数量加起来,总共得到 $$70$$ 元;如此我们短缺了 $$30$$ 元。所以,再试一次。这一次,我们猜测大一点的数字,例如 $$A$$ 得到 $$8$$ 元,那幺 $$B$$ 得到 $$12$$,$$C$$ 得到 $$20$$,$$D$$ 得到 $$40$$,总共为 $$80$$ 元,这个结果依然是错的,少了 $$20$$ 元。

现在,神奇的部分来了,列出两个猜测与误差的数字。将他们交叉相乘:$$6\times 20$$ 得到 $$120$$,$$8\times 30$$ 得到 $$240$$;将它们相减,$$240-120 = 120$$;将它除以两个误差间的差,在此为 $$10$$,于是,$$A$$ 的正确所得量即是 $$120/10=12$$。《校长的好帮手》解释说:这是当两个误差是同类型时(在本例中,两者都是低估),吾人所採用的步骤与作法。如果它们是不同类型时,我们可以用两个乘积的和,并且除以两个误差间的和。

现代的读者对这个方法通常会有一点迷惑:为什幺它行得通?也许利用一些图像思考会是分析它的最好方法。给定方程式 $$x+ (x + 4) + (x+ 12)+2(x + 12) = 100$$,不管等号左边的式子化简之后的结果是什幺,这个方程式都会像是 $$mx+b=100$$ 这样的形式,所以,我们可以将它想像成:有一条直线 ,我们想要决定当 $$y=100$$ 时,$$x$$ 的值为多少。

此时,需要两个点来决定这条直线,而两个猜测值给了我们这两个点:$$(6, 70)$$ 与 $$(8, 80)$$ 都在这一条直线上。我们想要找到使 $$(x, 100)$$ 也在这条直线上的 $$x$$ 值。因为这条被已知两点唯一决定的直线之斜率固定,所以,所得到的答案 $$x$$ 将会一致的。事实上,在前三点中,任意两点所决定的斜率一定相等,故有下列方程式:

$$\displaystyle\frac{100-70}{x-6}=\frac{100-80}{x-8}$$ 或 $$\displaystyle\frac{30}{x-6}=\frac{20}{x-8}$$

其中,分子刚好就是我们之前有的两个误差。

交叉相乘,得到 $$30(x-8)=20(x-6)$$,化简得 $$(30-20)x=(30\times 8)-(20\times 6)$$

也就是说,$$\displaystyle x=\frac{(30\times 8)-(20\times 6)}{30-20}=\frac{120}{10}=12$$

这个结果刚好与双设法的计算过程一模一样。

当然,我们将方程式理解成直线的具有「现代性」(modernity)的方法,还是相当晚近的事(回溯到17世纪而已),而双设法却是非常非常久远的历史记忆了。

事实上,这条直线的斜率并不需要真地计算出来,我们甚至不必将这些比值想任何图像意义上的斜率。我们所需要知道的,只是输入值的变化与输出值的变化成比例,而这也就是所谓「线性」的本质所在。这一点古代数学家显然得以真正体会,而对于今日国内之高中学生而言,也是值得大力推荐的学习题材,儘管他们在国中阶段已经熟知一次方程式解法。

最后,我们简略介绍中国古代的双设法,聊供读者发思古之幽情。在公元前186年埋葬的西汉竹简《筭数书》(由不知名的地方小吏所抄写)中,有一个例题如下:「分钱人二而多三,人三而少二。问几何人?钱几何?」答案:「五人,钱十三。」

至于解法则如下:「赢、不足互乘母以为实,子相从为法。」

按本题的赢母 $$=2$$,赢子 $$=$$ 多 $$3$$,不足母 $$=3$$,不足子 $$=$$ 少 $$2$$。
于是,利用「赢(盈)不足术」(古中国版的双设法)可得:
原人数 $$=$$(赢子 $$+$$ 不足子)$$/$$(赢母与不足母相减)$$=5$$(人);
原钱数 $$=$$(赢子 $$\times$$ 不足母 $$+$$ 不足子 $$\times$$ 赢母)$$/$$(赢母与不足母相减)$$=13$$(钱)。

另外,还有一个例题如下:「田一亩,方几何步?」亦即给定一块正方形田地,面积为 $$1$$ 亩($$=240$$ 平方步),求它的边长。因此,这个问题的求解相当于求 $$240$$ 的平方根 $$\sqrt{240}$$。

非常有趣的是:本书竟然利用「赢(盈)不足术」来求解:
由于 $$15^2-240=-15$$、$$16^2-240=16$$,所以,本题之答案(近似值)为
〔不足子($$15$$)$$\times$$ 赢母($$16$$)$$+$$ 赢子($$16$$)$$\times$$ 不足母($$15$$)〕$$\div$$〔赢子 $$+$$ 不足子〕
$$= (15\times{16}+16\times 15)/(16+15)=15+(15/31)$$

换句话说,在两千多年前,西汉地方小吏不仅利用「赢(盈)不足术」,来求解可以化约为一次方程式的问题,竟然也利用同一方法来求平方根的近似值。在世界数学史上,利用上述方法以求平方根之近似值,目前仅见于中国古代这一部珍贵数学文本,这是非常值得注意的历史现象。

到了东汉初,另一部中国算经《九章算术》则将「盈不足术」列为第七章,给予更加系统性的彙编,因而「盈不足术」遂成为中国传统数学的正统方法之一。一直到清末,此一方法可以作为算术学习转向代数学习的一个极佳之过渡,才被数学家华蘅芳注意到,并写入他的《学算笔谈》之中。

参考文献: