非线性迭代实验报告.docx
- 文档编号:17980977
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:26
- 大小:255.89KB
非线性迭代实验报告.docx
《非线性迭代实验报告.docx》由会员分享,可在线阅读,更多相关《非线性迭代实验报告.docx(26页珍藏版)》请在冰点文库上搜索。
非线性迭代实验报告
探索实验二非线性迭代
一、实验背景与实验目的
迭代是数学研究中的一个非常重要的工具,通过函数或向量函数由初始结点生成迭代结点列,也可通过函数或向量函数由初值(向量)生成迭代数列或向量列。
蛛网图也是一个有用的数学工具,可以帮助理解通过一元函数由初值生成的迭代数列的敛散性,也帮助理解平衡点(两平面曲线交点)的稳定性。
本实验在Mathematica平台上首先利用蛛网图和迭代数列研究不动点的类型;其次通过蛛网图和迭代数列研究Logistic映射,探索周期点的性质、认识混沌现象;第三通过迭代数列或向量列求解方程(组)而寻求有效的求解方法;最后,利用结点迭代探索分形的性质。
一、实验计划
1.迭代序列与不动点
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](散点图)
1.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,20}]//N中20分别改为100,200;
(4)对i<=100中100分别改为200,500,1000。
运行程序后观察蛛网图与散点图!
一看数列是否收敛?
如收敛,极限是多少?
收敛速度是快是慢?
二看蛛网图中的轨道是否趋于平衡点?
与平衡点处曲线的斜率有没有关系?
三看初值对结果有没有影响?
其次,分别就
,
等函数利用(2.2.1)做迭代序列
,观察蛛网图中的轨道是否趋于平衡点和序列的收敛性。
2.Logistic映射与混沌
2.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]
2.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)试着从理论上分析:
的不动点是什么?
对哪些
值迭代收敛到每个不动点?
哪些初值收敛到不动点?
哪些初值导致发散?
对周期点做类似的分析。
3.方程求根
3.1程序
求方程的根的Mathematica程序如下:
NSolve[x^3-2x+1==0,x]
函数取不同初值迭代的Mathematica程序如下:
Iterate[f_,x0_,n_Integer]:
=
Module[{t={},temp=x0},
AppendTo[t,temp];
For[i=1,i<=n,i++,temp=N[f[temp]];
AppendTo[t,temp]];
t
]
f[x_]:
=(x^3+1)/2;
Iterate[f,-2,10]
Newton切线法迭代数列的Mathematica程序如下:
Iterate[f_,x0_,n_Integer]:
=
Module[{t={},temp=x0},
AppendTo[t,temp];
For[i=1,i<=n,i++,temp=N[x0-f[x0]/h[x0]];
AppendTo[t,temp]];
t
]
f[x_]:
=x^3-2*x+1;
h[x_]=Dt[f[x],x];
Iterate[f,4,10]
而要通过几何直观观察,可由如下Mathematica程序实现:
Clear[f]
f[x_]:
=x^3-2*x+1;
g1=Plot[f[x],{x,2,5},PlotStyle->RGBColor[1,0,0],
DisplayFunction->Identity];
x0=4;r={};
h[x_]=Dt[f[x],x];
For[i=1,i<=100,i++,
If[h[x0]≠0,x1=N[x0-f[x0]/h[x0],20]];
r=Append[r,Graphics[{RGBColor[0,0,1],
Line[{{x0,0},
{x0,f[x0]},{x1,0}}]
}]];
x0=x1
];
Show[g1,r,PlotRange->{-20,20},
DisplayFunction->$DisplayFunction]
3.2实验思路
对于方程
,首先分别考虑函数
,
,
,取不同的初值x0(例如-9,-5,-2,-1,-0.5,0,0.5,1,2,8,10等),生成相应的数列。
若数列有极限,则极限即为所求根。
其次用牛顿切线法求根,取不同的初值x0(例如-9,-5,-2,-1,-0.5,0,0.5,1,2,8,10等),由此数列的极限即为所求根。
思考:
为何数列收敛?
分析原因!
此外,初值x0决定数列的极限吗?
4.分形
4.1程序
计算机绘出Koch曲线的Mathematica程序:
redokoch[ptlist_List]:
=
Block[{tmp={},i,pnum=Length[ptlist]},
For[i=1,i ptlist[[i]]*2/3+ptlist[[i+1]]/3, (ptlist[[i]]+ptlist[[i+1]])/2+{ptlist[[i]][[2]]-ptlist[[i+1]][[2]], ptlist[[i+1]][[1]]-ptlist[[i]][[1]]}*Sqrt[3]/6, ptlist[[i]]/3+ptlist[[i+1]]*2/3,ptlist[[i+1]]}]];tmp] lnko01={{0,0},{1,0}}; Show[Graphics[Line[Nest[redokoch,lnko01,5]],AspectRatio->Sprt[3]/6]] Julia集图形的Mathematica程序: julia[x_,y_,lim_,cx_,cy_]: =Block[{z,ct=0},z=x+I*y; While[(Abs[z]<2.0)&&(ct julia1=DensityPlot[julia[x,y,50,0.27334,0.00742],{x,-1.5,1.5},{y,-1.5,1.5}, PlotPoints->120,Mesh->False] julia2=Show[julia1,Graphics[Line[{{-0.7,-0.1}, {-0.3,-0.1},{-0.3,0.3},{-0.7,0.3},{-0.7,-0.1}}]]] julia3=DensityPlot[julia[x,y,50,0.27334,0.00742],{x,-0.7,-0.4},{y,-0.1,0.3}, PlotPoints->120,Mesh->False] Mandelbrot集以及它的局部放大的Mathematica程序如下: iter[x_,y_,lim_]: =Block[{c,z,ct},c=x+I*y;z=c;ct=0; While[(Abs[z]<2.0)&&(ct Mandelbrot1=DensityPlot[iter[x,y,50],{x,-2.0,1.0},{y,-1.5,1.5}, PlotPoints->120,Mesh->False] Mandelbrot2=Show[Mandelbrot1,Graphics[Line[{{-0.9,-0.25}, {-0.7,-0.25},{-0.7,-0.05},{-0.9,-0.05},{-0.9,-0.25}}]]] Mandelbrot3=DensityPlot[iter[x,y,50],{x,-0.9,-0.7},{y,-0.25,-0.05}, PlotPoints->120,Mesh->False] 4.2实验思路 1、用Koch曲线的生成元做迭代得到的极限图形称为Koch雪花曲线。 (1)试用计算机画出Koch雪花曲线; (2)试计算雪花曲线的边长及面积,它们是否有限? 你如何解释所得出的结论? (3)雪花曲线是否光滑(即每一点是否有切线存在)? (4)其它的一些分形是否具有类似的性质? 2、编写绘制Julia集的程序。 对不同的参数 : (0,1),(-1,0),(0.11,0.66),(-0.10281,0.95723),(-1.25,-0。 01)观察Julia集的变化。 取Julia集的不同局部放大,你能看到某种自相似现象吗? 绘制Mandelbrot集。 然后,任意选取它的一个局部将其放大,然后再将放大图形的不同局部放大。 由此观察Mandelbrot集与Julia集有何关系。 进一步,取参数 位于Mandelbrot集的不同部位(如内部、外部、边界、某个苞芽的内部等),现察相应的Julia集的形状的变化。 3、请你概括一下分形的一般特征。 4、二维迭代分形。 考虑函数 与 构成的二维迭代分形称为Martin迭代。 现观察其当 时,取初值所得到的二维迭代散点图。 程序如下: a=45;b=2;c=-300;xn=0;yn=0;g={{0,0}}; For[n=1,n<=5000,n++, xN=xn;yN=yn; xn=yN-Sign[xN]*N[Sqrt[Abs[b*xn-c]]]; yn=a-xN; g=Append[g,{xn,yn}]; ]; ListPlot[g,PlotStyle->RGBColor[1,0,0],AspectRatio->Automatic] 问题: (1)试着提高迭代次数至20000,50000,100000等观察图形有什么变化。 (2)取参数为其它的值时会得到什么图形? 二、实验过程与结果 1.迭代序列与不动点 实验1.1 对于函数 ,在Mathematica5.0上输入如下程序 Clear[f] f[x_]: =(25*x-85)/(x+3); Solve[f[x]x,x] g1=Plot[f[x],{x,-10,20},PlotStyleRGBColor[1,0,0],DisplayFunctionIdentity]; g2=Plot[x,{x,-10,10},PlotStyleRGBColor[0,1,0],DisplayFunctionIdentity]; x0=5.5;r={}; r0=Graphics[{RGBColor[0,0,1],Line[{{x0,0},{x0,x0}}]}]; For[i=1,i100,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},DisplayFunction$DisplayFunction] x[0]=5.5; x[i_]: =f[x[i-1]] t=Table[x[i],{i,1,20}]//N ListPlot[t] 运行结果为: 平衡点{{x5},{x17}} 图象为 {6.17647,7.5641,9.85437,12.5529,14.7125,15.9668,16.5642,16.8218,16.9281,16.9711,16.9884,16.9954,16.9981,16.9993,16.9997,16.9999,17.,17.,17.,17.} 实验观察: 该数列是收敛的,极限是17,蛛网图中的轨道趋于平衡点。 (1)对Plot中{x,-10,20}可改为{x,-50,50},对PlotRange中{-1,20}可改为{-50,50} 图象为: 实验观察: 数列仍是收敛的,极限是17,蛛网图中的轨道趋于平衡点。 (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; 1、X0=-30 2、X0=-20 3、X0=-5 4、X0=-3.001 5、X0=-2.999 6、X0=-1 7、X0=0 8、X0=1 9、X0=1.5 10、X0=2.5 11、X0=4 12、X0=4.5 13、X0=4.9 14、X0=4.999 15、X0=5 16、X0=5.1 17、X0=5.001 18、X0=6 19、X0=10 20、X0=16 21、X0=17 22、X0=18 23、X0=20 24、X0=30 实验观察: 数列收敛,极限为17,蛛网图中的轨道趋于平衡点。 初值越接近17,平衡点处曲线的斜率越接近,越多散点在一条直线上。 (3)对t=Table[x[i],{i,1,20}]//N中20分别改为100,200,500,1000 1、把t=Table[x[i],{i,1,20}]//N中20改为100 2、把t=Table[x[i],{i,1,20}]//N中20改为200 3、把t=Table[x[i],{i,1,20}]//N中20改为500 4、把t=Table[x[i],{i,1,20}]//N中20改为1000 实验观察: 数列收敛,收敛速度很快,蛛网图中的轨道趋于平衡点,,初值对结果没有影响 (4)对i<=100中100分别改为200,500,1000 1、i<=200 2、i<=500 3、i<=1000 实验观察: 数列收敛,收敛速度很快,蛛网图中的轨道趋于平衡点。 实验1.2 分别就 , 函数利用(2.2.1)做迭代序列 ,观察蛛网图中的轨道是否趋于平衡点和序列的收敛性。 1、函数 2、 实验观察: 函数 ,数列不收敛,蛛网图中的轨道不趋于平衡点。 函数 ,数列收敛,收敛速度很快,蛛网图中的轨道趋于两个平衡点。 1.Logistic映射与混沌 实验2.1 就Logistic映射,对a=0.5,1,1.2,2,2.1,2.9,2.999,3,3.001,3.2,3.235,3.44等,分别取x0=0,0.2,0.5,0.8,1.0运行程序,观察结果如下: 1、a=0.5,x0=0 2、a=0.5,x0=0.2 3、a=0.5,x0=0.5 4、a=0.5,x0=0.8 5、a=0.5,x0=1.0 6、a=1,x0=0 7、a=1,x0=0.2 8、a=1,x0=0.5 9、a=1,x0=0.8 10、a=1,x0=1.0 11、a=1.2,x0=0 12、a=1.2,x0=0.2 13、a=1.2,x0=0.5 14、a=1.2,x0=0.8 15、a=1.2,x0=1.0 16、a=2,x0=0 17、a=2,x0=0.2 18、a=2,x0=0.5 19、a=2,x0=0.8 20、a=2,x0=1.0 21、a=2.1,x0=0 22、a=2.1,x0=0.2 23、a=2.1,x0=0.5 24、a=2.1,x0=0.8 25、a=2.1,x0=1.0 26、a=2.9,x0=0 27、a=2.9,x0=0.2 28、a=2.9,x0=0.5 29、a=2.9,x0=0.8 30、a=2.9,x0=1.0 31、a=2.999,x0=0 32、a=2.999,x0=0.2 33、a=2.999,x0=0.5 34、a=2.999,x0=0.8 35、a=2.999,x0=1.0 36、a=3,x0=0 37、a=3,x0=0.2 38、a=3,x0=0.5 39、a=3,x0=0.8 40、a=3,x0=1.0 41、a=3.001,x0=0 42、a=3.001,x0=0.2 43、a=3.001,x0=0.5 44、a=3.001,x0=0.8 45、a=3.001,x0=1.0 46、a=3.235,x0=0 47、a=3.235,x0=0.2 48、a=3.235,x0=0.5 49、a=3.235,x0=0.8 50、a=3.235,x0=1.0 51、a=3.44,x0=0 52、a=3.44,x0=0.2 53、a=3.44,x0=0.5 54、a=3.44,x0=0.8 55、a=3.44,x0=1.0 实验观察: 当 取2.9,2.999,3,3.001等时,它对应的迭代具有2周期点。 初值对实验结果结果没有影响。 实验2.2 混沌现象 1、迭代次数100,初值0.5 2、迭代次数100,初值0.9 3、迭代次数1000,初值0.5 4、迭代次数1000,初值0.9 1.方程求根 实验3.1 方程 的根为: {{x-1.61803},{x0.618034},{x1.}} 首先分别考虑函数 , , ,取不同的初值x0(例如-9,-5,-2,-1,-0.5,0,0.5,1,2,8,10等),生成相应的数列。 (1)对函数 1、初值为-2时 2、初值为-1时 {-1,0.,0.5,0.5625,0.588989,0.602163,0.609172,0.613029,0.61519, 0.616412,0.617107} 3、初值为-0.5时 {-0.5,0.4375,0.54187,0.579553,0.597331,0.606565,0.611584,0.614377,\ 0.615951,0.616845,0.617354} 4、初值为0时 {0,0.5,0.5625,0.588989,0.602163,0.609172,0.613029,0.61519,0.616412,\ 0.617107,0.617504} 5、初值为0.5时 {0.5,0.5625,0.588989,0.602163,0.609172,0.613029,0.61519,0.616412,\ 0.617107,0.617504,0.61773} 6、初值为1时 {1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.} (2)对函数 1、初值为-2时 {-2,-1.25,-2.24,-1.09216,-2.6696,-0.889491,-3.51239,-0.650471,\
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 非线性 实验 报告