实验四函数的迭代、混沌与分形解读

合集下载

实验四函数的迭代、混沌与分形解读

实验四函数的迭代、混沌与分形解读

实验四函数的迭代、混沌与分形[实验目的]1. 认识函数的迭代;2. 了解混沌和分形.迭代在数值计算中占有很重要的地位,了解和掌握它是很有必要的.本实验将讨论用Newton迭代求方程根的问题,以及迭代本身一些有趣的现象.§1 基本理论1.1 迭代的概念给定某个初值,反复作用以同一个函数的过程称为迭代.函数f(x)的迭代过程如下:x0,x1=f(x0),x2=f(x1),……..,x n=f(x n-1)…..,它生成了一个序列{x n}迭代序列.许多由递推关系给出的数列,都是递推序列.例如数列.X0=1,x n=1+1/(1+x n-1) (n=1,2,…………..)是由函数f(x)=1+1/(1+x)=(2+x)/(1+x)取初值为1所得的迭代序列.1.2 迭代序列的收敛性定理设函数f(x)满足:(1)对任意x∈(a,b),f(x)∈(a,b);(2)f(x)在(a,b)内可导,且存在常数L使得|f(x)'|=L<1,则当初值x0∈(a,b)时,由f(x)生成的迭代序列收敛.在迭代函数f(x)连续的条件下,如果迭代数列收敛,则它一定收敛于方程x=f(x)的根.该方程的根也称函数f(x)的不动点.设x*为f(x)的不动点,f(x)'在x*的附近连续,若|f(x*)'|<1,则称不动点x*是稳定的;若f(x*)'=0,则称不动点x*是超稳定的.在超稳定点x*附近,迭代过程x n+1=f(x n)收敛到x*的速度是非常快的.1.3 Newton迭代法设函数g(x)具有一阶导数,且g(x)'≠0,则函数f(x)=x-g(x)/g(x)'的迭代称为Newton迭代,若函数f(x)存在不动点,则它一定是方程g(x)=0的根,故Newton迭代法可用来求方程g(x)=0的根.§2 实验内容与练习2.1 迭代的收敛对于函数迭代,最重要的问题是迭代序列的收敛性.一般说,迭代序列是否收敛取决于迭代函数与初值.作为一个例子,我们用来讨论用Newton迭代法求函数g(x)=(x-17)5/3(x-5)-2/3的根,其Mathematica程序为:Clear[g,x];g[x_]:=(x-17)^(5/3)*(x-5)^(-2/3);f[x_]=Factor[x-g(x)]/D[g[x],x]];x0=5.5;n=20;For[i=1,i<=n,i++,x0=N[f[x0]];Print[i,”“,x0,”“,D[f[x],x]/.x->x0]]执行结果见表4.1.表4.1的结果说明迭代序列收敛于g(x)的零点17.我们注意到程序中取的迭代处值为5.5,如果其它的数作为初值,所得的迭代序列是否收敛于17呢?我们可以取其它初值做实验,结果得到表4.2(表中第三列是迭代序列的前6位有效数字首次为17.0000的步数).从表4.2中可看出,只要初值不取5,迭代序列都收敛于17,且收敛速度与初值的选取关系不大.前面程序中使用的f(x)为g(x)的化简过的Newton迭代函数,用Mathematica命令可检查出它为(25x-85)/(x+3)(注意,这个式子扩充了原迭代函数在x=5,x=17处的定义),解方程f(x)=x.得到x=17,与x=5.即17和5是f(x)的两个不动点,有前面的讨论知这两个不动点是有区别的:对于17,不管初值取为多少(只要不为5),迭代序列总是收敛于它;而对于5,只要初值取为5时,迭代序列才以它为极限,这样一种现象在函数的迭代中普遍存在,为方便区分起见,我们给这样两种点各一个名称:像17这样的所有附近的点在迭代过程中都趋向于它的不动点,称为吸引点;而像5这样的所有附近的点在迭代过程中都远离它的不动点,称为排斥点.上面的f(x)=(25x-85)/(x+3)是一个分式线性函数,对于一般的分式线性函数,迭代序列是否总是收敛呢?练习1 编程判断函数f(x)=(x-1)/(x+1)的迭代序列是否收敛.在上节我们已经指出,如果迭代序列收敛,一定收敛到函数的某个不动点,这就是说,迭代函数存在不动点是迭代序列收敛的必要条件.那么如果迭代函数存在不动点,迭代序列是否一定收敛呢?练习2 先分别求出分式线性函数f1(x)=(x-1)/(x+3),f2(x)=(-x+15)/(x+1)的不动点,再编程判断它们的迭代序列是否收敛.运用上节的收敛定理可以证明:如果迭代函数在某不动点处具有连续的导数且导数值介于-1与1之间,那么取该不动点附近的点为初值所得到的迭代序列一定收敛到该不动点.练习3 你能否说明为什么17是f(x)=(25x-85)/(x+3)的吸引点,而5是f(x)的排斥点?尽量多找些理由支持这个结论.练习4 能否找到一个分式线性函数(ax+b)/(cx+d),使它产生的迭代序列收敛到给定的数?用这种办法计算2.2.2迭代的”蜘蛛图”对函数的迭代过程,我们可以用几何图象来直观地显示它.在xoy平面上,先作出函数y=f(x)与y=x的图象,对初值x0,在曲线y=f(x)上可确定一点p0,它以x0为横坐标,过p0引平行x轴的直线,设该直线与y=x交与点Q1作平行于y轴的直线它与曲线y=f(x)的交点记为p1,重复上面的过程,就在曲线y=f(x)上得到点列p1,p2,……,如图4.1,不难知道,这些点的横坐标构成的序列x0,x1,x2,……,xn……就是迭代序列.若迭代序列收敛,则点列p1,p2,……趋向于y=f(x)与y=x的交点p*,因此迭代序列是否收敛,可以在图上观查出来,这种图因其形状像蜘蛛网而被称为“蜘蛛网”图。

