Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

论:无限小数的本质

  现代数学分析中很少见到使用无限小数来表示东西的。因为它使用起来麻烦,而且它缺乏定义,或者定义不严谨。一个0.9(9循环)是否等于1的问题都沸沸扬扬的讨论了这么多年。前几天在贴吧上和别人讨论了无限小数的本质归属问题,今天就来总结下我自己的理解。
  书上的定义含糊其辞。我翻了好多本数学分析的书,但是只有张筑生的《数学分析新讲》中有对无限小数略微的定义。而且使用的是非常模棱两可的语言,定义的一点都不严谨。我觉得那是作者自己对无限小数在自己书中的定义而已,要谈无限小数的本质归属,那个定义不能作为参考。
  等号“=”不能说明问题。等号有两个含义,“a=b”代表两个数字纯粹相等,“lim an=b”代表a数列的极限收敛于b。一般的计算中并不在乎a是纯粹等于b还是收敛于b,因为结果是相同的。或者说即使是收敛关系,a和b也是宏观相等的。但是微观下就未必相等,根据极限的定义: 设:{xn},xn∈ℝ,n=1,2,…,x0∈ℝ
有:∀ε>0,∃N∈ℕ,∀n>N,|xn-x0|<ε
则:称数列{xn}收敛于x0,记作lim xn=x0
  我的an永远不可能等于b,无论n有多大我都能找到一个足够小的ε表示他们差的绝对值。只有加上“lim”才能勉强划上等号。
  关于数轴的概念。我们说任何实数都可以在(实)数轴上表示,但是数轴是什么?我觉得很多人误解了数轴的概念,认为数轴就是十进制表示的实数域。所以当我们说“任何实数都可以在数轴上表示”,就被认为是“任何实数都可以在十进制中表示”。实际上数轴的概念和十进制没有任何关系,只是我们一般习惯使用十进制来画数轴而已,有时候也可以不用十进制。任何实数都可以在数轴上表示,但是真的可以在十进制中表示吗?
  关于小数的概念。我们说的“小数”通常指的是十进制的小数。“小数”这个词在英文中是“Decimal fractions”,直译为“用十进制表示的分数”。由此可见,小数是因为进制而诞生的。十进制中的“1/3”会变成循环小数。但是三进制中它可以表示为“0.1”。
  除法的运算法则。要把“1/3”这个数字在十进制中表示就需要计算“1÷3”。这个计算的结果是什么?我们来计算试试。除法是乘法的逆运算所以要求运算结果x(这里的x是十进制表示的数字),可以解“3x=1”。现在我把它写成方程的形式“y=1-3x”,当x等于0.3时y等于0.1,x等于0.33时y等于0.01。从这个函数可以得出一个数列,当x的小数点后有n个3时,y就等于“1/10n”。这个数列可以表示为“an=1/10n”。这意味着,对于任何正数ε,总是存在自然数n,使得|an|<ε。这正是极限的定义,记作“lim an=0”。而前面的方程“y=1-3x”中y就是an,但是这里没有lim。所以任何十进制的数字x在式子“1-3x”中都不会和0纯粹相等。所以“1/3”这个数字是无法用十进制确切地表示的,我们只能在十进制中找出一个极限来逼近于它。
  无理数同样有问题。π这个希腊字母被定义为准确的描述圆周率这个无理数。实际上,这个定义应该是π进制中的10,而不是十进制中的3.1415926…。这一串用十进制表示π的无限不循环小数实际上是用无穷级数来逼近π的计算过程。与前面的除法同理,用无穷级数来逼近的最终结果会与π相差一个ε。
  最经典的问题“0.9=1”。它们为什么可以划等号?虽然无限小数的本质是极限,但是直接拿出这个小数我们并看不到变量n,所以lim可以省略。当划上等号时就意味着它加了lim,但是单独拿出来它就是一个极限。就这个最经典的问题,在“0.9”这个数字中,小数点右边有n个9。那么我们把这个数字做“10n-1”次方呢?使用类比法,当“n=4”时“0.99999999≈0.3678978”,当“n=8”时,“0.9999999999999999≈0.3678794”。随着n的增大,结果越来越接近“1/e”。这个问题中的n趋向于无穷大,所以结果趋向于“1/e”。这是因为“0.9”是个极限,它与1之间本身差了个ε导致了这个问题。如果“0.9”不是极限而是纯粹等于1,那么无论做多少次方它的结果都只会是1。
  结语:无限小数是一个极限,但是由于没有显式的变量,所以lim可以省略。   
网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^