题记
自然科学只有数学的形式才称得上是科学。
——康德(Kant,1724-1804)
开场小故事
宋代杨辉所著《田亩比类乘除捷法》书中有这样一道题:直田积864步,只云阔不及长12步。问阔及长各几步?答:阔24步,长36步。
这题古算解法有四种:带从开方法、益积开方法、减从开方法和四因积步法。前三种方法比较繁琐,就不介绍了,说说第四种四因积步法。
此图由《周髀算经》中的弦图变通而来。
如图,先求长方形面积的4倍,得864×4=3456,再看图中的小正方形,它的边长恰好是长方形的长减宽的差,它的面积当然就是差的平方。得12*12=144,大正方形的面积就是3456+144=3600,开方得大正方形的边长为60,也就是说长方形的长加宽是60,于是问题转化为小学数学的和差问题。用和差法得出:长=36,宽=24
这个方法的代数原理是:(a-b)2+4ab=a2-2ab+b2+4ab=a2+2ab+b2=(a+b)2
女儿在做奥数作业时遇到一道题不会,问我怎么做?题目如下:甲数比乙数大9,两数的积是792,求这两个数分别是多少?
这不就是改编的那道古算名题吗?于是我就在草稿纸上画图,用四因积步法解题:
792×4=3168,加上九九八十一就等于3249,开方用手机计算器,手机竖屏是标准型,横屏则是科学型,立马算出平方根是57,于是这两个数就是33和24
画外音:唐代僧一行(出家前原名张遂)在历法计算中,曾经解了一个一元二次方程,如果这个方程是x2+px=q,p>0,q>0,那么一行求得的正根是 ,画外音结束。
把作业对付完了,我的思绪却飘向远方,好像有什么不对。
第三级数学运算
杨辉的那道题目有鲜明的特色,数字都设计得非常巧妙,计算过程因为数字凑得整齐而毫不费力,在辛苦的解题过程之后,给人赏心悦目的感受。这也是中国古算的一大特色吧。杨辉的题目巧妙地回避了开方的难点,但对奥数题目而言,就没有回避开方的退路,必须正面解决这个如何开方的问题。(不要误解,我绝不会说杨辉不会开方,开方对宋代数学家来说犹如探囊取物,易如反掌。)
数学运算共有七种,可分为3个等级。第一级运算有两种,加法和减法,互为逆运算;第二级运算也有两种,乘法和除法,互为逆运算;第三级运算有三种,乘方、开方和对数。乘方是第五种运算,它有两种逆运算,即开方和对数。重点谈谈第六种运算:开方。本文只讲开平方。
公元前300年古希腊的《几何原本》就有乘法公式(a+b)2,古希腊人知道平方数之外,2、3、5……17的平方根是无理数,这甚至还引发了第一次数学危机。
巴比伦人使用60进位制,把一天分为24小时,一小时有60分,一分有60秒,与现代的时间单位一致。巴比伦人知道除法公式,掌握了勾股定理,计算 的值精确到小数点后第5位。有有理数平方根表,无理数平方根的计算方法后面我会详细介绍。巴比伦人使用近似计算公式
巴比伦60进位制的符号
巴比伦的平方表和立方表
9世纪,印度人就能解二次方程,知道一个数的平方根有两个值,还知道负数的平方根不可能是实数。
米歇尔·斯蒂弗尔(1487-1567年)写出了直到开七次方的数值求根法。
我国古代是用筹算来进行整数和分数的四则运算和开方。我国至少在公元前三四百年就有九九口诀(九九乘法表)。古书记载有筹算开平方的有《九章算术》(东汉初年)、《张丘建算经》、《孙子算经》(晋朝,四世纪末)、《夏侯阳算经》(南北朝夏侯阳的原著失传,现在的版本是八世纪唐朝韩延编辑的实用算书)。
《九章算术》有一道例题:求55225的平方根。对筹算的开方算法,刘徽画了个几何图形来说明,就非常方便理解。
刘徽用来说明开平方法的几何图形
看图,用一个正方形来表示被开方数,把它分为七个部分:黄甲幂(a2)、黄乙幂(b2)、黄丙幂(c2)、两个朱幂(ab)、两个青幂【(a+b)c】。
看图得出正方形的面积为
(a+b+c)2=a2+2ab+b2+2(a+b)c+c2=a2+(2a+b)b+[2(a+b)+c]c
用图示方法来解例题,设a=200,b=30,c=5
得到55225=2352=2002+(2×200+30)×30+[2×(200+30)+5]×5
遇到开方不尽的情况,可在整数方根后面带一个分数来表示所求方根的近似值。刘徽在《九章算术》的注里介绍了“不加借算”和“加借算”两种方法。
“不加借算”举例: =484 ,方法是设A=a2+r,得
“加借算”举例: =114 ,方法是设A=a2+r,得
这两种方法所得近似值较为精确,始创于我国三世纪。阿拉伯到了11世纪也有了同样的方法。另外,刘徽提出了开平方不尽可以续开小数的方法,与现代的方法类似,可以得到任意精确度的平方根近似值。
现代的笔算方法举例:先说定位。一个2位数的平方可能是3位数或4位数。一般而言,一个n位数的平方,是2n-1位数或2n位数。因为开方是乘方的逆运算,所以一个2n-1位数或2n位数的平方根是n位数。因此,很容易确定根的位数:从小数点开始,将被开方数向两边按两个数字一节来分节。根的小数点前后位数和小数点前后节数相等。
笔算12.5开平方
开平方的其他方法:珠算可以开平方、计算尺和查数学用表可以开平方。用不等式可以求根。用对数也可以。木匠有自己的方法来解决开平方和开立方的问题。以下重点介绍巴比伦人开平方的古法。
谈祥柏先生在《乐在其中的数学》一书中介绍了这个巴比伦人使用的古法。这个算法本质上属于迭代法。迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。这个算法很简单,只需要做除法和求算术平均值。举个例子,大家一看就会。
19是个质数,质数的平方根都是无理数。我们来看看怎么求19的平方根。请看下图:
迭代法计算19的平方根
再看下图,迭代法的精髓——自动纠错,一目了然。
迭代法的精髓——自动纠错
思考题:为什么可以自动纠错?
插播一段课文:小学《语文》五年级上册第24课
古人谈读书
一
敏而好学,不耻下问。
知之为知之,不知为不知,是知也。
默而识之,学而不厌,诲人不倦。
——《论语》
二
余尝谓:读书有三到,谓心到,眼到,口到。心不在此,则眼不看仔细,心眼既不专一,却只漫浪诵读,决不能记,记亦不能久也。三到之中,心到最急。心既到矣,眼口岂不到乎? ——[宋]朱熹
三
盖士人读书,第一要有志,第二要有识,第三要有恒。有志则断不甘为下流;有识则知学问无尽,不敢以一得自足,如河伯之观海,如井蛙之窥天,皆无识者也;有恒者则断无不成之事。此三者缺一不可。
——[清]曾国藩
小学五年级课文预习
回到前面的思考题,想一想为什么会自动纠错。因为迭代过程是收敛的,背后的数学原理是一个命题。张景中院士在他的著作《从 谈起》中,一语道破天机,请看命题6:如果 是 的一个近似值,且已知误差 ,则取 ,当 时, 是 的一个更好的近似值。 和 的误差满足下列不等式
可以改写为迭代格式 ,可以取任意初值 ,利用迭代格式计算 ,简称开方。
谈祥柏教授常说“无事好做非非想”,我党的好干部焦裕禄说“吃别人嚼过的馍不香”。于是我就想,这个方法还可不可以改进呢?算法是求连续两个值的算术平均,能否改成其它的平均数呢?平均数有很多种,有算术平均数、加权平均数、几何平均数和调和平均数。算术平均数(A)、几何平均数(G)及调和平均数(H)统称为毕达哥拉斯平均数。考虑过,换个平均数是否效率更高呢?如果用加权平均数,怎么计算呢?
首先想到加权平均数。a、b两个数的算术平均数是简单相加再除以2,加权平均该如何操作呢?我的方案是0.382a+0.618b,相当于把两个数据的权数设定为0.382和0.618。算术平均数可以理解为权数相等的加权平均数。两个近似值,一个比另一个更好,它们的权数应该不相等。说干就干,我立刻用Excel搞实验,验证想法是否正确。
结果是理想很丰满,现实很骨感,我被实验结果狠狠打脸。
推荐阅读https://blog.csdn.net/q247538614/article/details/85936613(几何平均数和调和平均数是什么?有什么作用?详细资料讨论他们的区别)。
但我是一个不死心的人,于是又搞起了下面的实验。
Excel函数计算19的平方根
Excel函数计算101的平方根
计算19的平方根
最终得出结论,现有算法是最好的,没有改进的余地和必要。折腾了好半天的功夫,是否是白费力呢?我的回答是人生没有白走的路,每一步都算数。这是我看了电影《冈仁波齐》后学到的宝贵经验和教训。