天才的杰作——珠算开方术(转载)

F
FoxMe
楼主 (未名空间)

珠算开方术从筹算开方术演化而来,原理基本一样,只是效率更高。珠算开方最杰出的成就,莫过于朱载堉的十二平均律。十二平均律是现代音乐的基础,核心问题是对2开
12次方,这样就能实现音调的循环。当然了,2的12次方可以分解为开两次平方根和一
次立方根,所以原则上只要掌握开平方的办法和开立方的办法即可。珠算开方基本上也主要是这两个,但相对来说,在没有计算器的时代里,这已经可以处理许多问题了。

开平方和开立方的原理差不多,后者更复杂一点,所以这里就讲前者。开平方也有很多种方法,这里讲最基本的一种。原理就是利用(10a+b)^2=100a^2+20ab+b^2.

举例:开5776的平方。
第一步,在算盘上打5776这个数字,数字前面至少留一档。
第二步,确定平方根的第一位,也就是a的大小。方法就是看5776除以100的商数57,显然,57对应的方根是7。在算盘上5776的前一档置7,原数字减去4900,于是得70876。
第三步,确定平方根的第二位,也就是b的大小。方法就是看876除以20的商数43,显然43除以7的商数为6。
将算盘上70876的第二位0变成6,而876则减去20*7*6,得76036。
第四步,检查最后的36是否开方得6,如果是,则答案得到,即76。
若不是,则开方为小数,继续按照之前的办法重复进行,直到得到需要精度的解。
上述办法可以容易地推广到任意位数的开方。在具体操作时,会有一些简化的流程或口诀,方便普通人以较快速度完成开方。总之,与珠算的四则运算一样,最终的开方术是非常简便且易于操作的。

近代反思中国古代科技的声音中,有很大一派是认为中国人不会抽象思维,所以无法形成现代科学体系。这是错的。只要是可以被称为“数学”的学科,就一定是抽象的,没有“具象”的数学。客观的说,中国古代数学不是不抽象,而是太抽象,导致了很多具体应用存在困难。西方数学的基础是几何,几何就是一个相对而言比较“具象”的学科,因为点、线、面、体总是能够给人产生直观印象。

中国古代主要是算学,也就是在一堆数字之间做各种巧妙的处置,从头到尾都是数字,没有任何图像,如果抽象思维能力不强的人,很难对这种数学模式产生什么感觉。为了避免这样的数学模式难以被人接受,所以中国古代就有了算术,也就是将复杂的运算规则总结成简单的“术”,一般人不懂其原理,但只要知道“术”,也就是知道了计算流程,就可以应用了。这有点类似于现代计算机,我想大多数人都不会明白计算机的软件是用怎样的语言写出来的,大多数人只要会用这些软件就行。中国古代算术,就类似于这样的“软件”。

西方现代数学的发展,离不开几何与代数的合流。代数在西方出现的历史很晚,要到文艺复兴以后了,这正是东方的数学大量传入的结果。有很多证据表明,中国古代数学在西方起了重要的推动作用。这个不再赘述。

中国古代的算学,虽然没有出现几何思想、没有出现现代的微积分和矢量,但我们有另外三样法宝,完全可以替代。

第一个是数值插分法,也就是现代微积分中的泰勒展开、保留到高阶项。唐朝时候为了计算日躔月离表,通常是保留到第二阶,而郭守敬则是保留到第三阶,其精度确实已经相当高了。插分法需要一个很重要的工具,就是杨辉三角。这个三角也就是二项式系数表,主要就是用在泰勒展开时确定展开系数。有了这个三角,展开到任意多阶都是可行的。

第二个是勾股术,中国算学里没有点、线概念,最基本的单位就是三角,利用三角勾股术,基本上大多数几何问题都能转换为代数,比如《九章算术》中将螺旋线转换为勾股的题目。

第三个是大衍求一术,也就是同余问题求解,这个可以直接等价到近代的傅立叶变换上。

大衍求一术的原理,就是把任意一个自然数,展开成另一些数的线性组合,组合的系数是根据余数为1的规则去求。这和量子计算的Shor算法几乎是同一件事情。关于大衍求
一术的细节及其与矢量代数的关系,请见附录。

中国古代数学在今天依旧可以有生命力,正是因为大多数情况下,实际的应用离不开“术”的总结。我们现在这个社会正在从“科学”为主向“技术”为主的转移过程。这个转移过程离不开经验公式的总结,这就是术。

举个例子,我们计算一个匀加速直线运动,在《九章算术》就有一道非常类似的题目。题目说:“今有良马与驽马发长安至齐。齐去长安三千里,良马初日行一百九十三里,日增一十三里,驽马初日行九十七里,日减半里。良马先至齐,复还迎驽马。问几何日相逢?”

这道题目中,出现了总路程、初始速度、加速度等基本物理量,用现代的力学方法,完全可以求解(当然,答案会与原解有0.2日的偏差,原因是插分法的边界条件所导致)
。原文解法则是利用盈不足术,先设二马15日相逢,不足337.5里,16日相逢,盈140里,运用盈不足术,则得答案为15.7日。

用我们现代力学的思维,这样的做法用到了质心及相对质心的动力学,已经有了加权平均的思想。这种思想其实在经典力学中非常重要,因为大多数情况下,质心+相对质心
都是基本的解体思路,只不过我们现在的教材中还没有把这个提到很高的程度。

而按照现代物理的标准,这道题目正确的做法是列出坐标的运动方程,积分两次,即可得到相应结果。但在中学物理中,我们实际上学的是一个总结好的积分结果,也就是vt+at^2/2这样的经验公式,利用这个公式就能较为容易地计算任何匀加速运动。

我们的基础教育中,有大量的情况都是类似的。比如热学中的气态方程,电磁学中的安培力等。我们的中学生没有使用其原本的微分和积分形式,同样可以解出相应问题,并且在未来实际应用中也依然适用。我们有大量的习题,填鸭式地让学生掌握一些经验的“术”。这样的教育模式也为我们培养了大量懂得运用“术”的工程师,他们未必会解一个三维空间中带矢量的梯度微分方程,但他们知道如何动手制作一个电磁铁、以及导线缠多少圈就能达到他想要的磁场强度。可以这样说,我们现在的基础教育模式,并没有脱离中国传统算学的框架。而且现在看来,其行之有效。

西方现代数学的核心是函数,函数是曲线的一种简单推广,它可以说是一切现代科学的基础。它主要是定量的刻画关系。我们中国人最重视的莫过于“关系”,但我们却没有试图把“关系”定量化,这是中国数学和西方数学最大的差别。究其原因,西方数学的起源是几何,几何的重点就是研究各种曲线及其关系。最出名的,莫过于古希腊对椭圆的研究,在其基础上直接诞生经典力学、及其对第谷-开普勒天文体系的解释。

中国古代甚至找不到任何哪怕与“函数”这概念接近的一个概念,即使我们已经有十分发达的方程术(多元一次方程组)和天元术(一元高次方程),甚至四元术(多元高次方程组)。究其原因,主要还是因为中国古代数学最基础的单元是三角形,而非点或线,所以没有人关心“线”到底是什么。

举个例子,明清之际西方几何传入,曾引发了中国数学家大量讨论椭圆之类的问题,也出版了大量著作,比如《椭曲同诠》、《椭圆又术》、《椭圆正术》、《椭圆正论》、《椭圆盈缩简法》、《解徐椭圆正术》等,这些著作一个重要的关注点,就是如何将用中国古代算面积为主的算术学来解释椭圆。

这里就存在一个问题了,到底函数是否是必须的?函数核心的运用,是解微分方程。实际上,不管现代函数论里出现多么复杂的特殊函数、广义函数,本质上都是由幂函数、三角函数、指数(对数)函数组合而成的,说白了,也就是三类曲线的叠加。

