数学建模迭代实验报告(新)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

非 线 性 迭 代 实 验 报 告

一、实验背景与实验目的

迭代是数学研究中的一个非常重要的工具,通过函数或向量函数由初始结点生成迭代结点列,也可通过函数或向量函数由初值(向量)生成迭代数列或向量列。 蛛网图也是一个有用的数学工具,可以帮助理解通过一元函数由初值生成的迭代数列的敛散性,也帮助理解平衡点(两平面曲线交点)的稳定性。

本实验在Mathematica 平台上首先利用蛛网图和迭代数列研究不动点的类型;其次通过蛛网图和迭代数列研究Logistic 映射,探索周期点的性质、认识混沌现象;第三通过迭代数列或向量列求解方程(组)而寻求有效的求解方法;最后,利用结点迭代探索分形的性质。

二、实验材料

2.1迭代序列与不动点

给定实数域上光滑的实值函数)(x f 以及初值0x ,定义数列

)(1n n x f x =+, ,2,1,0=n (2.2.1) }{n x 称为)(x f 的一个迭代序列。

函数的迭代是数学研究中的一个非常重要的思想工具,利用迭代序列可以研究函数)(x f 的不动点。

对函数的迭代过程,我们可以用几何图象来直观地显示它——“蜘蛛网”。运行下列Mathematica 程序:

Clear[f]

f[x_] := (25*x - 85)/(x + 3); (实验时需改变函数) Solve[f[x]==x , x] (求出函数的不动点)

g1=Plot[f[x], {x, -10, 20}, PlotStyle -> RGBColor[1, 0, 0], DisplayFunction -> Identity];

g2=Plot[x, {x, -10, 10}, PlotStyle -> RGBColor[0, 1, 0], DisplayFunction -> Identity]; x0=5.5; r = {};

r0=Graphics[{RGBColor[0, 0, 1], Line[{{x0, 0}, {x0, x0}}]}]; For[i = 1, i <= 100, i++,

r=Append[r, 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}, (PlotRange 控制图形上下范围) DisplayFunction -> $DisplayFunction] x[0]=x0;

x[i_]:=f[x[i-1]]; (定义序列) t=Table[x[i],{i,1,10}]//N ListPlot[t] (散点图)

观察蜘蛛网通过改变初值,你能得出什么结论?

如果只需迭代n 次产生相应的序列,用下列Mathematica 程序: Iterate[f_,x0_,n_Integer]:=

Module[{ t={},temp= x0},AppendTo[t,temp]; For[i=1,i <= n, i++,temp= f[temp]; AppendTo[t,temp]]; t ]

f[x_]:= (x+ 2/x)/2; Iterate[f,0.7,10]

设()x f 是一个定义在实数域上的实值函数,如果存在u 使得()u u f =,则称u 为()x f 的不动点。我们用u u →表示这件事。如果所有附近的点在选代过程中都趋向于某个不动点,则该不动点称为吸引点,有时也称该不动点是稳定的。如果所有附近的点在选代过程中都远离它而去,则该不动点称为排斥点,有时也称该不动点是不稳定的。

如果21)(u u f =,32)(u u f =,…,1)(u u f k =且k j u

u j

i ,,2,1,

=≠,则k

u u u ,,,21 形成一个k 循环,用121u u u u k →→→→ 记这个事实。1u 称为一个k 周期点,k u u u ,,,21 称为一个周期轨道。显然,不动点就是周期为1的周期点。类似于不动点,如果所有附近的点在迭代过程中都趋向于某个周期点,则该周期点称为吸引点;如果所有附近的点在迭代过程中都远离它而去,则该周期点称为排斥点。如果点u 最终落于某个循环之中,则称它是一个预周期点。例如,l 是1)(2-=x x f 的预周期点。

2.2 Logistic 映射与混沌

从形如()()x ax x f -=1的二次函数开始做迭代

()k k x f x =+1 ,1,0=k (2.2.2)

这里,[]4,0∈a 是一个参数。对不同的a 系统地观察迭代(2.2.2)的行为。Mathematica 程序:

IterGeo[a_, x0_] :=

Module[

{p1, p2, i, pointlist = {}, v= x0, fv= a*x0*(1 - x0)},

p1=Plot[ {a*x*(1 - x), x}, {x, 0, 1}, DisplayFunction -> Identity]; AppendTo[pointlist, {x0, 0}];

For[i = 1, i < 20, i++, AppendTo[pointlist, {v, fv}]; AppendTo[pointlist, {fv, fv}]; v= fv; fv= 4*v*(1 - v)];

p2=ListPlot[pointlist, PlotJoined -> True, DisplayFunction -> Identity];

Show[{p1, p2}, DisplayFunction -> $DisplayFunction] ]

IterGeo[2.6, 0.3]

将区间(0,4]以某个步长a ∆离散化,对每个离散的a 值做迭代(2.2.2),忽略前50个迭代值,而把点()51,x a ,()52,x a ,…,()100,x a 显示在坐标平面上,最后形成的图形称为Feigenbaum 图。Mathematica 程序:

Clear[f, a, x]; f[a_, x_] := a*x*(1 - x);

x0 = 0.5; r = {}; Do[

For[i = 1, i <= 300, i++, x0 = f[a, x0];

If[i > 100, r = Append[r, {a, x0}]] ],

{a, 3.0, 4.0, 0.01}]; ListPlot[r]

从极限分支点之后,Feigenbaum 图显得很杂乱,似乎没有任何规律。实际上,对任何初始值做迭代都会得到同样的结果。这就是所谓的混沌现象。迄今为止,混沌并没有确切的数学定义,但它具有一些基本的特性,如对初值的敏感性以及某种无序性,由此产生类似于随机的现象。

所谓一个迭代对初值是敏感的意思是,无论两个初值如何接近,在迭代过程中它们将渐渐分开。这是任何一个混沌系统都具有的特性之一,这种特性使得混沌系统会产生似乎是随机的、没有规律的现象。在Logistic 映射中,取4=a ,任取两个初值使得它们之间的差的绝对值不超过0.l ,运行下列程序,观察结果后回答问题:在迭代过程中它们逐渐分开吗?

相关文档
最新文档