各式联立方程组的程序性解法 (1):麦克劳林与卡丹诺(Dif

摘要:本文介绍麦克劳林在其《代数学》中所呈现的二元、三元一次联立方程组的解公式,它们等价于克拉玛公式。另外还介绍了卡丹诺在《大技术》中相当于二元一次联立方程组的程序性解法。

麦克劳林的公式

麦克劳林 (Colin Maclaurin, 1698~1746)在27岁的时候获得牛顿 (Newton)的推荐担任爱丁堡大学数学教授一职,将一生都奉献给了故乡苏格兰。在他死后两年 (1748年)才出版的着作《代数学》(Treatise of Algebra)中,也有今日所谓的「克拉玛公式」,他利用解方程式的方式,得出下列的公式:

$$\left\{ \begin{array}{l} ax + by = c\\ dx + ey = f \end{array} \right.\Rightarrow \left\{ \begin{array}{l} x =\displaystyle \frac{{ce – bf}}{{ae – db}}\\ y =\displaystyle \frac{{af – dc}}{{ae – db}} \end{array} \right.$$

$$\left\{ \begin{array}{l} ax + by + cz = m\\ dx + ey + fz = n\\ gx + hy + kz = p \end{array} \right. \Rightarrow \left\{ \begin{array}{l} x =\displaystyle \frac{{ekm – bfm + bcn – bkn + bfp – cep}}{{aek – abf + dbc – dbk + gbf – gce}}\\ y =\displaystyle \frac{{afp – akn + dkm – dep + gcn – gfm}}{{aek – abf + dbc – dbk + gbf – gce}}\\ z =\displaystyle \frac{{aep – abn + dbm – dbp + gbn – gem}}{{aek – abf + dbc – dbk + gbf – gce}} \end{array} \right.$$

上述的公式与今日的「克拉玛公式」(Cramer’s rule) 唯一的差别,就在于没有用行列式来呈现而已。儘管麦克劳林在1729年的手稿中就已经写出上述的公式,但在1748年的《代数学》一书中,麦克劳林仍是仅止于此,并未将公式推广到四个未知数以上的联立方程组。

虽说他在书中有提及可利用相同的方法写出四个未知数的公式,但终究未诉诸文字。再者,麦克劳林都是透过实际解方程式得出公式的,除了公式之外,他并没有指出公式之间是否有何一般性的通则。换句话说,即使麦克劳林曾经写出过四个未知数的公式,但他仍无法指出五个以上的未知数公式长得什幺样。

卡丹诺的〈论方法的规则〉

若仅是从解联立方程组得到未知数的值来看,那16世纪的数学家卡丹诺 (Girolamo Cardano, 1501~1576)也曾经得出相关的成果。卡丹诺的名声并不太好,有些人喜欢用赌徒来称呼他,但他的着作《大技术》(Ars Magna)奠定了他在数学发展史中的地位。一般人提到《大技术》一书,总是着眼于其中的解三次方程式,而忽略了卡丹诺在这本书中的第29章〈论方法的规则〉(De regula Modi,英文翻译为On the Rule of Method)中提出了相当于二元一次联立方程组的解法。卡丹诺以一个例子来说明:

7呎长的绿色丝绸与3呎长的黑色丝绸要价72个硬币,在相同价格下,2呎长的绿色丝绸与4呎长的黑色丝绸要价52个硬币。我们想要知道它们个别的价格。

在正确地解出此题后,卡丹诺审视整个解题过程,然后得到了一般性的「规则」:

现在我得到了这个规则,我说:「将比较大的长度7呎,以及硬币总数72,一同除以比较小的长度3,然后将所得的商乘以第二个情况中的长度,就是原来比较短的丝绸。然后从[乘以]长度的乘积中减去第二个情况中剩下的长度,再将剩下的差除价格52与[乘以价格的]乘积的差,就会得到第一个情况中比较长的价格。」

以今日的符号表示,若方程组为 $$\left\{ \begin{array}{l} {a_{1}}x + {b_{1}}y = {c_{1}}\\ {a_{2}}x + {b_{2}}y = {c_{2}} \end{array} \right.$$,依卡丹诺所给的「规则」,可得出 $$x =\displaystyle \frac{{\frac{{{c_{1}}}}{{{b_{1}}}} \times {b_{2}} – {c_{2}}}}{{\frac{{{a_{1}}}}{{{b_{1}}}} \times {b_{2}} – {a_{2}}}}$$。卡丹诺所谓的「规则」,意义上比较相近于今日所用「算则」(algorithm)一词, 也就是说,他写出的并非解的公式,而是告诉读者依照他所给定的计算步骤,一步一步算下去,最后就能得出未知数的值。

然而,读者或许会质疑,卡丹诺一席话跟今日认知的「算则」之间,两者有着不小的落差,更甚者,卡丹诺看起来只是在谈这个特例,而非一般化的解法。原因就出在卡丹诺所处的时代,符号代数并未发展完成,在少了符号的帮助之下,卡丹诺只好用特例的数值来表示一般化的情况,这在早期的数学中是很常见的情形。也正因如此,我们也就毋需大惊小怪他所写出来的「规则」会长成这副德性了。

卡丹诺非常推崇这个「规则」,还称呼它为「规则之母」!卡丹诺的推崇其实并不单单指「规则」本身,而是包括从一系列运算中抽象化出「规则」的过程,也就是说,读者只要能掌握此抽象化过程,那幺,就能如卡丹诺在这一章开头中所说的:「那幺你就会得到解决任何相似问题的『方法的规则』。」由于《大技术》一书流传很广,因此,卡丹诺对抽象化「规则」的追求,着实深深影响了后来符号代数的发展。

连结:各式联立方程组的程序性解法 (2):中国的版本

参考资料:

上一篇: 下一篇: