一、实验目的:1、初步认识迭代,体会迭代思想的重要性。
2、通过在mathematica环境下编写程序,利用迭代的方法求解方程的根、线性方程组的解、非线性方程组的解。
3、了解分形的的基本特性及利用mathematica编程生成分形图形的基本方法,在欣赏由mathematica生成的美丽的分形图案的同时对分形几何这门学科有一个直观的了解。
从哲理的高度理解这门学科诞生的必然性,激发读者探寻科学真理的兴趣。
4、从一个简单的二次函数的迭代出发,利用mathematica认识混沌现象及其所蕴涵的规律。
5、.进一步熟悉Mathematic软件的使用,复习总结Mathematic在数学作图中的应用,为便于研究数学图像问题提供方便,使我们从一个新的视角去理解数学问题以及问题的实际意义。
6、在学习和运用迭代法求解过程中,体会各种迭代方法在解决问题的收敛速度上的异同点。
二、实验的环境:学校机房,mathematica4环境三、实验的基本理论和方法:1、迭代(一)—方程求解函数的迭代法思想:给定实数域上光滑的实值函数)(xf以及初值x定义数列1()n n x f x +=, ,3,2,1,0=n , (1)n x , ,3,2,1,0=n ,称为)(x f 的一个迭代序列。
(1)方程求根给定迭代函数)(x f 以及初值0x 利用(1)迭代得到数列n x , ,3,2,1,0=n .如果数列收敛到某个*x ,则有)(**x f x =. (2) 即*x 是方程)(x f x =的解。
由此启发我们用如下的方法求方程0)(=x g 的近似解。
将方程0)(=x g 改写为等价的方程)(x f x =, (3) 然后选取一初值利用(1)做迭代。
迭代数列n x 收敛的极限就是方程0)(=x g 的解。
为了使得迭代序列收敛并尽快收敛到方程0)(=x g 的某一解的条件是迭代函数)(x f 在解的附近的导数将的绝对值尽量小,因此迭代方程修订成x x f x h x )1()()(λλ-+== (4) 选取λ使得|)(|x h '在解的附近尽量小. 为此, 我们可以令,01)()(=-+'='λλx f x h得)(11x f '-=λ. 于是 1)()()(-'--=x f x x f x x h .特别地,如果取x x g x f +=)()(, 则可得到迭代公式.,1,0,)()(1 ='-=+n x g x g x x n n n n (5) (2)线性方程组的数值解的迭代求解理论与矩阵理论给定一个n 元线性方程组⎪⎩⎪⎨⎧=++=++,,1111111n n nn n n n b x a x a b x a x a (6)或写成矩阵的形式,b Ax = (7) 其中)(ij a A =是n 阶方阵,T n x x x x ),,(21 =及T n b b b b ),,,(21 =均为n 维列向量.熟知,当矩阵A 的行列式非零时,以上的方程组有唯一解.如何有效,快速地寻求大型的线性方程组的数值解释科学工程计算中非常重要的任务.而迭代法常常是求解这些问题的有效方法之一。
用迭代法求解线性方程组的思想与上一小节介绍的方程求根的方法是类似的。
将方程组(7)改写成,f Mx x += (8) 其中)(ij m M =是n 阶矩阵,T n f f f ),,(1 =是n 维列向量. 任意给定初试向量0x ,由迭代f Mx x n n +=+1 (9) 确定向量序列.,1,0, =n x n 如果n x 收敛到向量*x ,则有,**f Mx x +=则*x 为方程组(7)的解.假设矩阵A 的对角元素0,1,2,ij a i n ≠=。
令11(,,)nn D diag a a =,则我们可以将方程(7)改写成()Dx D A x b =-+或11()x I D A x D b --=-+ (10) 由上式即可确定一种迭代格式。
如果即将矩阵1()I D A --分解为U L +,其中,L U 分别为下三角阵与上三角阵,则(10)可以进一步改成1()I L x Ux D b --=+或111()()x I L Ux I L D b ---=-+- (11) 上式又可确定另一种迭代格式。
(3)非线性方程组的迭代求解理论类似于单变量的方程组及线性方程组的求解,用迭代方法可以求更加复杂的非线性方程组的解,给定非线性方程组111(,,)0,,(,,)0.n n n f x x f x x =⎧⎪⎨⎪=⎩ (12)将它改写为等价的方程组1111(,,),,(,,).n nn n x g x x x g x x =⎧⎪⎨⎪=⎩ 或()x g x = (13)其中,x 为n 维列向量Tn x x x ),...,(1=,1((),())T n g g x g x =⋅⋅⋅ 为n 维列向量函数,由上式即确定了一种迭代格式1(),0,1n n x g x n +== . 由于非线性方程组可能有许多解(甚至有无穷多个解),因此对它的求借比线性方程组的求解要面临更多的挑战。
2、迭代(二)—分形分形几何—描述自然界的几何形态,把自然形态看作是具有无限嵌套层次的精细结构,并且在不同尺度下保持某种相似的属性,于是在简单的迭代过程中就可以得到描述复杂的自然形态的有效方法。
(1) 生成元早在19世纪末及20世纪初,一些数学家就构造出一些边界形状极不光滑的图形。
这类图形的构造方式都有一个共同的特点,即最终图形F 都是按照一定的规则R 通过对初始图形0F 不断修订得到的. 其中最有代表性的图形是Koch 曲线, 它的构造方式是给定一条直线段0F ,将它分为三等分,并将中间的一段用以该线段为边的等边三角形的另外两条边代替,得到图形1F . 然后, 再对图形1F 中的每一小段都按上述方法修改, 以至无穷. 则最后得到的极限曲线k k F F ∞→=lim ,即所谓的Koch 曲线.Koch 曲线的修改规则R 是将每一条直线段0F 用一条折线1F 代替, 我们称1F 为该分形的生成元. 分形的基本特性完全由生成元决定. 因此, 给定一个生成元, 我们就可以生成各种各样的分形图形。
(2) 复变函数迭代理论给定初始复数0Z ,考虑如下迭代:21,0,1,2,(1)k k Z Z k μ+=+= 其中,0,1,2,k Z k =为复数,μ为(复)常数。
对于给定的初始点0Z ,迭代序列有可能有界,也可能发散到无穷。
令是使得迭代序列有界的所有初值0Z 构成的集合,即J μ={0Z |迭代序列0{}k k Z ∞=有界}我们称J μ在复平面上构成的集合为Julia 集。
对不同的参数μ, Julia 集的形状也会不同。
特别的0μ=,对应的Julia 集为圆盘。
如果固定初值0Z ,则对不同的参数μ,迭代序列0{}k k Z ∞=的有界性也不相同。
令0Z M 是使得迭代序列0{}k k Z ∞=有界的所有参数构成的集合,即 0Z M ={μ|迭代序列0{}k k Z ∞=有界}则称0Z M 在复平面上构成的集合为Mandelbrot 集。
为了便于在计算机上绘制出Julia 集和Mandelbrot 集,我们令,k k k Z x iy p iq μ=+=+,则(1)式可改写为22112k k k k k k x x y p y x y q ++⎧=-+⎪⎨=+⎪⎩ 1,2,k=记22k k k r x y =+,则Julia 集为使得序列0{}k k r ∞=有界的初始点00(,)x y 构成的集合,Mandelbrot 集为使得序列0{}k k r ∞=有界的参数(,)p q 构成的集合。
Julia 集与Mandelbrot 集会是什么样子?如果没有计算机的帮助,你是很难想象的。
下面,我们给出这两个集合的计算机作图方法。
Julia 集绘制方法(1)设定初始值,p q ,一个最大的迭代次数N ,图形的分辨率大小,a b 和使用的颜色数K (如16K =)(或者给定灰度级L )。
(2)设定一个上界值M ≥。
(3)将矩形区域:{(,)|,}R x y M x y M =-≤≤分成a b ⨯的网格,分别以每个网点(,)i i f g ,2i M f M i a =-+⨯,2i M g M j b =-+⨯,0,1,2,i =,0,1,2,j =作为初始值00(,)x y 利用riter 做迭代(实际上,只需对满足22200x y M -≤的初始点迭代)。
如果对所有n N ≤,222n n x y M -≤,将图形的(,)i j 像素点用黑色显示。
否则,如果从迭代的某一步0n 开始有002n n x y M +>,则利用第种颜色显示相应像素(或者用相应的灰度级显示)。
Mandelbrot 集绘制方法(1)设定一个最大的迭代次数N ,图形的分辨率大小,a b 和使用的颜色数K (如16K =)(或者给定灰度级L )。
(2)设定一个上界值2M≥。
(3)将矩形区域:{(,)|,}R x y M x y M =-≤≤分成a b ⨯的网格,分别以每个网点(,)i i f g ,2i M f M i a =-+⨯,2i M g M j b =-+⨯,0,1,2,i =,0,1,2,j =作为参数值(,)p q 利用riter 做迭代(实际上,只需对满足224p q +≤的初始点迭代)。
每次得带的初值均为00(,)(0,0)x y =。
如果对所有n N ≤,222n n x y M -≤,将图形的(,)i j 像素点用黑色显示。
否则,如果从迭代的某一步0n 开始有002n n x y M +>,则利用第种颜色显示相应像素(或者用相应的灰度级显示)。
四、实验的容和步骤:练习1给定初值x及迭代函数22)(xxxf+=,迭代n次产生相应的数列。
mathematica程序如下:运行结果为:练习2设.)(baxxf+=利用(1)做迭代得到序列.,1,0,=nxn(1)写出序列nx的通项公式为:12(1)n n nnx a x a a a b--=+++++(2)在什么条件下,迭代(1)对任意的初值x都收敛?答:据几何级数的收敛性,当||1a<时,迭代(1)对任意的初值x都收敛。
(3)影响收敛性的主要量是什么?它与)(xf的一阶导数有什么关系?常数b对迭代的收敛性有没有影响?收敛速度的快慢由什么量决定?答:影响收敛性的主要量是a,它即为()f x的一阶导数,常数b对迭代的收敛性没有影响,收敛速度的快慢由a和b共同决定。
(4)对于任意给定的线性方程0)(=+=BAxxg,你是否可以将它改写成等价的形式)(xfx=使得迭代总是收敛?答:对于任意给定的线性方程()0g x Ax B=+=,我们总可以将它改写成等价的形式()x f x=使得迭代总是收敛。