这么说迭代头条读者一定能懂
迭代一词对一些人或许生疏,但在数学上它历史悠久。大约三千五百年前,古巴比伦人就想出了一个聪明的办法来逐次近似给定正数A的平方根,以今日的标准说法,它就是用众所周知的牛顿迭代法解方程x2 – A = 0。当今,在数学天地的几乎所有园区,迭代都留下活跃的身影,而求解方程各式各样的迭代法,则是计算数学家和工程学家们从不离手的利器。
为了形象地说明什么是迭代,让我们拿出一只假设误差为零的理想计算器,输进一个数,比方说0.5,然后按一下标有“x2”的那个平方键,小屏幕上就能看到结果:0.25,如果再按一次平方键,看到的结果是0.0625,再按一次,就有0.00390625,如此一次次地按下去,依次出现的是以“初始数”0.5开头的一系列数:0.5, 0.25, 0.0625, 0.00390625, 0.0000152587890625, …尽管算了这几步后我们或许会失去耐心,不想再按下去,但我们至少可以从上面几个数的变化趋势知道,这些越来越小的数最终会趋向于0。
这样的计算确实足够简单,似乎连幼儿园的孩子也能操作。
即便丢掉计算器,小学生也可以用纸和笔一个接着一个地算出这样的“平方”。
如果用初中学过的数学概念表达,那么计算器上的平方键就代表了“x平方”这个函数。
上述数列中的第一个数0.5是我们所选定的一个初始值,第二个数0.25是x平方函数在x = 0.5时的函数值,第三个数0.0625是x平方函数在x = 0.25时的函数值,而第四个数0.00390625是x平方函数在x = 0.0625时的函数值,第五个数0.0000152587890625则是x平方函数在x = 0.00390625时的函数值,等等。
如果把x平方函数看成是一只“黑箱”,那么输入x的值,这只黑箱就会输出x2这个函数值。
上面的计算器操作实际上就是选取一个初始值输进黑箱,然后再一次次地将黑箱吐出的函数值输入同一个黑箱,周而复始,直至无穷。
这种“黑箱操作”的整个过程在数学上叫作函数迭代,简称迭代。
一般地,假定我们有定义在某个实数区间上的一个函数y = f(x),它把定义域区间映到自身内——也就是说,这个函数的自变量x以及因变量y都取值于该定义域中。
这样我们就可以随心所欲、不停顿地迭代这个函数f:取定义域中的一个初始点x0,将它代入到f的具体代数表达式中,计算出其对应的函数值,这样就得到第一个迭代点x1;因为x1也属于函数的定义域,再将x1代入到f的表达式中赋值,就得出第二个迭代点x2……如此进行下去,对于所有的自然数n = 1, 2, 3, …,在得到第n-1个迭代点xn-1后,由于xn-1属于函数的定义域,将它代入到f的表达式中计算,就得出第n个迭代点xn。
这样,我们获得了函数f的一个迭代点数列:x0, x1, x2, …, xn, …。
这个数列也称为从初始点x0出发的f的迭代点轨道,或简称轨道。
“轨道”是一种很形象的说法,因为起步于初始点的迭代点数列看上去就像是向远处伸展而去的一条铁路轨线。
在数学上,一个迭代过程可以写成xn = f(xn-1),n = 1, 2, 3, …。
本文开头时提到的数值求解方程g(x) = 0的牛顿迭代法就是一例,它具有形式xn = xn-1 - g(xn-1)/g’(xn-1),n = 1, 2, 3, …,其中记号g’表示可微函数g的导函数。
迭代是一个从初始点出发,一步步从当前迭代点计算出后继迭代点的递归过程。
所以在一般情况下,如果想知道第100个迭代点是什么,只好耐住性子算一百步后才能知道答案。
然而,如果我们运气好到能“一步到位”地从0跳到n,写出n个f的复合函数fn的简洁表达式,那么就可以一步算出第n个迭代点xn = fn(x0)。
可惜,令人沮丧的是,除了极少数简单情形外,比如从线性函数f(x) = ax立刻可以导出的简单式子fn(x0) = anx0,我们无力能将复杂的fn化简到一个封闭的代数表达式。
幸运的是,数学理解我们的苦衷而为我们提供了微积分的十八般武艺,这些武艺打造出一门专攻迭代的现代学科——离散动力系统。
考察迭代,就会不可避免地碰到“不动点”和“周期点”这两个重要术语。
如果在函数f的定义域中有个点x*,它满足等式f(x*) = x*,即x*在f下的迭代结果还是它本身,这个点就被称为是函数f的一个不动点。
不动点在代数上的意义就是方程f(x) = x的一个解x = x*,而在几何上的意义是函数f在平面上xy-直角坐标系中的图象与坐标系的对角线y= x之交点的坐标,因为这个交点既在函数f的图象上,又在坐标系的对角线上,它的两个直角坐标(x*, y*)同时满足y* = f(x*)和y* = x*这两个等式 。
对于一个初始点x0,如果函数f被迭代到第n步后,又首次返回到初始点x0,即从初始点x0开始迭代后的第一个迭代点直到第n-1个迭代点x1 = f(x0), x2 = f(x1) = f2(x0), …, xn-1= f(xn-2) = fn-1(x0) 都不等于x0,但第n个迭代点xn= f(xn-1) = fn(x0)等于x0,则称x0为f的一个周期为n的周期点,其对应的有限数列x0, x1, x2, …, xn-1或集合{x0, x1, x2, …, xn-1}称为f的一个周期为n的周期轨道或周期-n轨道。
注意:上面的记号fk并非表示f的k次方,而是表示k个f复合而成的复合映射,即f0(x) = x, f1(x) = f(x), f2(x) = f(f(x)) = f(f1(x)), f3(x) = f(f(f(x))) = f(f2(x)),依次类推。
显而易见,如果n = 1,则周期为1的周期点就是不动点。
找到函数f的所有不动点等价于求出方程f(x) = x的所有解,它们的几何意义就是f的图象与坐标系对角线的所有交点。
当n大于1时,f的所有周期为n的周期点都是方程fn(x) = x的解,但反之,方程fn(x) = x的解却不一定是f的周期为n的周期点,而可能是f的周期为k的周期点,其中k是n的一个真因子。
举个简单的例子,设f(x) = -x,则f2(x) = -(-x) = x。
显然x = 0是f2(x) = x的一个解,但它却不是f周期为2的周期点,而是f的不动点。
此外,方程f2(x) = x的每个非零解都是f的周期为2的周期点。
另一方面,一个周期-n轨道中的每一个点都是周期为n的周期点。
比如说,如果{x0, x1, x2}是一个周期-3轨道,则由f(x0) = x1, f(x1) = x2及 f(x2) = x0可知,{x1, x2, x0}和{x2, x0, x1}都是周期-3轨道,因而组成同一个周期-3轨道的三个点x0, x1, x2都是周期为3的周期点。
从一个周期点开始的迭代点无穷数列是其周期轨道“周而复始”的无穷次复制,因此该数列的最终走向是事先知道的,或言之,是可以预测的。
我们对自然界中的周期现象太熟悉不过了,所以应该对数学中的周期点感到亲切。
由上可知,当初始点是周期点时,给定的函数迭代到某一步就会首次返回到初始点,然后再重复地无限循环下去,就像一个体格健壮的学生每天早晨绕着学校的椭圆形跑道一圈又一圈地跑个不停。
当初始点不是周期点时,由此点出发后的所有迭代点自然永远不会回到初始点。
既然永远不会回到初始点,这些迭代点的最终性态一定会是不可预知的吗?答案是不确定。
它既可能可以预知,也可能不可预知。
先看一种只需要上述简单概念而无需高深一点的初等微分学知识就能理解的情形。
如果初始点x0不是周期点,即对任意的自然数j都有不等式fj(x0) ≠ x0,但它的某次迭代点xm = fm(x0)却首次成为周期点,周期为n,即x0, x1, …, xm互不相同,但 fn(xm) = xm并且对所有的k = 1, 2, …, n-1,都有fk(xm) ≠ xm,那么这条迭代点轨道的最终走向还是可以预知的,亦即轨道的尾巴都是有限片段xm, xm+1, …, xm+n-1无限次的复制。
★《布宫号》提醒您:民俗信仰仅供参考,请勿过度迷信!