非线性迭代概论.docx

上传人:b****3 文档编号:1029442 上传时间:2022-10-15 格式:DOCX 页数:31 大小:590.56KB
下载 相关 举报
非线性迭代概论.docx_第1页
第1页 / 共31页
非线性迭代概论.docx_第2页
第2页 / 共31页
非线性迭代概论.docx_第3页
第3页 / 共31页
非线性迭代概论.docx_第4页
第4页 / 共31页
非线性迭代概论.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

非线性迭代概论.docx

《非线性迭代概论.docx》由会员分享,可在线阅读,更多相关《非线性迭代概论.docx(31页珍藏版)》请在冰豆网上搜索。

非线性迭代概论.docx

非线性迭代概论

数学实验与数学建模

实验报告

 

学院:

理学院

班级:

数学师范132

学号:

1302012055

姓名:

张倩

实验名称:

非线性迭代

指导教师:

刘晓惠

填写日期:

2014年12月

一、实验背景与实验目的

迭代是数学研究中的一个非常重要的工具,通过函数或向量函数由初始结点生成迭代结点列,也可通过函数或向量函数由初值(向量)生成迭代数列或向量列。

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

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

二、实验计划

1.迭代序列与不动点

(1)实验程序

给定实数域上光滑的实值函数以及初值,定义数列

,(2.2.1)

称为的一个迭代序列。

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

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

运行下列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](散点图)

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

如果只需迭代次产生相应的序列,用下列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]

(2)实验思路

首先对函数研究不动点,需要

(1)对Plot中{x,-10,20}可改为{x,-50,50};对PlotRange中{-1,20}可改为{-50,50};

(2)x0=5.5中5.5分别改为-30,-20,-5,-3.001,-2.999,-1,0,1,1.5,2.5,4,4.5,4.9,4.999,5,5.1,5.001,6,10,16,17,18,20,30;

(3)对t=Table[x[i],{i,1,10}]//N中10分别改为100,200,500,1000;

(4)对i<=100中100分别改为200,500,1000。

运行程序后观察蛛网图与散点图!

一看数列是否收敛?

如收敛,极限是多少?

收敛速度是快是慢?

二看蛛网图中的轨道是否趋于平衡点?

与平衡点处曲线的斜率有没有关系?

三看初值对结果有没有影响?

其次,分别就,等函数利用(2.2.1)做迭代序列,观察蛛网图中的轨道是否趋于平衡点和序列的收敛性。

2.Logistic映射与混沌

(1)实验程序

从形如的二次函数开始做迭代

(2.2.2)

这里,是一个参数。

对不同的系统地观察迭代(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]以某个步长离散化,对每个离散的值做迭代(2.2.2),忽略前50个迭代值,而把点,,…,显示在坐标平面上,最后形成的图形称为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映射中,取,任取两个初值使得它们之间的差的绝对值不超过0.l,运行下列程序,观察结果后回答问题:

在迭代过程中它们逐渐分开吗?

如果两个初值之间的差的绝对值不超过0.01,0.001,结果会如何?

由此得出,函数的迭代对初值是否敏感?

其Mathematica程序:

Sensitivity[n_Integer,x01_,x02_]:

=

Module[

{pilist={},i,temp1=x01,temp2=x02},

For[i=1,i<=n,i++,temp1=4*temp1*(1-temp1);

temp2=4*temp2*(1-temp2);

AppendTo[pilist,{i,temp2-temp1}];

];

ListPlot[pilist,PlotJoined->True]

]

Sensitivity[50,0.1,0.1001]

一个简单的、确定的二次选代可以产生非常复杂的、看似随机的行为。

但是,混沌不等于随机。

实际上,在混沌区域之内,蕴涵着许多有序的规律。

这正验证了哲学上的名言:

有序中包含了无序,无序中包含着有序。

其Mathematica程序:

distrib[n_Integer,m_Integer,x0_]:

=

Module[{i,temp=x0,g1,f,k,c=Table[0,{i,m}]},For[i=1,in,i++,temp=4*temp*(1-temp);

If[temp1,c[[m]]++,c[[Floor[temp*m]+1]]++]];

f[k_]:

=Graphics[{GrayLevel[0.5],Rectangle[{k-0.5,0},{k+0.5,c[[k]]}]}];

g1=Table[f[k],{k,1,m}];Show[g1,AxesTrue,PlotLabel->"x0=0.4"];]

n=100;m=20;x0=0.4;distrib[n,m,x0]

另一个说明混沌不是随机的事实是,混沌区域有许多有序的窗口。

将这些窗口放大可以看到令人振奋的自相似现象,同时还有许多周期轨道。

在Feigenbaum图的右部,你应当能看到一个由三条曲线穿过的空白带,它是一个“周期为3的窗口”。

你能找到其它窗口吗?

它们的周期是什么?

窗口里有什么图案?

这些窗口跟上题的第二问中的周期轨道有什么关系?

运行下列程序,听一听混沌的声音

PlayChaos[n_Integer,x0_]:

=

Module[

{t={},i,temp=x0},

For[i=1,i<=n,i++,temp=4*temp*(1-temp);

AppendTo[t,Floor[temp*100]]];

ListPlay[t,PlayRange->{0,100},SampleRate->5]

(2)实验思路

就Logistic映射,对a=0.5,1,1.2,2,2.1,2.9,2.999,3,3.001,3.2,3.235,3.236,3.237,3.44等,分别取x0=0,0.2,0.5,0.8,1.0运行程序,观察结果。

观察结果就是看数列是否收敛,蛛网图中的轨道是否趋于平衡点,与a的关系!

对a的定义范围[0,4]分成若干个区间,就初值(属于(0,1)时)看数列是否收敛,蛛网图中的轨道是否趋于平衡点?

可用散点图认识。

对Logistic映射讨论下列问题:

1)找出一个值,它对应的迭代具有2周期点。

这种性质依赖于初值吗?

你能找到多个值具有这种性质吗?

2)你能对任意的找到一个值,使得它对应的迭代具有周期点吗?

哪些值能给出周期点?

在每种情况下,结果是否依赖于初值的选取?

3)如果某个值能给出周期点,它是否一定是吸引的周期点?

你能否找到排斥的周期点?

4)试着从理论上分析:

的不动点是什么?

对哪些值迭代收敛到每个不动点?

哪些初值收敛到不动点?

哪些初值导致发散?

对周期点做类似的分析。

研究锯齿函数和帐篷函数的混沌行为时,分别取x0=0,0.2,0.5,0.8,1.0运行程序(改变函数,要修改函数的定义方式),研究数列及蛛网图中的轨道。

3.方程求根

(1)实验程序

对于代数方程g(x)=0,其根可用下列程序求得

Solve[g(x)==0,x]

也可用下列程序求得

g[x_]:

=expr

Plot[g[x],{x,a,b}]

FindRoot[g(x)==0,{x,x0}]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1