matlab迭代。混沌,原因,分叉MicrosoftWord文档

matlab迭代。混沌,原因,分叉MicrosoftWord文档

matlab迭代。

混沌,原因,分叉MicrosoftWord文档问题与实验3: 一元线性迭代的收敛性条件怎样表述?关于迭代法收敛性的两个判别条件: a 、充分必要条件是:矩阵M 的谱半径(){}1,..,2,1max<==n i M iiλρ()b 、充分条件是:矩阵M 的某个算子范数M<1。

问题与实验4: 在本例中,12<m< bdsfid="72" p=""></m<>,这时迭代序列是收敛的,就本例或选择别的例子,按12<m< bdsfid="77" p=""></m<>和12≥M构造不同的迭代法,通过实验和比较,并给出你对实验结果的解释(如关于收敛性、收敛速度等),当然这需要你首先知道矩阵范数的概念,并且对它有比较好的理解。

设x 是方程组(5)的解,{}mx 是迭代法(6)生成的任一序列,因为f Mx x +=,f Mxx mm +=+1()()()0221x x Mx x Mx x M x x mm m m -==-=-=--- ,设D = diag (a 11, a 22, …, a nn ),将AX = b 改写为: AX = (D – (D - A )) x = b DX = (D - A ) x + bX = (I – D -1A ) x + D -1b记 B = I – D -1A F = D -1 b 则迭代格式的向量表示为F BX Xk k +=+)()1( B称为雅克比迭代矩阵。

由此可知要判断X 是否收敛只需看M 的谱半径是否小于1,既有一其中I 是单位i 矩阵,D 是提取A 的对角线上的元素。

下判断条件:充要条件:(1) (){}1,..,2,1max<==n i M iiλρ.(2)充分条件是:矩阵M 的某个算子范数M<1.并且我们知道当M 越小的时候其收敛的速度越快。

分形和混沌

分形和混沌

作为非线性科学三大理论前沿之一的分形理论,具有 一些不同与整形(欧氏几何里具有整数维的几何图形) 的特点,概括有五个基本特征或性质.
形态的不规则性.它是如此的不规则,以致不能用传统的 数学语言来描述; 结构的精细性,即具有任意小的比例细节; 局部与整体的自相似性,即局部与整体具有自相似性(这 种自相似性可以是严格的,近似的或统计的); 维数的非整数性,它的维数一般是分数的,并且大于其拓 扑维数; 生成的迭代性,分形虽然具有复杂结构,但是通常可以用 迭代方法生成.
返回混沌主页
下面我们来讲混沌的特性。
(1)确定系统的内在随机性. 混沌现象是由系统内部的非线性因素引起 的,是系统内在随机性的表现,而不是外来随 即扰动所产生的不规则结果。混沌理论的研究 表明,只要确定性系统中有非线性因素作用, 系统就会在一定的控制参数范围内产生一种内 在的随机性,即确定性混沌。 混沌现象是确定性系统的一种“内在随机 性”,它有别于由系统外部引入不确定随机影 响而产生的随机性。为了与类似大量分子热运 动的外在随机性和无序性加以区别,我们称所 研
初值x0与x0’之差z= | x0’- x0 |=13/(7* 23002) =1/ 10900是 非常小的,但经过3002次迭代之后结果就完全不同了。这就是 说, x0小数的前900位(或二进制的3002位)信息完全丧失。 这里并没有在迭代中进行“舍入”处理,而完全是由于初值的 不确定性造成的。
分形结束返回主页
我们再看一个著名的例子——“蝴蝶效应”.洛仑兹有一 个形象的比喻“巴西的一只蝴蝶扇动几下翅膀,可能会改变3 个月后美国得克萨斯的气候”。他说明了天气演变对初值 的敏感依赖性。用混沌学的术语表述就是,系统的长期行 为对初值的敏感依赖性。
(1)混沌的定义 (2)混沌的特性:

2迭代混沌

2迭代混沌


s3 排出的名次不一致,也就是说排名
出现了波动现象.那么,上述过程进行到什么时候为止呢? 练习18 将上述过程进行下去,编程计算.如何给出各选手的 最终名次? 一个直观的想法是计算 k 的极限,如果极限存在,我们可以依
s
照极限来排名次. 按照前面的方法来计算很麻烦,我们想办法来给出的通式.我们把 各选手的成绩写成下面的矩阵形式:
-4
-3
-2
-1
-0.
-
-1.
-
-2.
-
-3.
-பைடு நூலகம்
2. 序列没有规律、杂乱无章,称之为混沌.
由函数f(x)=-2+sin5x 取初值为x=-0.7的迭代图,
可看出该迭代产生了混沌.
混沌具有两个特性:非随机性和对初始值的敏感性. 若初始值产生微小的误差,则该误差随迭代次数呈指 数性增长,因此尽管迭代序列由初值和迭代函数完全 确定,但随迭代次数的增加,它与随机序列并无多大
是否应该按 s2 来排定名次呢? 我们是按“胜强者得分高”这一原则来给出得分的, 既然 s2 比 s 1更合理,我们就应该按照这一原则根据再计 算一遍.比如A的得分为5+3+4+3=21,B的得分 3+4+3=10,
其余类推.得到: s (15,10,16,7,12,9)T 3
可以看出按
s1 、 2 s
0.608609,0.381391 0.608664,0.391336 0.608684,0.391316 0.608692,0.391308 0.608694,0.391305 0.608695,0.391305 0.608695,0.391305
易见,到第12天之后,晴、阴雨的概率便稳定下来, 均约等于 . p* ( 0.6086950.391305)T 考虑为初值随机数 , 问题2 若该地区的天气分为三种状态:晴、阴、雨.对

迭代·混沌·分形

迭代·混沌·分形

迭代·混沌·分形柴文斌(四川省遂宁中学校629000)一、课例背景在20世纪下半叶,计算机的“魔杖”不断制造出新的数学分支,它最拿手的迭代计算引出了“混沌学”,接着又导致了分形几何的产生. 分形的思想和方法在模式识别,自然图象的模拟,信息讯号的处理,以及金融模型,艺术的制作等领域都取得了极大的成功.二、教学目标①本课例按《新课标》的要求,通过分形为载体,引起学生深厚的兴趣,在探究过程中,浅介数学新思想、新发展,同时让学生发现数学美,激发他们勇敢地追求美,主动地创造美,从而陶冶他们的情操,培养他们创新的精神.②总结平常练习过的从迭代、分形为背景数学试题,让他们用联系、发展的眼光,体会“背景深刻,方法独到”高考压轴题设计意图,明白“基础扎实,能力到位”明确要求.三、教学重点①应用计算机让学生感受分形图之美妙及形成数学原理.②分析分形为背景数学试题,形成高观点下审视数学问题.四、教学难点①迭代、混沌、分形定义度的把握.②Julia集、Mandelbrot集及其特征.五、教学过程(一)美丽的分形图形运用多媒体展放《孔雀开屏》等11幅分形艺术作品.师:这些美丽图形自然而优美,纷繁而有序,放射出诱人的色彩,在绚丽的色彩变化背后有几分神秘,似乎没有人会对这些图形无动于衷,你们相信,这些美妙的图形是运用数学知识,通过计算机构造出来的吗?是如何构造的呢?我们还得从函数迭代说起!(二)函数的迭代问题1:计算:①x n n sin lim ∞→ ②=∞→x n n cos lim 问题2:211n n x x +=-11=x轨道:1,0,-1,0,-1,……5.02=x轨道:0.5,―0.75,―0.4375,―0.80859,…―1,0,―1,0,-1问题3:①有没有这样一个初态把它代入211-+=n n x x ,结果不变吗?· ·A B251- 251+ ②618.11=x 写出系统轨道③619.11=x 写出系统轨道问题4:二次函数2)(z z f =进行迭代 ①i z 211=,写出系统轨道 ②i z +=11,写出系统轨道问题5:2)(z z f =且1||0<z求证:1|)(|0<z f证明:i y x z 000+=且1||0<z|2||)(|0020200i y x y x z F +-=20022020)2()(y x y x +-=22020)(y x +=20||z = 因此,在区域1||00<<z 中,1|||)(|00<<z z F ,这就意味着2)(z z F =的每一次迭代,即21n n z z =+都会使z 向靠近0的方向移动,我们说z 向0收敛,或是z 的吸引号,若1||0>z 近似于上面的结论,会发现,经过迭代z 会趋向于∞.若1||0=z ,很明显,z 是平面上单位圆上的点. 于是我们发现复平面上可分为两个区域,一个区域便落在其中的点向0吸引与逼近,而另一个区域便落在其中的点∞逃逸,它们分界线便是1)(0=z F 的单位圆,就是Julia 集.(三)混沌①C z z f +=2)(,0≠C 时,其吸引子不再是0,而是一个区域被吸进去的点会遍整个区域,我们称这个区域为混沌区. 同时,分界线不再是1|)(|0=z F 的单位圆,它是一个不规则不光滑的分界线,就像一个孤岛的海岸线一样.②《三五历经》中说:“天地混沌如鸡子,盘古生其中,万人千岁,天地开辟,阳清为天,阴浊为地,盘古在其中,一日九变;神于天,圣于地. 天月高一丈,地日厚一丈,盘古月长一丈,如此万人千岁,天数极高,地数极深,盘古极长.”③宇宙起源的问题.(四)分形不使系统发散的那么初态的集合组成“内集”,其他的“初态”组成“外集”,内集与外集的边界叫做Julia 集.问题6:运用多媒体展示:i z z f 12.0765.0)(2+-=(一个完全不连通)i z z f +=2)((连通) 特点:处处不光滑,自相似性、精细结构②Mandelbrot 集我们看到,当C 在复平面变化时它的Julia 集也在复平面内变化,而且这些集合可以分成连通与不连通两类. 如果参数C 所对应的Julia 集是连通的,我们就将这个C 染成黑色,否则染上白色,这样得到的黑色集就叫做以参数C 为元素的Mandelbrot 集.问题7:运用多媒体展示Mandelbrot 集,可以看出它有非常复杂的结构,这一结构的明显特征是一个主要心形图与一系列圆盘形的“芽苞”连接在一起,并且,每一个芽苞又被一细节更细小的“芽苞”所环绕,以至无穷. 同时,这些精细的芽苞分支都带有与整体曼德布罗特集相似的微型拷贝.(五)试题研究问题8:将一个单位正三角形一分为四,且挖去中间一个小正三角形,然后再上面三个小三角形中重复上面的步骤. 设初始三角形的面积为1. C n 、S n 分别表示第n 次操作各图形的周长和面积.①求C n 、S n 的表达式.②n 趋于无穷时,C n 、S n 趋于什么?问题9:记P 0表示面积为1的等边三角形,P k+1是对P k 进行如下操作得到:将P k 的每条边三等份,以每边中间部分的线段为边,向外作等边三角形,再将它中间部分的线段去掉,记S n 为曲线P n 所围成图形的面积.①求数列S n 的通项公式.②n n S ∞→lim 问题10:一种树形图为:第一层是一条与水平线垂直的线段长度为1,第二层与第一层线段的前端作两条与线段都成135°角的线段,长度为其一半,第三层按第二层的方法滚动,在第二层线段前端生成两条线段,重复前面的作法,作图到第n 层,称水平线到第n 层最高点的距离为到树形图的第n 层高度,试求:①树形图的第三层及第四层总高度②树形图的第n 层总高度h n③n n h ∞→lim问题11:⎪⎩⎪⎨⎧-+)1(221)(x x x f 121210≤<≤≤x x 定义 *∈=N n x f f f x f n ))(()(①求)152(2007f ②]}1,0[,)(|{15∈==x x x f x B求证:B 中至少含有9个元素问题12:如右图是某计算机的程序框图.(I)求打印出来的x 的值;(II)求打印出来的z 的值;(III)若将程序框图中的语句(9)“n=2007?”改为“94≥z ?”,则张三同学说这是死循环(即一直无限算下去而没有结果),而李四说不会是死循环,你认为哪个同学说的正确?并说出你的理由.问题13:用牛顿迭代法求根.17世纪,牛顿创立了一种依靠简单计算求解方程根的方法.假设你知道某一方程0)(=x f 的近似解为0x ,此0x 接近于你还不知道的真正解x ,从而可以计算出相应的0)(=x f 及其导数0)(0=x f 的值. 由于0x 接近于x ,所以导数)(0x f '可近似写成00)()(x x x f x f --. 又因为0)(=x f 所以此导数为:000)()(x x x f x f --='] 于是有 )()(000x f x f x x '-=-则修正一次后的近似解为)()(001x f x f x x '-= 重复这个过程得到序列数n x ,它会从极快的速度收敛于此方程的真正解.请你用上述方法 81)(3-=x x f 6.00=x 时①求2x ,3x ,4x . ②100001|21|<-n x 时,n 的范围. 问题14:用多媒体展示基于牛顿迭代法的01=-n z 迭代图形.问题15:(角谷猜想) 任给一个自然数,若它是偶数则将它除以2;若它是奇数,则将它乘3再加1,反复这样运算,经有限步之后其结果必为1. 问题16:分形几何上物理学是怎样?六、课例设计反思:1.数学≠数学题. 数学教育,我想不仅要让学生认识到数学是一门科学,数学是工具,数学是技术,而且应当让他们认识到:作为人类精神、智慧与理性的最高代表之一,数学不仅是文化的重要组成部分,还在文化发展中占据着举足轻重的地位,数学是美的,数学是有意思的.2.Shirley(1986)提出,数学分为形式和非形式,应用和纯粹的,我们平常看到多数中小学讲授的数学知识是形式纯数学,这对学生形成完善的数学的文化观有缺陷,新课标模块设计也充分考虑到这一缺陷,本课例对非形式化教学,研究性学习作些探讨.。

分形、混沌与迭代

分形、混沌与迭代

试验十二 分形、混沌——迭代一、试验目的:1、Koch 曲线、Sierpinski 三角形、Cantor 集的计算机实现2、掌握用迭代、递归生成分形3、用Matlab 观察分岔与混沌现象二、分形相关程序:1、从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch 分形曲线。

算法分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程。

图1中,设1P 和5P 分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点2P ,3P ,4P 。

显然2P 位于线段三分之一处,4P 位于线段三分之二处,3P 点的位置可看成是由4P 点以2P 点为轴心,逆时针旋转600而得。

旋转由正交矩阵 ⎪⎪⎪⎪⎭⎫ ⎝⎛-=)3cos()3sin()3sin()3cos(ππππA 实现。

算法根据初始数据(1P 和5P 点的坐标),产生图1中5个结点的坐标。

结点的坐标数组形成一个25⨯矩阵,矩阵的第一行为1P 的坐标,第二行为2P 的坐标……,第五行为5P 的坐标。

矩阵的第一列元素分别为5个结点的x 坐标,第二列元素分别为5个结点的y 坐标。

进一步考虑Koch 曲线形成过程中结点数目的变化规律。

设第k 次迭代产生的结点数为k n ,第1+k 次迭代产生的结点数为1+k n ,则k n 和1+k n 中间的递推关系为341-=+k k n n 。

实验程序及注释:p=[0 0;10 0]; %P 为初始两个点的坐标,第一列为x 坐标,第二列为y 坐标 n=2; %n 为结点数A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %旋转矩阵for k=1:4d=diff(p)/3; %diff 计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d 就计算出每个向量长度的三分之一,与题中将线段三等分对应m=4*n-3; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(5:4:m,:)=p(2:n,:); %迭代后处于4k+1位置上的点的坐标为迭代前的相应坐标p(2:4:m,:)=q+d; %用向量方法计算迭代后处于4k+2位置上的点的坐标p(3:4:m,:)=q+d+d*A'; %用向量方法计算迭代后处于4k+3位置上的点的坐标p(4:4:m,:)=q+2*d; %用向量方法计算迭代后处于4k 位置上的点的坐标 n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])实验数据记录:由上面的程序,可得到如下的Koch 分形曲线:2、由四边形的四个初始点出发,对于四边形的每条边,生成元如下:可得到火焰般的图形。

混沌分形之迭代函数系统(IFS)

混沌分形之迭代函数系统(IFS)

混沌分形之迭代函数系统(IFS)IFS是分形的重要分⽀。

它是分形图像处理中最富⽣命⼒⽽且最具有⼴阔应⽤前景的领域之⼀。

这⼀⼯作最早可以追溯到Hutchinson于1981年对⾃相似集的研究。

美国科学家M.F.Barnsley于1985年发展了这⼀分形构型系统,并命名为迭代函数系统(Iterated Function System,IFS),后来⼜由Stephen Demko等⼈将其公式化,并引⼊到图像合成领域中。

IFS将待⽣成的图像看做是由许多与整体相似的(⾃相似)或经过⼀定变换与整体相似的(⾃仿射)⼩块拼贴⽽成。

算法:1.设定⼀个起始点(x0,y0)及总的迭代步数。

2.以概率P选取仿射变换W,形式为X1=a*x0 + b*y0 + eY1=c*x0 + d*y0 + f或X1=(a * x0*cosf(c/180)) - (b * y0*sinf(d/180)) + eY1=(a * x0*sinf(c/180)) + (b * y0*cosf(d/180)) + f3.以W作⽤点(x0,y0),得到新坐标(x1,y1)。

4.令x0=x1,y0=y1。

5.在屏幕上打出(x0,y0)。

6.重返第2步,进⾏下⼀次迭代,直到迭代次数⼤于总步数为⽌。

(1)三⾓形class IFSTriangle : public FractalEquation{public:IFSTriangle(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = 0.0f;m_ParamB = 0.5f;//'IFS码赋值m[0][0] = 0.5f; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0.5f; m[0][4] = 0; m[0][5] = 0; m[0][6] = 0.333f;m[1][0] = 0.5f; m[1][1] = 0; m[1][2] = 0; m[1][3] = 0.5f; m[1][4] = 0.5f; m[1][5] = 0; m[1][6] = 0.333f;m[2][0] = 0.5f; m[2][1] = 0; m[2][2] = 0; m[2][3] = 0.5f; m[2][4] = 0.25f; m[2][5] = 0.5f; m[2][6] = 0.334f;}void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else{a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}outX = (a * x) + (b * y) + e*FRACTAL_RADIUS;outY = (c * x) + (d * y) + f*FRACTAL_RADIUS;outZ = z;}bool IsValidParamA() const {return true;}bool IsValidParamB() const {return true;}void SetParamA(float v){m_ParamA = v;m[2][1] = v;}void SetParamB(float v){m_ParamB = v;m[2][0] = v;m[0][3] = v;}private:float m[3][7]; // '存放IFS码};这⾥⽣成的是谢尔宾斯基三⾓形,但可以通过参数设置对其变形(2)皇冠class IFSCrown : public FractalEquation{public:IFSCrown(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = 2.0f;//'IFS码赋值m[0][0] = 0.5f; m[0][1] = 0.5f; m[0][2] = 0; m[0][3] = 0; m[0][4] = 0; m[0][5] = 0; m[0][6] = 0.2f; m[1][0] = 0.5f; m[1][1] = 0.5f; m[1][2] = 0; m[1][3] = 0; m[1][4] = 0.5f; m[1][5] = 0; m[1][6] = 0.2f; m[2][0] = 0.25f; m[2][1] = 0.25f; m[2][2] = 0; m[2][3] = 0; m[2][4] = 2.0f; m[2][5] = 2.0f;m[2][6] = 0.3f; m[3][0] = 0.25f; m[3][1] = 0.25f; m[3][2] = 0; m[3][3] = 0; m[3][4] = -1.0f;m[3][5] = 2.0f;m[3][6] = 0.3f; }void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else if (R <= m[0][6] + m[1][6] + m[2][6]){a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}else{a = m[3][0];b = m[3][1];c = m[3][2];d = m[3][3];e = m[3][4];f = m[3][5];}outX = (a * x*cosf(c/180)) - (b * y*sinf(d/180)) + e*FRACTAL_RADIUS;outY = (a * x*sinf(c/180)) + (b * y*cosf(d/180)) + f*FRACTAL_RADIUS;outZ = z;}bool IsValidParamA() const {return true;}void SetParamA(float v){m_ParamA = v;m[2][4] = v;m[2][5] = v;m[3][4] = 1 - v;m[3][5] = v;}private:float m[4][7]; // '存放IFS码};(3)芦苇// 芦苇class IFSBulrush : public FractalEquation{public:IFSBulrush(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = 10.0f;float k = m_ParamA*100.0f;//'IFS码赋值m[0][0] = 0.5f; m[0][1] = 0.5f; m[0][2] = 0; m[0][3] = 0; m[0][4] = 0; m[0][5] = 0; m[0][6] = 0.3f; m[1][0] = 0.5f; m[1][1] = 0.5f; m[1][2] = k; m[1][3] = k; m[1][4] = 1; m[1][5] = k/1600; m[1][6] = 0.3f; m[2][0] = 0.5f; m[2][1] = 0.5f; m[2][2] = 0; m[2][3] = 0; m[2][4] = 0.5f; m[2][5] = 0; m[2][6] = 0.4f; }void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else{a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}outX = (a * x*cosf(c/180)) - (b * y*sinf(d/180)) + e*FRACTAL_RADIUS;outY = (a * x*sinf(c/180)) + (b * y*cosf(d/180)) + f*FRACTAL_RADIUS;outZ = z;}bool IsValidParamA() const {return true;}void SetParamA(float v){m_ParamA = v;float k = m_ParamA*100.0f;m[1][2] = k;m[1][3] = k;m[1][5] = k/1600;}private:float m[3][7]; // '存放IFS码};(4)万花筒// 万花筒class IFSPhantoscope : public FractalEquation{public:IFSPhantoscope(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = 2.0f;float k = m_ParamA*100.0f;//'IFS码赋值m[0][0] = 0.2f; m[0][1] = 0.2f; m[0][2] = 0; m[0][3] = 0; m[0][4] = 0.7f; m[0][5] = 0; m[0][6] = 0.2f; m[1][0] = 0.2f; m[1][1] = 0.2f; m[1][2] = 0; m[1][3] = 0; m[1][4] =-0.7f; m[1][5] = 0; m[1][6] = 0.2f; m[2][0] = 0.2f; m[2][1] = 0.2f; m[2][2] = 0; m[2][3] = 0; m[2][4] = 0; m[2][5] = 0.7f; m[2][6] = 0.2f; m[3][0] = 0.2f; m[3][1] = 0.2f; m[3][2] = 0; m[3][3] = 0; m[3][4] = 0; m[3][5] = -0.7f; m[3][6] = 0.2f; m[4][0] = 0.85f; m[4][1] = 0.85f; m[4][2] = k; m[4][3] = k; m[4][4] = 0; m[4][5] = 0; m[4][6] = 0.2f; }void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else if (R <= m[0][6] + m[1][6] + m[2][6]){a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}else if (R <= m[0][6] + m[1][6] + m[2][6] + m[3][6]){a = m[3][0];b = m[3][1];c = m[3][2];d = m[3][3];e = m[3][4];f = m[3][5];}else{a = m[4][0];b = m[4][1];c = m[4][2];d = m[4][3];e = m[4][4];f = m[4][5];}outX = (a * x*cosf(c/180)) - (b * y*sinf(d/180)) + e*FRACTAL_RADIUS;outY = (a * x*sinf(c/180)) + (b * y*cosf(d/180)) + f*FRACTAL_RADIUS;outZ = z;}bool IsValidParamA() const {return true;}void SetParamA(float v){m_ParamA = v;float k = m_ParamA*100.0f;m[4][2] = k;m[4][3] = k;}private:float m[5][7]; // '存放IFS码};(5)Treeclass IFSTree : public FractalEquation{public:IFSTree(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;//'IFS码赋值m[0][0] = 0.195f; m[0][1] =-0.488f; m[0][2] = 0.344f; m[0][3] = 0.433f; m[0][4] = 0.4431f; m[0][5] = 0.2452f; m[0][6] = 0.25f; m[1][0] = 0.462f; m[1][1] = 0.414f; m[1][2] =-0.252f; m[1][3] = 0.361f; m[1][4] = 0.2511f; m[1][5] = 0.5692f; m[1][6] = 0.25f; m[2][0] =-0.058f; m[2][1] =-0.07f; m[2][2] = 0.453f; m[2][3] =-0.111f; m[2][4] = 0.5976f; m[2][5] = 0.0969f; m[2][6] = 0.25f; m[3][0] =-0.035f; m[3][1] = 0.07f; m[3][2] =-0.469f; m[3][3] =-0.022f; m[3][4] = 0.4884f; m[3][5] = 0.5069f; m[3][6] = 0.2f; m[4][0] =-0.637f; m[4][1] = 0.0f; m[4][2] = 0.0f; m[4][3] = 0.501f; m[4][4] = 0.8562f; m[4][5] = 0.2513f; m[4][6] = 0.05f; }void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else if (R <= m[0][6] + m[1][6] + m[2][6]){a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}else if (R <= m[0][6] + m[1][6] + m[2][6] + m[3][6]){a = m[3][0];b = m[3][1];c = m[3][2];d = m[3][3];e = m[3][4];f = m[3][5];}else{a = m[4][0];b = m[4][1];c = m[4][2];d = m[4][3];e = m[4][4];f = m[4][5];}outX = a*x + b*y + e;outY = c*x + d*y + f;outZ = z;}private:float m[5][7]; // '存放IFS码};这个图形我很喜欢,所以还专门将其⽣成图像:(6)⼤脑class IFSBrain : public FractalEquation{public:IFSBrain(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;//'IFS码赋值//0.03 0 0 0.45 0 0 0.05;//-0.03 0 0 -0.45 0 0.4 0.15;//0.56 -0.56 0.56 0.56 0 0.4 0.4;//0.56 0.56 -0.56 0.56 0 0.4 0.4;m[0][0] = 0.03f; m[0][1] = 0.0f; m[0][2] = 0.0f; m[0][3] = 0.45f; m[0][4] = 0.0f; m[0][5] = 0.0f; m[0][6] = 0.05f; m[1][0] =-0.03f; m[1][1] = 0.0f; m[1][2] = 0.0f; m[1][3] =-0.45f; m[1][4] = 0.0f; m[1][5] = 0.4f; m[1][6] = 0.15f; m[2][0] = 0.56f; m[2][1] =-0.56f; m[2][2] = 0.56f; m[2][3] = 0.56f; m[2][4] = 0.0f; m[2][5] = 0.4f; m[2][6] = 0.4f; m[3][0] = 0.56f; m[3][1] = 0.56f; m[3][2] =-0.56f; m[3][3] = 0.56f; m[3][4] = 0.0f; m[3][5] = 0.4f; m[3][6] = 0.4f; }void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float a, b, c, d, e, f; //'仿射变幻中的系数float R = (float)rand()/RAND_MAX;if (R <= m[0][6]){a = m[0][0];b = m[0][1];c = m[0][2];d = m[0][3];e = m[0][4];f = m[0][5];}else if (R <= m[0][6] + m[1][6]){a = m[1][0];b = m[1][1];c = m[1][2];d = m[1][3];e = m[1][4];f = m[1][5];}else if (R <= m[0][6] + m[1][6] + m[2][6]){a = m[2][0];b = m[2][1];c = m[2][2];d = m[2][3];e = m[2][4];f = m[2][5];}else{a = m[3][0];b = m[3][1];c = m[3][2];d = m[3][3];e = m[3][4];f = m[3][5];}outX = a*x + b*y + e;outY = c*x + d*y + f;outZ = z;}private:float m[4][7]; // '存放IFS码};------------------------------------关于基类FractalEquation的定义及相关软件见:。

MATLAB 函数的迭代、混沌与分形

MATLAB 函数的迭代、混沌与分形
6
取其它的初值做试验
初值 -40000 -500 -20 0 4 4.9 5 5.1 6 20 100 1000 收敛性 收敛于17 收敛于17 收敛于17 收敛于17 收敛于17 收敛于17 收敛于5 得到收敛点的迭代次数 16 16 16 17 17 19 0 19 17 12 14 14
2
实验四
函数的迭代、 函数的迭代、混沌与分形
1、 定义 、 给定某个初值, 给定某个初值,反复作用以同一个函数的 过程称为迭代 ,一般形式为
x0 , x1 = f (x0 ), x2 = f (x1 ),⋯, xn = f (xn−1 ),⋯
它生成了一个序列{ 它生成了一个序列 xn },称为迭代序列. ,称为迭代序列.
f (x) = αx(1− x) (0 ≤ x ≤1)
12
6.人口增长的 人口增长的Logistic模型 人口增长的 模型
xn+1 =αxn (1− xn )
f (x) = αx(1− x) (0 ≤ x ≤1)
称为Logistic映射 映射 称为
13
7. Feigenbaum图 图 对于Logistic 映射,取a=2.5,我们通过离 映射, 对于 , 散图形观察迭代的收敛情况。 散图形观察迭代的收敛情况。
4
3.分式线性函数的迭代 分式线性函数的迭代
25x −85 例: f (x) = x +3
先取初值x 先取初值 0=5.5
f=inline('(25*x-85)/(x+3)');%先定义函数 先定义函数 x0=5.5; for i=1:1:20 x0=f(x0); fprintf('%g,%g\n',i,x0); end
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四函数的迭代、混沌与分形[实验目的]1. 认识函数的迭代;2. 了解混沌和分形.迭代在数值计算中占有很重要的地位,了解和掌握它是很有必要的.本实验将讨论用Newton迭代求方程根的问题,以及迭代本身一些有趣的现象.§1 基本理论1.1 迭代的概念给定某个初值,反复作用以同一个函数的过程称为迭代.函数f(x)的迭代过程如下:x0,x1=f(x0),x2=f(x1),……..,x n=f(x n-1)…..,它生成了一个序列{x n}迭代序列.许多由递推关系给出的数列,都是递推序列.例如数列.X0=1,x n=1+1/(1+x n-1) (n=1,2,…………..)是由函数f(x)=1+1/(1+x)=(2+x)/(1+x)取初值为1所得的迭代序列.1.2 迭代序列的收敛性定理设函数f(x)满足:(1)对任意x∈(a,b),f(x)∈(a,b);(2)f(x)在(a,b)内可导,且存在常数L使得|f(x)'|=L<1,则当初值x0∈(a,b)时,由f(x)生成的迭代序列收敛.在迭代函数f(x)连续的条件下,如果迭代数列收敛,则它一定收敛于方程x=f(x)的根.该方程的根也称函数f(x)的不动点.设x*为f(x)的不动点,f(x)'在x*的附近连续,若|f(x*)'|<1,则称不动点x*是稳定的;若f(x*)'=0,则称不动点x*是超稳定的.在超稳定点x*附近,迭代过程x n+1=f(x n)收敛到x*的速度是非常快的.1.3 Newton迭代法设函数g(x)具有一阶导数,且g(x)'≠0,则函数f(x)=x-g(x)/g(x)'的迭代称为Newton迭代,若函数f(x)存在不动点,则它一定是方程g(x)=0的根,故Newton迭代法可用来求方程g(x)=0的根.§2 实验内容与练习2.1 迭代的收敛对于函数迭代,最重要的问题是迭代序列的收敛性.一般说,迭代序列是否收敛取决于迭代函数与初值.作为一个例子,我们用来讨论用Newton迭代法求函数g(x)=(x-17)5/3(x-5)-2/3的根,其Mathematica程序为:Clear[g,x];g[x_]:=(x-17)^(5/3)*(x-5)^(-2/3);f[x_]=Factor[x-g(x)]/D[g[x],x]];x0=5.5;n=20;For[i=1,i<=n,i++,x0=N[f[x0]];Print[i,”“,x0,”“,D[f[x],x]/.x->x0]]执行结果见表4.1.表4.1的结果说明迭代序列收敛于g(x)的零点17.我们注意到程序中取的迭代处值为5.5,如果其它的数作为初值,所得的迭代序列是否收敛于17呢?我们可以取其它初值做实验,结果得到表4.2(表中第三列是迭代序列的前6位有效数字首次为17.0000的步数).从表4.2中可看出,只要初值不取5,迭代序列都收敛于17,且收敛速度与初值的选取关系不大.前面程序中使用的f(x)为g(x)的化简过的Newton迭代函数,用Mathematica命令可检查出它为(25x-85)/(x+3)(注意,这个式子扩充了原迭代函数在x=5,x=17处的定义),解方程f(x)=x.得到x=17,与x=5.即17和5是f(x)的两个不动点,有前面的讨论知这两个不动点是有区别的:对于17,不管初值取为多少(只要不为5),迭代序列总是收敛于它;而对于5,只要初值取为5时,迭代序列才以它为极限,这样一种现象在函数的迭代中普遍存在,为方便区分起见,我们给这样两种点各一个名称:像17这样的所有附近的点在迭代过程中都趋向于它的不动点,称为吸引点;而像5这样的所有附近的点在迭代过程中都远离它的不动点,称为排斥点.上面的f(x)=(25x-85)/(x+3)是一个分式线性函数,对于一般的分式线性函数,迭代序列是否总是收敛呢?练习1 编程判断函数f(x)=(x-1)/(x+1)的迭代序列是否收敛.在上节我们已经指出,如果迭代序列收敛,一定收敛到函数的某个不动点,这就是说,迭代函数存在不动点是迭代序列收敛的必要条件.那么如果迭代函数存在不动点,迭代序列是否一定收敛呢?练习2 先分别求出分式线性函数f1(x)=(x-1)/(x+3),f2(x)=(-x+15)/(x+1)的不动点,再编程判断它们的迭代序列是否收敛.运用上节的收敛定理可以证明:如果迭代函数在某不动点处具有连续的导数且导数值介于-1与1之间,那么取该不动点附近的点为初值所得到的迭代序列一定收敛到该不动点.练习3 你能否说明为什么17是f(x)=(25x-85)/(x+3)的吸引点,而5是f(x)的排斥点?尽量多找些理由支持这个结论.练习4 能否找到一个分式线性函数(ax+b)/(cx+d),使它产生的迭代序列收敛到给定的数?用这种办法计算2.2.2迭代的”蜘蛛图”对函数的迭代过程,我们可以用几何图象来直观地显示它.在xoy平面上,先作出函数y=f(x)与y=x的图象,对初值x0,在曲线y=f(x)上可确定一点p0,它以x0为横坐标,过p0引平行x轴的直线,设该直线与y=x交与点Q1作平行于y轴的直线它与曲线y=f(x)的交点记为p1,重复上面的过程,就在曲线y=f(x)上得到点列p1,p2,……,如图4.1,不难知道,这些点的横坐标构成的序列x0,x1,x2,……,xn……就是迭代序列.若迭代序列收敛,则点列p1,p2,……趋向于y=f(x)与y=x的交点p*,因此迭代序列是否收敛,可以在图上观查出来,这种图因其形状像蜘蛛网而被称为“蜘蛛网”图。

图4.2显示了分式线性函数f(x)=(25x-85)/(x+3)取初值为5.5的迭代过程,从图中可以看出该迭代是收敛的,且收敛到不动点17。

图4.2的“蜘蛛网”图可通过下面的程序获得Clear[f];图4.2 函数f(x)=(25x-85)/(x+3)的f[x_]:=(25*x-85)/(x+3);g1=Plot[f[x],{x,-10,20}, PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity];g2=Plot[x,{x,-10,20}, PlotStyle->RGBColor[0,1,0],DisplayFunction->Identity];x0=5.5;r={};r0=Graphics[{RGBColor[0,0,1],Line[{{x0,x0},{x0,f[x0]},{f{x0},f[x0]}}]}]];x0=f[x0]];Show[g1,g2,r,r0,PlotRange->{-1,20},DisplayFunction->$DisplayFunction]练习五通过观察图4.2或通过改变初值重画f(x)=(25x-85)/(x+3)的蜘蛛网图,你是否能说明为什么该函数迭代的收敛速度与初值的选取关系不大?对于其他收敛的分式线形函数的迭代,是否有类似的结论?f[x_]:=(25*x-85)/(x+3);g1=Plot[f[x],{x,-10,20}, PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity];g2=Plot[x,{x,-10,20}, PlotStyle->RGBColor[0,1,0],DisplayFunction->Identity];x0=5.5;r={};r0=Graphics[{RGBColor[0,0,1],Line[{{x0,x0},{x0,f[x0]},{f{x0},f[x0]}}]}]];x0=f[x0]];Show[g1,g2,r,r0,PlotRange->{-1,20},DisplayFunction->$DisplayFunction]练习五通过观察图4.2或通过改变初值重画f(x)=(25x-85)/(x+3)的蜘蛛网图,你是否能说明为什么该函数迭代的收敛速度与初值的选取关系不大?对于其他收敛的分式线形函数的迭代,是否有类似的结论?2.3认识混沌迭代序列若不收敛,它可能出现两种情况:1.迭代次数充分大时,迭代序列出现周期性重复。