中国古代数学既然是以三角为基础,如果任何函数都能分解成各种三角的组合,那么函数的意义自然也就失去了。事实上,的确我们有过这样的尝试,典型的成果就是朱世杰的三角垛积术。其术的要旨,就是把任何的立体形状,转化为三角形的叠加。这显然已经触及函数的本质。如果持续发展下去,或许就会诞生完全不同于现代西方数学、却同样行之有效的一套数学体系。或许,在未来某一天,三角垛积术真的能继续发展,站上其真正应用的舞台。

总体来说,中国古代算学是把数值计算发挥到了极致,不仅为我们古代的科技进步贡献了巨大力量,直到今天,它留给我们的遗产也相当丰富。甚至于,在计算机已经如此发达的今天,数值计算正在成为科学的主要研究手段,那么中国古代算学完全有可能重获新生。

事实上,以吴文俊先生为代表的一批数学家,至今仍在致力于古代算学的发掘和整理工作,并且还将许多西方几何学思想加入到古代算学,使之更能适应新时期的科学需要。我一直相信,在不远的将来,数学就将回到中国古代算学家熟悉的那个轨道上。甚至于我们还可大胆估计,数百年后的科学体系,仍将是以中国算学的语言来书写。那时,我们也将迎来真正属于中国人的科技世界。 作者:洗芝溪 https://www.bilibili.com/
read/cv6234878 出处:bilibili
b
bobolan88

中国古代搞了好多珠算算法 类似现在的计算机算法 理论上都是图灵机体系里的

【 在 FoxMe (FoxMe) 的大作中提到: 】
: 珠算开方术从筹算开方术演化而来,原理基本一样,只是效率更高。珠算开方最杰出的
: 成就,莫过于朱载堉的十二平均律。十二平均律是现代音乐的基础,核心问题是对2开
: 12次方,这样就能实现音调的循环。当然了,2的12次方可以分解为开两次平方根和一
: 次立方根,所以原则上只要掌握开平方的办法和开立方的办法即可。珠算开方

★ 发自iPhone App: ChinaWeb 1.1.5
F
FoxMe

属实。《九章算术》的开方术很可能是世界上最早的算法,神奇的是它能精确到任意位。比如算5的平方根,可得到:

2.2360...

它的原理很简单,即反复运用二项展开式

(10a+b)^2 = 100a^2 + 20ab + b^2

如果要算立法根,就用立方的二项展开

(10a+b)^3 = 1000a^3 + 300a^2b + 30ab^2 + b^3

经过唐宋数学家的工作,开方术推广到高次方程的求根(杨辉三角就是这么来的),提出了很多改进算法,有十多
种之多。到公元1000年左右,中国数学家就已经完全解决高次方程的求根问题,此为古典代数的巅峰成就。宋代数学家秦九韶在《数书九章》中给出了10次方程的求根例子,其实那个例子不一定非要用到10次方程,秦九韶可能是炫耀武力,说明中国数学家的高次方程求根技术已经炉火纯青。

相比中国的数值求解,近代西方更喜欢搞代数闭式解。西方二次方程弄了个所谓伟大定理,三次/四次方程费了九牛二虎之力,到了五次就无能为力了。不过伽罗瓦横空出世
,搞出了群论,完成了从古典代数到近世代数的升级,可能算是后发优势的成功例子。

【 在 bobolan88 (波波熊) 的大作中提到: 】
: 中国古代搞了好多珠算算法 类似现在的计算机算法 理论上都是图灵机体系里的
: ★ 发自iPhone App: ChinaWeb 1.1.5

F
FoxMe

伽罗瓦理论基本上是个否定结果,即否定了近代西方追求闭式解的努力,宣告了五次以上方程闭式解的破产。令人匪夷所思的是,这个失败却奠定了近世代数的基础,现代数学(无论是分析,几何,还是数论)都要用点代数来包装门面。不得不说,近代的国运在西方。