即存在自然数N,k>0, 使x N+k=x N,这样迭代序列便成为:x0,x1,。

x N,x N+1,。

,x N+k-1,x N,x N+1,。

,x N+k-1。

.此时,x N,x N+1,。

,x N+k-1称为周期为k的循环;而初始点x0称为预周期点。

例如,对函数f(x)=-2+sin1.5x取初值x=0的迭代,可画出其蜘蛛网图如4.3所示,由该图可判断该迭代得到了一个周期为2的循环,0是该循环的一个预周期点。

2.序列没有规律`杂乱无章,称之为混沌。

例如,图4.4是函数f(x)= -2+sin1.5x取初值为-0.7的迭代图,可看出该迭代产生了混沌。

图4.3 迭代出现循环图4.4迭代出现混沌混沌具有两个特性:非随机性和对初始值的敏感性。

若初始值产生微小的误差,则该误差随迭代序列次数呈指数性增长,因此尽管迭代序列由初值和迭代函数完全决定,但随迭代次数的增加,它与随机序列并无多大差别,故混沌又称做确定性的随机运动。

练习6 通过观察图形进一步了解函数f(x)=a+sinbx的迭代(多取几组参数及初值)。

练习7 下列函数的迭代是否会产生混沌?(1)2x , 0<=x<=1/2,f(x)=2(1-x), 1/2<x<=1;(2)f(x)=1/2(x+a/x).练习8 函数f(x)=ax(1-x)(0<=x<=1)称为Logistic映射,试从“蜘蛛网”图观察它取初值为x0=0.5产生的迭代序列的收敛性,将观察记录填入表4.3,若出现循环,请指出它的周期。

2.4 人口增长的Logistic模型Logistic映射来源于对人口变化规律的研究,下面我们简单加以介绍。

世界人口的增长,受到自然资源的约束,设地球允许承载的总人数为,以x(t)表示时刻为t时的人口总人数。

我们容易想到,在t时刻到时刻t+△t的人口平均增长速度,与t时刻的人口数成正比,也与容许增长的人口数成正比,故[x(t+△t)-x(t)]/ △t=kx(t)(x m-x(t)), (4.1)其中k为比例系数,表示人口增长系数相关的系数。

设以一年为一时间单位,当△t=1时,上面的式子变为x(t+1)-x(t)= kx(t)(x m-x(t)),即x(t+1)=(1+kx m)x(t)(1-kx(t)/1+kx mk*x(t+1)/(1+kx m)=(1+kx m)k/1+kx m x(t)(1-kx(t)/1+kx m以n代替t,并令x n= k/1+kx m x(n),则有x n+1=(1+kx m)x n(1-x n)令α=1+kx m,可得x n+1=αx n(1-x n)此式正是由Logistic映射构成的迭代式。

相关文档
最新文档